[build-system] requires = ["setuptools>=68"] build-backend = "setuptools.build_meta" [project] name = "cf-voice" version = "0.1.0" description = "CircuitForge voice annotation pipeline — VoiceFrame API, tone classifiers, speaker diarization" readme = "README.md" requires-python = ">=3.11" license = {text = "MIT"} dependencies = [ "pydantic>=2.0", "fastapi>=0.111", "uvicorn[standard]>=0.29", ] [project.optional-dependencies] # Real inference backends — not required for stub/mock mode inference = [ "torch>=2.0", "torchaudio>=2.0", "numpy>=1.24", "faster-whisper>=1.0", "sounddevice>=0.4", "transformers>=4.40", "librosa>=0.10", "pyannote.audio>=3.1", "python-dotenv>=1.0", ] signalwire = [ "signalwire>=2.0", ] freeswitch = [ # ESL Python bindings are compiled from FreeSWITCH source. # See: https://developer.signalwire.com/freeswitch/FreeSWITCH-Explained/Client-and-Developer-Interfaces/Event-Socket-Library/ "python-ESL", ] dev = [ "pytest>=8.0", "pytest-asyncio>=0.23", "numpy>=1.24", ] [project.scripts] # Quick smoke-test: stream mock frames to stdout cf-voice-demo = "cf_voice.cli:demo" [tool.setuptools.packages.find] where = ["."] include = ["cf_voice*"] [tool.pytest.ini_options] testpaths = ["tests"] asyncio_mode = "auto"