coqui-tts/pyproject.toml

208 lines
4.9 KiB
TOML

[build-system]
requires = [
"setuptools",
"setuptools-scm",
"cython~=0.29.30",
"numpy>=2.0.0",
]
build-backend = "setuptools.build_meta"
[tool.setuptools.packages.find]
include = ["TTS*"]
[project]
name = "coqui-tts"
version = "0.24.1"
description = "Deep learning for Text to Speech."
readme = "README.md"
requires-python = ">=3.9, <3.13"
license = {text = "MPL-2.0"}
authors = [
{name = "Eren Gölge", email = "egolge@coqui.ai"}
]
maintainers = [
{name = "Enno Hermann", email = "enno.hermann@gmail.com"}
]
classifiers = [
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Development Status :: 3 - Alpha",
"Intended Audience :: Science/Research",
"Intended Audience :: Developers",
"Operating System :: POSIX :: Linux",
"License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)",
"Topic :: Software Development",
"Topic :: Software Development :: Libraries :: Python Modules",
"Topic :: Multimedia :: Sound/Audio :: Speech",
"Topic :: Multimedia :: Sound/Audio",
"Topic :: Multimedia",
"Topic :: Scientific/Engineering :: Artificial Intelligence",
]
dependencies = [
# Core
"numpy>=1.24.3",
"cython>=0.29.30",
"scipy>=1.11.2",
"torch>=2.1",
"torchaudio",
"soundfile>=0.12.0",
"librosa>=0.10.1",
"inflect>=5.6.0",
"tqdm>=4.64.1",
"anyascii>=0.3.0",
"pyyaml>=6.0",
"fsspec[http]>=2023.6.0",
"packaging>=23.1",
# Inference
"pysbd>=0.3.4",
# Training
"matplotlib>=3.7.0",
# Coqui stack
"coqui-tts-trainer>=0.1.4",
"coqpit>=0.0.16",
# Gruut + supported languages
"gruut[de,es,fr]>=2.4.0",
# Tortoise
"einops>=0.6.0",
"transformers>=4.42.0",
# Bark
"encodec>=0.1.1",
# XTTS
"num2words>=0.5.11",
"spacy[ja]>=3"
]
[project.optional-dependencies]
# Development dependencies
dev = [
"black==24.2.0",
"coverage[toml]>=7",
"nose2>=0.15",
"pre-commit>=3",
"ruff==0.4.9",
"tomli>=2; python_version < '3.11'",
]
# Dependencies for building the documentation
docs = [
"furo>=2023.5.20",
"myst-parser==2.0.0",
"sphinx==7.2.5",
"sphinx_inline_tabs>=2023.4.21",
"sphinx_copybutton>=0.1",
"linkify-it-py>=2.0.0",
]
# Only used in notebooks
notebooks = [
"bokeh==1.4.0",
"pandas>=1.4,<2.0",
"umap-learn>=0.5.1",
]
# For running the TTS server
server = ["flask>=3.0.0"]
# Language-specific dependencies, mainly for G2P
# Bangla
bn = [
"bangla>=0.0.2",
"bnnumerizer>=0.0.2",
"bnunicodenormalizer>=0.1.0",
]
# Korean
ko = [
"hangul_romanize>=0.1.0",
"jamo>=0.4.1",
"g2pkk>=0.1.1",
]
# Japanese
ja = [
"mecab-python3>=1.0.2",
"unidic-lite==1.0.8",
"cutlet>=0.2.0",
]
# Chinese
zh = [
"jieba>=0.42.1",
"pypinyin>=0.40.0",
]
# All language-specific dependencies
languages = [
"coqui-tts[bn,ja,ko,zh]",
]
# Installs all extras (except dev and docs)
all = [
"coqui-tts[notebooks,server,bn,ja,ko,zh]",
]
[project.urls]
Homepage = "https://github.com/idiap/coqui-ai-TTS"
Documentation = "https://coqui-tts.readthedocs.io"
Repository = "https://github.com/idiap/coqui-ai-TTS"
Issues = "https://github.com/idiap/coqui-ai-TTS/issues"
Discussions = "https://github.com/idiap/coqui-ai-TTS/discussions"
[project.scripts]
tts = "TTS.bin.synthesize:main"
tts-server = "TTS.server.server:main"
[tool.ruff]
target-version = "py39"
line-length = 120
lint.extend-select = [
"B033", # duplicate-value
"C416", # unnecessary-comprehension
"D419", # empty-docstring
"E999", # syntax-error
"F401", # unused-import
"F704", # yield-outside-function
"F706", # return-outside-function
"F841", # unused-variable
"I", # import sorting
"PIE790", # unnecessary-pass
"PLC",
"PLE",
"PLR0124", # comparison-with-itself
"PLR0206", # property-with-parameters
"PLR0911", # too-many-return-statements
"PLR1711", # useless-return
"PLW",
"W291", # trailing-whitespace
"NPY201", # NumPy 2.0 deprecation
]
lint.ignore = [
"E722", # bare except (TODO: fix these)
"E731", # don't use lambdas
"E741", # ambiguous variable name
"F821", # TODO: enable
"F841", # TODO: enable
"PLW0602", # TODO: enable
"PLW2901", # TODO: enable
"PLW0127", # TODO: enable
"PLW0603", # TODO: enable
]
[tool.ruff.lint.pylint]
max-args = 5
max-public-methods = 20
max-returns = 7
[tool.ruff.lint.per-file-ignores]
"**/__init__.py" = [
"F401", # init files may have "unused" imports for now
"F403", # init files may have star imports for now
]
"hubconf.py" = [
"E402", # module level import not at top of file
]
[tool.black]
line-length = 120
target-version = ['py39']
[tool.coverage.run]
parallel = true
source = ["TTS"]