- VoiceFrame dataclass: label, confidence, speaker_id, shift_magnitude, timestamp - MockVoiceIO: async generator of synthetic frames on a timer (CF_VOICE_MOCK=1) - ContextClassifier: passthrough stub wrapping VoiceIO; _enrich() hook for real classifiers - make_io() factory: mock mode auto-detected from env, raises NotImplementedError for real audio - cf-voice-demo CLI entry point for quick smoke-testing - 12 tests passing; editable install via pip install -e ../cf-voice
39 lines
866 B
TOML
39 lines
866 B
TOML
[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",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
# Real inference backends — not required for stub/mock mode
|
|
inference = [
|
|
"torch>=2.0",
|
|
"torchaudio>=2.0",
|
|
"transformers>=4.40",
|
|
"pyannote.audio>=3.1",
|
|
]
|
|
dev = [
|
|
"pytest>=8.0",
|
|
"pytest-asyncio>=0.23",
|
|
]
|
|
|
|
[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"
|