[project] name = "pyVideoTrans" version = "4.00" requires-python = ">=3.10, <3.11" dependencies = [ "absl-py==2.0.0", "accelerate==1.12.0", "addict==2.4.0", "aenum==3.1.15", "aiofiles==24.1.0", "aiohappyeyeballs==2.6.1", "aiohttp==3.12.13", "aiosignal==1.3.2", "alibabacloud-alimt20181012==1.1.0", "alibabacloud-credentials==0.3.6", "alibabacloud-endpoint-util==0.0.3", "alibabacloud-gateway-spi==0.0.2", "alibabacloud-openapi-util==0.2.2", "alibabacloud-openplatform20191219==2.0.0", "alibabacloud-oss-sdk==0.1.0", "alibabacloud-oss-util==0.0.6", "alibabacloud-tea==0.4.0", "alibabacloud-tea-fileform==0.0.5", "alibabacloud-tea-openapi==0.3.12", "alibabacloud-tea-util==0.3.13", "alibabacloud-tea-xml==0.0.2", "aliyun-python-sdk-core==2.16.0", "aliyun-python-sdk-kms==2.16.5", "altgraph==0.17.4", "annotated-types==0.6.0", "anthropic==0.42.0", "antlr4-python3-runtime==4.9.3", "anyio==4.9.0", "asttokens==2.4.1", "astunparse==1.6.3", "async-timeout==5.0.1", "attrs==25.3.0", "audioread==3.0.1", "av==16.0.1", "azure-cognitiveservices-speech", "blinker==1.8.2", "cachetools==5.3.2", "certifi==2025.10.5", "cffi==1.17.1", "chardet==3.0.4", "charset-normalizer==3.4.4", "click==8.1.7", "colorama==0.4.6", "coloredlogs==15.0.1", "contourpy==1.1.1", "crcmod==1.7", "cryptography==45.0.4", "ctranslate2==4.8", "cycler==0.12.1", "dashscope==1.25.5", "dataclasses-json==0.6.7", "datasets==3.0.0", "decorator==5.2.1", "deepgram-captions==1.2.0", "deepgram-sdk==4.1.0", "deepl==1.18.0", "deprecation==2.1.0", "diffusers==0.33.1", "dill==0.3.8", "distro==1.8.0", "editdistance==0.8.1", "exceptiongroup==1.2.2", "executing==2.0.1", "ffmpeg-python==0.2.0", "filelock==3.20.0", "flatbuffers==25.9.23", "fonttools==4.43.1", "frozenlist==1.7.0", "fsspec==2024.6.1", "future==0.18.3", "gast==0.4.0", "google-api-core==2.28.1", "google-api-python-client==2.128.0", "google-auth==2.29.0", "google-auth-httplib2==0.2.0", "google-auth-oauthlib==0.4.6", "google-cloud-texttospeech==2.27.0", "google-pasta==0.2.0", "googleapis-common-protos==1.63.0", "grpcio==1.60.0", "grpcio-status==1.60.0", "h11==0.14.0", "h2==3.2.0", "h5py==3.10.0", "hdbscan==0.8.40", "hf-xet==1.1.8", "hpack==3.0.0", "hstspreload==2023.1.1", "httpcore==1.0.6", "httplib2==0.22.0", "httpx[socks]==0.28.1", "huggingface==0.0.1", "huggingface-hub==0.35.3", "humanfriendly==10.0", "hydra-core==1.3.2", "hyperframe==5.2.0", "idna==3.11", "imageio==2.31.4", "imageio-ffmpeg==0.4.9", "importlib-metadata==8.7.0", "inflate64==1.0.0", "ipython==8.23.0", "iso639-lang==2.2.3", "itsdangerous==2.2.0", "jaconv==0.4.0", "jamo==0.4.1", "jedi==0.19.1", "jieba==0.42.1", "jinja2==3.1.2", "jiter==0.11.1", "jmespath==0.10.0", "joblib==1.5.1", "kaldiio==2.18.1", "keras==2.9.0", "keras-preprocessing==1.1.2", "kiwisolver==1.4.5", "lazy-loader==0.4", "libclang==16.0.6", "librosa==0.11.0", "llvmlite==0.44.0", "markdown==3.5", "markdown-it-py==4.0.0", "markupsafe==2.1.3", "marshmallow==3.23.0", "matplotlib-inline==0.1.6", "mdurl==0.1.2", "more-itertools==10.1.0", "mpmath==1.3.0", "msgpack==1.1.1", "mypy-extensions==1.0.0", "networkx==3.2", "norbert==0.2.1", "numba==0.61.2", "numpy==1.26.0", "oauthlib==3.2.2", "omegaconf==2.3.0", "opt-einsum==3.3.0", "ordered-set==4.1.0", "oss2==2.19.1", "packaging==25.0", "pandas==2.3.0", "parso==0.8.3", "pefile==2023.2.7", "peft==0.15.2", "pip==25.1.1", "platformdirs==4.3.8", "plyer==2.1.0", "pooch==1.8.2", "proglog==0.1.10", "prompt-toolkit==3.0.43", "propcache==0.3.2", "proto-plus==1.23.0", "protobuf==4.21.6", "psutil==6.0.0", "pure-eval==0.2.2", "py7zr==0.22.0", "pyarrow==20.0.0", "pyasn1==0.5.0", "pyasn1-modules==0.3.0", "pybcj==1.0.2", "pycparser==2.22", "pycryptodome==3.23.0", "pycryptodomex==3.21.0", "pydantic==2.10.2", "pydantic-core==2.27.1", "pydub==0.25.1", "pygments==2.17.2", "pyinstaller==6.16.0", "pyinstaller-hooks-contrib==2025.8", "pynndescent==0.5.13", "pyparsing==3.1.1", "pyppmd==1.1.0", "pyside6==6.9.2", "pyside6-addons==6.9.2", "pyside6-essentials==6.9.2", "pysoundfile==0.9.0.post1", "python-dateutil==2.9.0.post0", "pytorch-wpe==0.0.1", "pytz==2025.2", "pyyaml==6.0.3", "pyzstd==0.16.1", "qdarkstyle==3.2.3", "regex", "requests[socks]==2.32.5", "requests-oauthlib==1.3.1", "resampy==0.4.2", "rfc3986==1.5.0", "rich==14.2.0", "rsa==4.9", "safetensors==0.4.5", "scikit-learn==1.7.0", "scipy==1.15.3", "sentencepiece==0.2.0", "setuptools==80.9.0", "shellingham==1.5.4", "shiboken6==6.9.2", "simplejson==3.19.3", "six==1.17.0", "snakeviz==2.2.2", "sniffio==1.3.1", "sortedcontainers==2.4.0", "soundfile==0.13.1", "soxr==0.5.0.post1", "speechrecognition==3.10.0", "srt==3.5.2", "stack-data==0.6.3", "sympy==1.14.0", "tabulate==0.9.0", "tenacity==9.1.2", "tencentcloud-sdk-python==3.0.1223", "tencentcloud-sdk-python-common==3.0.1032", "tencentcloud-sdk-python-tmt==3.0.1032", "tensorboardx==2.6.4", "tiktoken==0.6.0", "torch==2.7.1", "torch-complex==0.4.4", "torchaudio==2.7.1", "tqdm==4.67.1", "typer==0.19.2", "typing-extensions==4.15.0", "typing-inspect==0.9.0", "tzdata==2025.2", "urllib3==2.5.0", "websocket-client==1.8.0", "websockets==13.1", "wheel==0.45.1", "wrapt==1.15.0", "xxhash==3.5.0", "yarl==1.20.1", "zhconv==1.4.3", "sherpa-onnx>=1.13.0", "sherpa-onnx-core>=1.13.0", "sounddevice>=0.5.3", "openai-whisper>=20250625", "multidict>=6.7", "pytsmod>=0.3.8", "pyrubberband>=0.4.0", "piper-tts>=1.3.0", "pillow>=12.0.0", "gradio-client>=2.0.1", "ten-vad>=1.0.6.8", "pyannote-audio==3.4.0", "modelscope>=1.34.0", "funasr>=1.3.1", "edge-tts", "onnxruntime", "openai", "faster-whisper", "google-genai", "transformers==4.57.6", "elevenlabs", "camb-sdk", "brotli>=1.2.0", "gtts>=2.5.4", "torchcodec>=0.14.0", "importlib-resources", ] [project.optional-dependencies] dotnet = [ "pythonnet>=3.0.1", ] qwentts = [ "qwen-tts", ] qwenasr = [ "qwen-asr", ] webui = [ "gradio" ] #https://github.com/OpenMOSS/MOSS-TTS-Nano/issues/6 mosstts = [ "pynini", "WeTextProcessing" ] chatterbox=[ "chatterbox-tts" ] [dependency-groups] dev = [ "pytest", ] lint = [ "ruff", ] # 忽略版本冲突错误 [tool.uv] override-dependencies = [ "torch==2.7.1", "transformers==4.57.6", "torchaudio==2.7.1", "diffusers==0.33.1", "safetensors==0.4.5", "chatterbox-tts==0.1.7" ] index-strategy = "unsafe-best-match" [[tool.uv.index]] name = "pytorch-cu128" url = "https://download.pytorch.org/whl/cu128" explicit = true [[tool.uv.index]] name = "pytorch-cpu" url = "https://download.pytorch.org/whl/cpu" explicit = true [tool.uv.sources] torch = [ { index = "pytorch-cu128", marker = "sys_platform == 'win32' or sys_platform == 'linux'" }, { index = "pytorch-cpu", marker = "sys_platform == 'darwin'" }, # darwin 为 macOS ] torchaudio = [ { index = "pytorch-cu128", marker = "sys_platform == 'win32' or sys_platform == 'linux'" }, { index = "pytorch-cpu", marker = "sys_platform == 'darwin'" }, ] faster-whisper = { url = "https://github.com/SYSTRAN/faster-whisper/archive/refs/heads/master.tar.gz" }