[build-system] requires = ["setuptools>=77"] build-backend = "setuptools.build_meta" [project] name = "voicecut" version = "0.2.0" description = "Semantic, source-grounded editing for retake-heavy narration" readme = "README.md" requires-python = ">=3.11,<3.13" license = "MIT" license-files = ["LICENSE"] authors = [{ name = "VoiceCut contributors" }] keywords = [ "audio", "video", "narration", "speech", "whisper", "voice-over", ] classifiers = [ "Development Status :: 4 - Beta", "Operating System :: MacOS", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Topic :: Multimedia :: Sound/Audio :: Speech", "Topic :: Multimedia :: Video", ] [project.optional-dependencies] audio = [ "numpy==2.4.6", "scipy==1.17.1", "soundfile==0.14.0", "torch==2.8.0", "torchaudio==2.8.0", "whisperx==3.8.6", "silero-vad==6.2.1", "librosa==0.11.0", "intervaltree==3.1.0", "matplotlib>=3.10.0,<4", ] mlx = [ "numpy==2.4.6", "mlx==0.32.0; platform_system == 'Darwin' and platform_machine == 'arm64'", "mlx-lm==0.31.3; platform_system == 'Darwin' and platform_machine == 'arm64'", "mlx-whisper==0.4.3; platform_system == 'Darwin' and platform_machine == 'arm64'", ] cloud = [ "google-genai>=1.64.0,<2", "openai>=1.68.0,<3", "python-dotenv>=1.1.0,<2", ] dev = [ "build>=1.2.2,<2", "pytest>=8.4.0,<9", "ruff>=0.12.0,<1", ] [project.urls] Homepage = "https://github.com/vectozavr/voicecut" Documentation = "https://github.com/vectozavr/voicecut/tree/main/docs" Repository = "https://github.com/vectozavr/voicecut" Issues = "https://github.com/vectozavr/voicecut/issues" [project.scripts] voicecut = "voicecut.full_pipeline:main" [tool.setuptools] package-dir = { "" = "src" } [tool.setuptools.packages.find] where = ["src"] [tool.pytest.ini_options] testpaths = ["tests"] [tool.ruff] target-version = "py311" line-length = 88