pyproject.toml
Rama main · réplica de lectura del repositorio original.
# Enough metadata for `uv run run.py` to create a venv on the right Python and
# install everything — nothing else. mynah is run from its checkout, not
# installed as a package, hence `package = false`.
[project]
name = "mynah"
version = "1.0.1"
description = "Local voice cloning TTS with per-line regeneration"
readme = "README.md"
license = { file = "LICENSE" }
requires-python = ">=3.10,<3.13"
dependencies = [
# Chatterbox Turbo lives on the repo's main branch, not on PyPI; this pins
# the commit that introduced it. Needs `git` on PATH to install.
"chatterbox-tts @ git+https://github.com/resemble-ai/chatterbox@ed27b95",
# numba (via librosa, via chatterbox) refuses NumPy 2.4+.
"numpy>=1.26,<2.4",
# Declared directly (chatterbox pins them anyway) so the Windows CUDA index
# source below applies — uv sources only bind to direct dependencies.
"torch==2.6.0",
"torchaudio==2.6.0",
# resemble-perth imports pkg_resources, gone from setuptools 81; without
# this the watermarker is silently None and model load fails.
"setuptools<81",
"fastapi>=0.115",
"uvicorn[standard]>=0.32",
"python-multipart>=0.0.9",
"soundfile>=0.12",
"imageio-ffmpeg>=0.5",
# Faster Hub downloads; without it huggingface_hub warns on every file.
"hf_xet",
]
# Browser regressions and tools/demo.py. Not needed to run mynah.
[dependency-groups]
dev = ["playwright>=1.40"]
[project.urls]
Repository = "https://github.com/seena18/mynah"
[tool.uv]
package = false
# chatterbox's metadata pins numpy<1.26 (no Python 3.12 wheel; the code runs
# on 2.x) and pulls in gradio, a demo UI never imported on the Turbo path.
# Overrides replace those two declared requirements; nothing else changes.
override-dependencies = [
"numpy>=1.26,<2.4",
"gradio; python_version < '3'",
]
# PyPI's Windows torch wheel is CPU-only. On Linux the PyPI wheel already
# bundles CUDA, so the PyTorch index is used for Windows alone; everything
# else keeps resolving from PyPI. Verified on an RTX 4080 SUPER.
[[tool.uv.index]]
name = "pytorch-cu124"
url = "https://download.pytorch.org/whl/cu124"
explicit = true
[tool.uv.sources]
torch = [{ index = "pytorch-cu124", marker = "sys_platform == 'win32'" }]
torchaudio = [{ index = "pytorch-cu124", marker = "sys_platform == 'win32'" }]