Skip to main content
Glama

Voice Mode

by mbailey
pyproject.toml•4.87 kB
[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "voice-mode" dynamic = ["version"] description = "VoiceMode - Voice interaction capabilities for AI assistants (formerly voice-mcp)" readme = "README.md" requires-python = ">=3.10" license = {text = "MIT"} authors = [ {name = "mbailey", email = "mbailey@example.com"}, ] keywords = ["mcp", "voice", "livekit", "speech", "tts", "stt", "ai", "llm"] classifiers = [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Topic :: Software Development :: Libraries", "Topic :: Multimedia :: Sound/Audio :: Speech", ] dependencies = [ "uv>=0.4.0", "fastmcp>=2.0.0", "numpy", "sounddevice", "scipy", "openai>=1.0.0", "pydub", "audioop-lts; python_version >= '3.13'", "simpleaudio", "httpx", "psutil>=5.9.0", "setuptools", # Required for pkg_resources used by webrtcvad "webrtcvad>=2.0.10", "livekit>=0.13.1", "livekit-agents>=0.10.2", "livekit-plugins-openai>=0.10.1", "livekit-plugins-silero>=0.6.5", "click>=8.0.0", "pyyaml>=6.0.0", ] [project.optional-dependencies] coreml = [ "torch>=2.0.0", "coremltools>=7.0", "transformers", "ane-transformers", ] dev = [ "build>=1.0.0", "twine>=4.0.0", "pytest>=7.0.0", "pytest-asyncio>=0.21.0", "pytest-cov>=4.0.0", "pytest-mock>=3.10.0", ] test = [ "pytest>=7.0.0", "pytest-asyncio>=0.21.0", "pytest-cov>=4.1.0", "pytest-mock>=3.10.0", "pytest-xdist>=3.5.0", # For parallel testing "pytest-timeout>=2.2.0", # For test timeouts "coverage[toml]>=7.4.0", ] notebooks = [ "gradio>=4.0.0", "jupyter>=1.0.0", "notebook>=7.0.0", "pandas>=2.0.0", ] scripts = [ "flask>=3.0.0", ] docs = [ "mkdocs>=1.5.0", "mkdocs-material[imaging]>=9.0.0", "pymdown-extensions>=10.0", "mkdocs-git-revision-date-localized-plugin>=1.2.0", "mkdocs-minify-plugin>=0.7.0", "mkdocs-gen-files>=0.5.0", ] [project.urls] Homepage = "https://github.com/mbailey/voicemode" Repository = "https://github.com/mbailey/voicemode" Issues = "https://github.com/mbailey/voicemode/issues" [project.scripts] voice-mode = "voice_mode.cli:voice_mode" voicemode = "voice_mode.cli:voice_mode" [tool.hatch.build.targets.wheel] packages = ["voice_mode"] include = [ "voice_mode/**/*.py", "voice_mode/**/*.sh", "voice_mode/**/*.plist", "voice_mode/**/*.service", "voice_mode/templates/**/*", ] exclude = [ "**/__pycache__", "**/*.pyc", "**/*.pyo", "**/*.pyd", "**/.DS_Store", "**/*.log", "**/node_modules", "**/.next/cache", "**/tests", "**/.env", "**/.git", ] [tool.hatch.build.hooks.custom] path = "build_hooks.py" [tool.hatch.build.targets.sdist] include = [ "/voice_mode", "/README.md", "/LICENSE", "/pyproject.toml", "/CHANGELOG.md", "/build_hooks.py", ] exclude = [ "**/__pycache__", "**/*.pyc", "**/*.pyo", "**/*.pyd", "**/.DS_Store", "**/*.log", ] [tool.hatch.version] path = "voice_mode/__version__.py" [tool.hatch.metadata] allow-direct-references = true [tool.pytest.ini_options] minversion = "7.0" testpaths = ["tests"] python_files = "test_*.py" python_classes = "Test*" python_functions = "test_*" asyncio_mode = "auto" addopts = [ "-ra", "--strict-markers", "--strict-config", "--ignore=tests/manual", "--cov=voice_mode", "--cov-branch", "--cov-report=term-missing:skip-covered", "--cov-report=html", "--cov-report=xml", ] markers = [ "unit: Unit tests (fast, isolated)", "integration: Integration tests (may interact with services)", "slow: Tests that take > 1s", "manual: Manual tests requiring human interaction", ] filterwarnings = [ "ignore::DeprecationWarning", ] [tool.coverage.run] source = ["voice_mode"] branch = true parallel = true omit = [ "*/tests/*", "*/test_*.py", "*/__pycache__/*", "*/site-packages/*", "test-env/*", ] [tool.coverage.report] exclude_lines = [ "pragma: no cover", "def __repr__", "if TYPE_CHECKING:", "raise NotImplementedError", "if __name__ == .__main__.:", "@abstractmethod", "except ImportError:", ] precision = 2 skip_covered = true show_missing = true [tool.coverage.html] directory = "htmlcov" [tool.coverage.xml] output = "coverage.xml" [dependency-groups] dev = [ "pytest>=8.4.2", "pytest-asyncio>=1.2.0", "pytest-cov>=7.0.0", "pytest-mock>=3.15.0", ]

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mbailey/voicemode'

If you have feedback or need assistance with the MCP directory API, please join our Discord server