-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
90 lines (79 loc) · 2.86 KB
/
Copy pathpyproject.toml
File metadata and controls
90 lines (79 loc) · 2.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
[project]
name = "wyoming-bluetts"
version = "0.2.1"
description = "Wyoming protocol server for BlueTTS: local, multilingual, ONNX text-to-speech with zero-shot voice cloning"
readme = "README.md"
license = "MIT"
requires-python = ">=3.12"
authors = [
{ name = "Janne Snabb" }
]
keywords = ["wyoming", "tts", "voice", "bluetts", "blue-onnx", "home-assistant", "onnx"]
classifiers = [
"Development Status :: 3 - Alpha",
"Intended Audience :: Developers",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Topic :: Multimedia :: Sound/Audio :: Speech",
]
dependencies = [
"wyoming>=1.7.0",
"blue-onnx",
"numpy>=1.24.0",
"huggingface-hub>=0.26.0",
# Pin a floor for librosa's numba/llvmlite transitive deps: without this,
# uv's resolver can pick an ancient numba (e.g. 0.53.1) that only supports
# Python <3.10 and fails to build here.
"numba>=0.59.0",
# blue_onnx.style hard-codes librosa.resample(..., res_type="kaiser_best"),
# which forces librosa's legacy resampy backend -- but neither blue-onnx
# nor librosa itself declares resampy as a dependency (librosa's own
# default backend is soxr, already installed, which this specific call
# bypasses). Without this, voice cloning fails at call time with
# `ModuleNotFoundError: No module named 'resampy'`, silently falling back
# to the default voice (see handler.load_voice's except branch) instead of
# cloning. Re-verify whenever the blue-onnx pin bumps, in case a future
# version stops forcing kaiser_best.
"resampy>=0.4.3",
]
# The published blue-onnx==0.2.4 wheel on PyPI is missing vocab.json (crashes on
# load) and predates the blue_onnx.style voice-cloning module entirely -- both
# are only fixed on BlueTTS's git main. Pinned to an exact commit for
# reproducibility; switch back to a plain PyPI version constraint once a fixed
# release is published (see AGENTS.md).
[tool.uv.sources]
blue-onnx = { git = "https://github.com/maxmelichov/BlueTTS.git", rev = "f071b9100e15c24575f6e2919312f67057c7b589" }
[project.optional-dependencies]
dev = [
"ruff>=0.15.4",
"prek>=0.3.4",
"pytest",
"pytest-asyncio>=1.3.0",
"pytest-cov",
"ty>=0.0.19",
]
[project.scripts]
wyoming-bluetts = "wyoming_bluetts.__main__:run"
[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"
[tool.setuptools.packages.find]
include = ["wyoming_bluetts*"]
[tool.setuptools.package-data]
wyoming_bluetts = ["voices/*.json", "vocab.json"]
[tool.pytest.ini_options]
filterwarnings = [
"ignore::DeprecationWarning",
]
[tool.isort]
profile = "black"
src_paths = "tests"
line_length = 80
include_trailing_comma = true
multi_line_output = 3
[tool.ruff]
exclude = ["__pycache__", ".git", ".venv"]
[tool.ruff.lint]
select = ["E", "F", "B"]
ignore = ["E501"]