[project] name = "voice-tools" version = "0.1.0" description = "Voice extraction tool for video generation - extracts target voice from mixed audio files" readme = "README.md" requires-python = ">=3.10" license = {text = "MIT"} authors = [ {name = "Voice Tools Contributors"} ] keywords = ["audio", "voice-extraction", "speaker-diarization", "ml", "huggingface"] classifiers = [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Topic :: Multimedia :: Sound/Audio :: Analysis", ] dependencies = [ # Core ML and audio processing "torch>=2.4.0", "torchaudio>=2.4.0", "transformers>=4.35.0", "gradio>=6.2.0", "spaces>=0.28.3", # HuggingFace ZeroGPU support # HuggingFace models "huggingface-hub>=0.16.0", "pyannote.audio>=4.0.0", # Audio processing "librosa>=0.10.0", "soundfile>=0.12.1", "pydub>=0.25.1", # VAD and speech processing "silero-vad>=4.0.0", # Quality metrics "pesq>=0.0.4", "pystoi>=0.4.1", # Noise reduction "noisereduce>=3.0.0", # Utilities "numpy>=1.24.0", "scipy>=1.10.0", "rich>=13.0.0", # For CLI progress bars "click>=8.1.0", # For CLI interface "python-dotenv>=1.0.0", # For .env file support ] [project.optional-dependencies] dev = [ "pytest>=7.4.0", "pytest-cov>=4.1.0", "black>=23.0.0", "ruff>=0.1.0", "mypy>=1.5.0", ] [project.scripts] voice-tools = "src.cli.main:main" [build-system] requires = ["setuptools>=68.0.0", "wheel"] build-backend = "setuptools.build_meta" [tool.setuptools.packages.find] where = ["."] include = ["src*"] [tool.black] line-length = 100 target-version = ["py311"] include = '\.pyi?$' [tool.ruff] line-length = 100 target-version = "py311" select = [ "E", # pycodestyle errors "W", # pycodestyle warnings "F", # pyflakes "I", # isort "B", # flake8-bugbear "C4", # flake8-comprehensions ] ignore = [ "E501", # line too long (handled by black) "B008", # do not perform function calls in argument defaults ] [tool.mypy] python_version = "3.11" warn_return_any = true warn_unused_configs = true disallow_untyped_defs = false ignore_missing_imports = true [tool.pytest.ini_options] testpaths = ["tests"] python_files = ["test_*.py"] python_classes = ["Test*"] python_functions = ["test_*"] addopts = "-v --tb=short"