Przeglądaj źródła

fix(deps): resolve protobuf conflict from descript-audiotools transitive dependency (#1229)

descript-audio-codec pulls in descript-audiotools, which pins
protobuf<3.20. However, fish-speech's own generated proto code
(text_data_pb2) requires the builder module introduced in protobuf 3.20,
making LoRA finetuning impossible on a clean install.

Fix by:
- Removing the redundant direct dependency on descript-audiotools
  (it remains a transitive dep via descript-audio-codec)
- Adding a uv override to force protobuf>=3.20.0,<6.0.0, overriding
  the stale constraint from the unmaintained descript-audiotools package
- Bumping wandb>=0.15.11 to >=0.19.0 to pick up recent fixes

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Matteo 2 tygodni temu
rodzic
commit
d0b7836547
2 zmienionych plików z 95 dodań i 74 usunięć
  1. 6 2
      pyproject.toml
  2. 89 72
      uv.lock

+ 6 - 2
pyproject.toml

@@ -26,7 +26,7 @@ dependencies = [
     "librosa>=0.10.1",
     "rich>=13.5.3",
     "gradio>5.0.0",
-    "wandb>=0.15.11",
+    "wandb>=0.19.0",
     "grpcio>=1.58.0",
     "kui>=1.6.0",
     "uvicorn>=0.30.0",
@@ -46,7 +46,6 @@ dependencies = [
     "pydantic==2.9.2",
     "cachetools",
     "descript-audio-codec",
-    "descript-audiotools",
     "safetensors"
 ]
 
@@ -73,6 +72,11 @@ cu129 = [
 ]
 
 [tool.uv]
+override-dependencies = [
+    # descript-audiotools (transitive via descript-audio-codec) pins protobuf<3.20,
+    # but fish-speech's generated proto code requires >=3.20; cap at <6 for API stability
+    "protobuf>=3.20.0,<6.0.0",
+]
 conflicts = [
   [
     { extra = "cpu" },

+ 89 - 72
uv.lock

@@ -62,6 +62,9 @@ conflicts = [[
     { package = "fish-speech", extra = "cu129" },
 ]]
 
+[manifest]
+overrides = [{ name = "protobuf", specifier = ">=3.20.0,<6.0.0" }]
+
 [[package]]
 name = "absl-py"
 version = "2.3.1"
@@ -1056,7 +1059,6 @@ dependencies = [
     { name = "cachetools" },
     { name = "datasets" },
     { name = "descript-audio-codec" },
-    { name = "descript-audiotools" },
     { name = "einops" },
     { name = "einx", extra = ["torch"] },
     { name = "gradio" },
@@ -1142,7 +1144,6 @@ requires-dist = [
     { name = "cachetools" },
     { name = "datasets", specifier = "==2.18.0" },
     { name = "descript-audio-codec" },
-    { name = "descript-audiotools" },
     { name = "einops", specifier = ">=0.7.0" },
     { name = "einx", extras = ["torch"], specifier = "==0.2.2" },
     { name = "gradio", specifier = ">5.0.0" },
@@ -1182,7 +1183,7 @@ requires-dist = [
     { name = "torchaudio", marker = "extra == 'stable'" },
     { name = "transformers", specifier = "<=4.57.3" },
     { name = "uvicorn", specifier = ">=0.30.0" },
-    { name = "wandb", specifier = ">=0.15.11" },
+    { name = "wandb", specifier = ">=0.19.0" },
     { name = "zstandard", specifier = ">=0.22.0" },
 ]
 provides-extras = ["stable", "cpu", "cu126", "cu128", "cu129"]
@@ -2787,7 +2788,7 @@ version = "9.10.2.21"
 source = { registry = "https://pypi.org/simple" }
 dependencies = [
     { name = "nvidia-cublas-cu12", version = "12.6.4.1", source = { registry = "https://pypi.org/simple" }, marker = "(sys_platform == 'linux' and extra == 'extra-11-fish-speech-cu126') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu126') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu128' and extra == 'extra-11-fish-speech-cu129')" },
-    { name = "nvidia-cublas-cu12", version = "12.8.4.1", source = { registry = "https://pypi.org/simple" }, marker = "(sys_platform == 'linux' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cu128' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu126') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu129')" },
+    { name = "nvidia-cublas-cu12", version = "12.8.4.1", source = { registry = "https://pypi.org/simple" }, marker = "(sys_platform == 'linux' and extra == 'extra-11-fish-speech-cu128') or (sys_platform == 'linux' and extra != 'extra-11-fish-speech-cpu' and extra != 'extra-11-fish-speech-cu126' and extra != 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu128' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu126') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu129')" },
     { name = "nvidia-cublas-cu12", version = "12.9.1.4", source = { registry = "https://pypi.org/simple" }, marker = "(platform_machine != 'aarch64' and sys_platform == 'linux' and extra == 'extra-11-fish-speech-cu129') or (platform_machine == 'aarch64' and extra == 'extra-11-fish-speech-cu128' and extra == 'extra-11-fish-speech-cu129') or (sys_platform != 'linux' and extra == 'extra-11-fish-speech-cu128' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu126') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu129')" },
 ]
 wheels = [
@@ -2828,7 +2829,7 @@ resolution-markers = [
     "python_full_version < '3.11' and sys_platform == 'linux'",
 ]
 dependencies = [
-    { name = "nvidia-nvjitlink-cu12", version = "12.8.93", source = { registry = "https://pypi.org/simple" }, marker = "(sys_platform == 'linux' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cu128' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu126') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu129')" },
+    { name = "nvidia-nvjitlink-cu12", version = "12.8.93", source = { registry = "https://pypi.org/simple" }, marker = "(sys_platform == 'linux' and extra == 'extra-11-fish-speech-cu128') or (sys_platform == 'linux' and extra != 'extra-11-fish-speech-cpu' and extra != 'extra-11-fish-speech-cu126' and extra != 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu128' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu126') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu129')" },
 ]
 wheels = [
     { url = "https://files.pythonhosted.org/packages/60/bc/7771846d3a0272026c416fbb7e5f4c1f146d6d80704534d0b187dd6f4800/nvidia_cufft_cu12-11.3.3.83-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:848ef7224d6305cdb2a4df928759dca7b1201874787083b6e7550dd6765ce69a", size = 193109211, upload-time = "2025-03-07T01:44:56.873Z" },
@@ -2984,9 +2985,9 @@ resolution-markers = [
     "python_full_version < '3.11' and sys_platform == 'linux'",
 ]
 dependencies = [
-    { name = "nvidia-cublas-cu12", version = "12.8.4.1", source = { registry = "https://pypi.org/simple" }, marker = "(sys_platform == 'linux' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cu128' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu126') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu129')" },
-    { name = "nvidia-cusparse-cu12", version = "12.5.8.93", source = { registry = "https://pypi.org/simple" }, marker = "(sys_platform == 'linux' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cu128' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu126') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu129')" },
-    { name = "nvidia-nvjitlink-cu12", version = "12.8.93", source = { registry = "https://pypi.org/simple" }, marker = "(sys_platform == 'linux' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cu128' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu126') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu129')" },
+    { name = "nvidia-cublas-cu12", version = "12.8.4.1", source = { registry = "https://pypi.org/simple" }, marker = "(sys_platform == 'linux' and extra == 'extra-11-fish-speech-cu128') or (sys_platform == 'linux' and extra != 'extra-11-fish-speech-cpu' and extra != 'extra-11-fish-speech-cu126' and extra != 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu128' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu126') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu129')" },
+    { name = "nvidia-cusparse-cu12", version = "12.5.8.93", source = { registry = "https://pypi.org/simple" }, marker = "(sys_platform == 'linux' and extra == 'extra-11-fish-speech-cu128') or (sys_platform == 'linux' and extra != 'extra-11-fish-speech-cpu' and extra != 'extra-11-fish-speech-cu126' and extra != 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu128' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu126') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu129')" },
+    { name = "nvidia-nvjitlink-cu12", version = "12.8.93", source = { registry = "https://pypi.org/simple" }, marker = "(sys_platform == 'linux' and extra == 'extra-11-fish-speech-cu128') or (sys_platform == 'linux' and extra != 'extra-11-fish-speech-cpu' and extra != 'extra-11-fish-speech-cu126' and extra != 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu128' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu126') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu129')" },
 ]
 wheels = [
     { url = "https://files.pythonhosted.org/packages/c8/32/f7cd6ce8a7690544d084ea21c26e910a97e077c9b7f07bf5de623ee19981/nvidia_cusolver_cu12-11.7.3.90-py3-none-manylinux_2_27_aarch64.whl", hash = "sha256:db9ed69dbef9715071232caa9b69c52ac7de3a95773c2db65bdba85916e4e5c0", size = 267229841, upload-time = "2025-03-07T01:46:54.356Z" },
@@ -3047,7 +3048,7 @@ resolution-markers = [
     "python_full_version < '3.11' and sys_platform == 'linux'",
 ]
 dependencies = [
-    { name = "nvidia-nvjitlink-cu12", version = "12.8.93", source = { registry = "https://pypi.org/simple" }, marker = "(sys_platform == 'linux' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cu128' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu126') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu129')" },
+    { name = "nvidia-nvjitlink-cu12", version = "12.8.93", source = { registry = "https://pypi.org/simple" }, marker = "(sys_platform == 'linux' and extra == 'extra-11-fish-speech-cu128') or (sys_platform == 'linux' and extra != 'extra-11-fish-speech-cpu' and extra != 'extra-11-fish-speech-cu126' and extra != 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu128' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu126') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu129')" },
 ]
 wheels = [
     { url = "https://files.pythonhosted.org/packages/bc/f7/cd777c4109681367721b00a106f491e0d0d15cfa1fd59672ce580ce42a97/nvidia_cusparse_cu12-12.5.8.93-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:9b6c161cb130be1a07a27ea6923df8141f3c295852f4b260c65f18f3e0a091dc", size = 288117129, upload-time = "2025-03-07T01:47:40.407Z" },
@@ -3669,15 +3670,16 @@ wheels = [
 
 [[package]]
 name = "protobuf"
-version = "3.19.6"
+version = "5.29.6"
 source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/51/d1/79bfd1f481469b661a2eddab551255536401892722189433282bfb13cfb1/protobuf-3.19.6.tar.gz", hash = "sha256:5f5540d57a43042389e87661c6eaa50f47c19c6176e8cf1c4f287aeefeccb5c4", size = 218071, upload-time = "2022-09-29T22:07:23.03Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/7e/57/394a763c103e0edf87f0938dafcd918d53b4c011dfc5c8ae80f3b0452dbb/protobuf-5.29.6.tar.gz", hash = "sha256:da9ee6a5424b6b30fd5e45c5ea663aef540ca95f9ad99d1e887e819cdf9b8723", size = 425623, upload-time = "2026-02-04T22:54:40.584Z" }
 wheels = [
-    { url = "https://files.pythonhosted.org/packages/4b/3b/90f805b9e5ecacf8a216f2e5acabc2d3ad965b62803510be41804e6bfbfe/protobuf-3.19.6-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:010be24d5a44be7b0613750ab40bc8b8cedc796db468eae6c779b395f50d1fa1", size = 913631, upload-time = "2022-09-29T21:17:39.095Z" },
-    { url = "https://files.pythonhosted.org/packages/26/ef/bd6ba3b4ff9a35944bdd325e2c9ee56f71e855757f7d43938232499f0278/protobuf-3.19.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:11478547958c2dfea921920617eb457bc26867b0d1aa065ab05f35080c5d9eb6", size = 1055327, upload-time = "2022-09-29T21:17:41.054Z" },
-    { url = "https://files.pythonhosted.org/packages/4a/25/85bcc155980b5d7754ebdf4cb32039105f6020b6b2b8f7536a866113fc1c/protobuf-3.19.6-cp310-cp310-win32.whl", hash = "sha256:559670e006e3173308c9254d63facb2c03865818f22204037ab76f7a0ff70b5f", size = 775745, upload-time = "2022-09-29T21:17:42.844Z" },
-    { url = "https://files.pythonhosted.org/packages/97/f9/a14bac5331f3e55bcbbed906a0c8b112f554152ddf09efeb6f5f95653ffd/protobuf-3.19.6-cp310-cp310-win_amd64.whl", hash = "sha256:347b393d4dd06fb93a77620781e11c058b3b0a5289262f094379ada2920a3730", size = 895657, upload-time = "2022-09-29T21:17:44.659Z" },
-    { url = "https://files.pythonhosted.org/packages/32/27/1141a8232723dcb10a595cc0ce4321dcbbd5215300bf4acfc142343205bf/protobuf-3.19.6-py2.py3-none-any.whl", hash = "sha256:14082457dc02be946f60b15aad35e9f5c69e738f80ebbc0900a19bc83734a5a4", size = 162648, upload-time = "2022-09-29T22:07:20.303Z" },
+    { url = "https://files.pythonhosted.org/packages/d4/88/9ee58ff7863c479d6f8346686d4636dd4c415b0cbeed7a6a7d0617639c2a/protobuf-5.29.6-cp310-abi3-win32.whl", hash = "sha256:62e8a3114992c7c647bce37dcc93647575fc52d50e48de30c6fcb28a6a291eb1", size = 423357, upload-time = "2026-02-04T22:54:25.805Z" },
+    { url = "https://files.pythonhosted.org/packages/1c/66/2dc736a4d576847134fb6d80bd995c569b13cdc7b815d669050bf0ce2d2c/protobuf-5.29.6-cp310-abi3-win_amd64.whl", hash = "sha256:7e6ad413275be172f67fdee0f43484b6de5a904cc1c3ea9804cb6fe2ff366eda", size = 435175, upload-time = "2026-02-04T22:54:28.592Z" },
+    { url = "https://files.pythonhosted.org/packages/06/db/49b05966fd208ae3f44dcd33837b6243b4915c57561d730a43f881f24dea/protobuf-5.29.6-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:b5a169e664b4057183a34bdc424540e86eea47560f3c123a0d64de4e137f9269", size = 418619, upload-time = "2026-02-04T22:54:30.266Z" },
+    { url = "https://files.pythonhosted.org/packages/b7/d7/48cbf6b0c3c39761e47a99cb483405f0fde2be22cf00d71ef316ce52b458/protobuf-5.29.6-cp38-abi3-manylinux2014_aarch64.whl", hash = "sha256:a8866b2cff111f0f863c1b3b9e7572dc7eaea23a7fae27f6fc613304046483e6", size = 320284, upload-time = "2026-02-04T22:54:31.782Z" },
+    { url = "https://files.pythonhosted.org/packages/e3/dd/cadd6ec43069247d91f6345fa7a0d2858bef6af366dbd7ba8f05d2c77d3b/protobuf-5.29.6-cp38-abi3-manylinux2014_x86_64.whl", hash = "sha256:e3387f44798ac1106af0233c04fb8abf543772ff241169946f698b3a9a3d3ab9", size = 320478, upload-time = "2026-02-04T22:54:32.909Z" },
+    { url = "https://files.pythonhosted.org/packages/5a/cb/e3065b447186cb70aa65acc70c86baf482d82bf75625bf5a2c4f6919c6a3/protobuf-5.29.6-py3-none-any.whl", hash = "sha256:6b9edb641441b2da9fa8f428760fc136a49cf97a52076010cf22a2ff73438a86", size = 173126, upload-time = "2026-02-04T22:54:39.462Z" },
 ]
 
 [[package]]
@@ -4838,8 +4840,23 @@ dependencies = [
     { name = "jinja2", marker = "(extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu126') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu128' and extra == 'extra-11-fish-speech-cu129') or (extra != 'extra-11-fish-speech-cpu' and extra != 'extra-11-fish-speech-cu126' and extra != 'extra-11-fish-speech-cu128' and extra != 'extra-11-fish-speech-cu129')" },
     { name = "networkx", version = "3.4.2", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.11' and extra != 'extra-11-fish-speech-cpu' and extra != 'extra-11-fish-speech-cu126' and extra != 'extra-11-fish-speech-cu128' and extra != 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu126') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu128' and extra == 'extra-11-fish-speech-cu129')" },
     { name = "networkx", version = "3.5", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version >= '3.11' and extra != 'extra-11-fish-speech-cpu' and extra != 'extra-11-fish-speech-cu126' and extra != 'extra-11-fish-speech-cu128' and extra != 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu126') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu128' and extra == 'extra-11-fish-speech-cu129')" },
+    { name = "nvidia-cublas-cu12", version = "12.8.4.1", source = { registry = "https://pypi.org/simple" }, marker = "(platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'extra-11-fish-speech-cpu' and extra != 'extra-11-fish-speech-cu126' and extra != 'extra-11-fish-speech-cu128' and extra != 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu126') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu128' and extra == 'extra-11-fish-speech-cu129')" },
+    { name = "nvidia-cuda-cupti-cu12", version = "12.8.90", source = { registry = "https://pypi.org/simple" }, marker = "(platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'extra-11-fish-speech-cpu' and extra != 'extra-11-fish-speech-cu126' and extra != 'extra-11-fish-speech-cu128' and extra != 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu126') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu128' and extra == 'extra-11-fish-speech-cu129')" },
+    { name = "nvidia-cuda-nvrtc-cu12", version = "12.8.93", source = { registry = "https://pypi.org/simple" }, marker = "(platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'extra-11-fish-speech-cpu' and extra != 'extra-11-fish-speech-cu126' and extra != 'extra-11-fish-speech-cu128' and extra != 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu126') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu128' and extra == 'extra-11-fish-speech-cu129')" },
+    { name = "nvidia-cuda-runtime-cu12", version = "12.8.90", source = { registry = "https://pypi.org/simple" }, marker = "(platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'extra-11-fish-speech-cpu' and extra != 'extra-11-fish-speech-cu126' and extra != 'extra-11-fish-speech-cu128' and extra != 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu126') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu128' and extra == 'extra-11-fish-speech-cu129')" },
+    { name = "nvidia-cudnn-cu12", marker = "(platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'extra-11-fish-speech-cpu' and extra != 'extra-11-fish-speech-cu126' and extra != 'extra-11-fish-speech-cu128' and extra != 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu126') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu128' and extra == 'extra-11-fish-speech-cu129')" },
+    { name = "nvidia-cufft-cu12", version = "11.3.3.83", source = { registry = "https://pypi.org/simple" }, marker = "(platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'extra-11-fish-speech-cpu' and extra != 'extra-11-fish-speech-cu126' and extra != 'extra-11-fish-speech-cu128' and extra != 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu126') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu128' and extra == 'extra-11-fish-speech-cu129')" },
+    { name = "nvidia-cufile-cu12", version = "1.13.1.3", source = { registry = "https://pypi.org/simple" }, marker = "(platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'extra-11-fish-speech-cpu' and extra != 'extra-11-fish-speech-cu126' and extra != 'extra-11-fish-speech-cu128' and extra != 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu126') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu128' and extra == 'extra-11-fish-speech-cu129')" },
+    { name = "nvidia-curand-cu12", version = "10.3.9.90", source = { registry = "https://pypi.org/simple" }, marker = "(platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'extra-11-fish-speech-cpu' and extra != 'extra-11-fish-speech-cu126' and extra != 'extra-11-fish-speech-cu128' and extra != 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu126') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu128' and extra == 'extra-11-fish-speech-cu129')" },
+    { name = "nvidia-cusolver-cu12", version = "11.7.3.90", source = { registry = "https://pypi.org/simple" }, marker = "(platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'extra-11-fish-speech-cpu' and extra != 'extra-11-fish-speech-cu126' and extra != 'extra-11-fish-speech-cu128' and extra != 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu126') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu128' and extra == 'extra-11-fish-speech-cu129')" },
+    { name = "nvidia-cusparse-cu12", version = "12.5.8.93", source = { registry = "https://pypi.org/simple" }, marker = "(platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'extra-11-fish-speech-cpu' and extra != 'extra-11-fish-speech-cu126' and extra != 'extra-11-fish-speech-cu128' and extra != 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu126') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu128' and extra == 'extra-11-fish-speech-cu129')" },
+    { name = "nvidia-cusparselt-cu12", marker = "(platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'extra-11-fish-speech-cpu' and extra != 'extra-11-fish-speech-cu126' and extra != 'extra-11-fish-speech-cu128' and extra != 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu126') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu128' and extra == 'extra-11-fish-speech-cu129')" },
+    { name = "nvidia-nccl-cu12", marker = "(platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'extra-11-fish-speech-cpu' and extra != 'extra-11-fish-speech-cu126' and extra != 'extra-11-fish-speech-cu128' and extra != 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu126') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu128' and extra == 'extra-11-fish-speech-cu129')" },
+    { name = "nvidia-nvjitlink-cu12", version = "12.8.93", source = { registry = "https://pypi.org/simple" }, marker = "(platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'extra-11-fish-speech-cpu' and extra != 'extra-11-fish-speech-cu126' and extra != 'extra-11-fish-speech-cu128' and extra != 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu126') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu128' and extra == 'extra-11-fish-speech-cu129')" },
+    { name = "nvidia-nvtx-cu12", version = "12.8.90", source = { registry = "https://pypi.org/simple" }, marker = "(platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'extra-11-fish-speech-cpu' and extra != 'extra-11-fish-speech-cu126' and extra != 'extra-11-fish-speech-cu128' and extra != 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu126') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu128' and extra == 'extra-11-fish-speech-cu129')" },
     { name = "setuptools", marker = "(python_full_version >= '3.12' and extra != 'extra-11-fish-speech-cpu' and extra != 'extra-11-fish-speech-cu126' and extra != 'extra-11-fish-speech-cu128' and extra != 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu126') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu128' and extra == 'extra-11-fish-speech-cu129')" },
     { name = "sympy", marker = "(extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu126') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu128' and extra == 'extra-11-fish-speech-cu129') or (extra != 'extra-11-fish-speech-cpu' and extra != 'extra-11-fish-speech-cu126' and extra != 'extra-11-fish-speech-cu128' and extra != 'extra-11-fish-speech-cu129')" },
+    { name = "triton", marker = "(platform_machine == 'x86_64' and sys_platform == 'linux' and extra != 'extra-11-fish-speech-cpu' and extra != 'extra-11-fish-speech-cu126' and extra != 'extra-11-fish-speech-cu128' and extra != 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu126') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu128' and extra == 'extra-11-fish-speech-cu129')" },
     { name = "typing-extensions", marker = "(extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu126') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu128' and extra == 'extra-11-fish-speech-cu129') or (extra != 'extra-11-fish-speech-cpu' and extra != 'extra-11-fish-speech-cu126' and extra != 'extra-11-fish-speech-cu128' and extra != 'extra-11-fish-speech-cu129')" },
 ]
 wheels = [
@@ -5128,16 +5145,16 @@ dependencies = [
     { name = "torch", version = "2.8.0+cpu", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "(platform_machine == 'aarch64' and sys_platform == 'linux' and extra == 'extra-11-fish-speech-cpu') or (platform_machine != 'aarch64' and extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu126') or (platform_machine != 'aarch64' and extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu128') or (platform_machine != 'aarch64' and extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu129') or (platform_machine != 'aarch64' and extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu128') or (platform_machine != 'aarch64' and extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu129') or (platform_machine != 'aarch64' and extra == 'extra-11-fish-speech-cu128' and extra == 'extra-11-fish-speech-cu129') or (sys_platform != 'linux' and extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu126') or (sys_platform != 'linux' and extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu128') or (sys_platform != 'linux' and extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu129') or (sys_platform != 'linux' and extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu128') or (sys_platform != 'linux' and extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu129') or (sys_platform != 'linux' and extra == 'extra-11-fish-speech-cu128' and extra == 'extra-11-fish-speech-cu129') or (extra != 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu128') or (extra != 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu129') or (extra != 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu128' and extra == 'extra-11-fish-speech-cu129')" },
 ]
 wheels = [
-    { url = "https://download.pytorch.org/whl/cpu/torchaudio-2.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c2f44cf279f673cfcdd8f576c349eee8bedf8caab351a5dd78b32970cc34a212" },
-    { url = "https://download.pytorch.org/whl/cpu/torchaudio-2.8.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:d3c1b85b26a09832d139f6d6da6b66caeb51d2e16e08f8587665c44a9e1aa8f9" },
-    { url = "https://download.pytorch.org/whl/cpu/torchaudio-2.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c9276857d241c6de257af765c0f51fc011af38cb725401495121b280913007cf" },
-    { url = "https://download.pytorch.org/whl/cpu/torchaudio-2.8.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:4573c6042950c20278e3608a9a38050ba0bc72e0049e1bbfd249caf859a8029b" },
-    { url = "https://download.pytorch.org/whl/cpu/torchaudio-2.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ddef94bf181e6447cbb05f38beaca8f6c5bb8d2b9ddced1aa3452025b9fc70d3" },
-    { url = "https://download.pytorch.org/whl/cpu/torchaudio-2.8.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:862e2e40bf09d865e5df080a84c1a39bbcef40e43140f4b1737eb3a389d3b38f" },
-    { url = "https://download.pytorch.org/whl/cpu/torchaudio-2.8.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f851d32e94ca05e470f0c60e25726ec1e0eb71cb2ca5a0206b7fd03272ccc3c8" },
-    { url = "https://download.pytorch.org/whl/cpu/torchaudio-2.8.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:09535a9b727c0793cd07c1ace99f3f353626281bcc3e30c2f2314e3ebc9d3f96" },
-    { url = "https://download.pytorch.org/whl/cpu/torchaudio-2.8.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:68df9c9068984edff8065c2b6656725e6114fe89281b0cf122c7505305fc98a4" },
-    { url = "https://download.pytorch.org/whl/cpu/torchaudio-2.8.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:1951f10ed092f2dda57634f6a3950ef21c9d9352551aa84a9fccd51bbda18095" },
+    { url = "https://download-r2.pytorch.org/whl/cpu/torchaudio-2.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c2f44cf279f673cfcdd8f576c349eee8bedf8caab351a5dd78b32970cc34a212" },
+    { url = "https://download-r2.pytorch.org/whl/cpu/torchaudio-2.8.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:d3c1b85b26a09832d139f6d6da6b66caeb51d2e16e08f8587665c44a9e1aa8f9" },
+    { url = "https://download-r2.pytorch.org/whl/cpu/torchaudio-2.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c9276857d241c6de257af765c0f51fc011af38cb725401495121b280913007cf" },
+    { url = "https://download-r2.pytorch.org/whl/cpu/torchaudio-2.8.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:4573c6042950c20278e3608a9a38050ba0bc72e0049e1bbfd249caf859a8029b" },
+    { url = "https://download-r2.pytorch.org/whl/cpu/torchaudio-2.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ddef94bf181e6447cbb05f38beaca8f6c5bb8d2b9ddced1aa3452025b9fc70d3" },
+    { url = "https://download-r2.pytorch.org/whl/cpu/torchaudio-2.8.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:862e2e40bf09d865e5df080a84c1a39bbcef40e43140f4b1737eb3a389d3b38f" },
+    { url = "https://download-r2.pytorch.org/whl/cpu/torchaudio-2.8.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f851d32e94ca05e470f0c60e25726ec1e0eb71cb2ca5a0206b7fd03272ccc3c8" },
+    { url = "https://download-r2.pytorch.org/whl/cpu/torchaudio-2.8.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:09535a9b727c0793cd07c1ace99f3f353626281bcc3e30c2f2314e3ebc9d3f96" },
+    { url = "https://download-r2.pytorch.org/whl/cpu/torchaudio-2.8.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:68df9c9068984edff8065c2b6656725e6114fe89281b0cf122c7505305fc98a4" },
+    { url = "https://download-r2.pytorch.org/whl/cpu/torchaudio-2.8.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:1951f10ed092f2dda57634f6a3950ef21c9d9352551aa84a9fccd51bbda18095" },
 ]
 
 [[package]]
@@ -5154,11 +5171,11 @@ dependencies = [
     { name = "torch", version = "2.8.0+cu129", source = { registry = "https://download.pytorch.org/whl/cu129" }, marker = "(platform_machine == 'aarch64' and sys_platform == 'linux' and extra == 'extra-11-fish-speech-cu129') or (platform_machine != 'aarch64' and extra == 'extra-11-fish-speech-cu128' and extra == 'extra-11-fish-speech-cu129') or (sys_platform != 'linux' and extra == 'extra-11-fish-speech-cu128' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu126') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu129')" },
 ]
 wheels = [
-    { url = "https://download.pytorch.org/whl/cu129/torchaudio-2.8.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:731b33fcce4b31a5a6fd145c4d95d1e96ec437b39dcb74248c15432c93ac98a1" },
-    { url = "https://download.pytorch.org/whl/cu129/torchaudio-2.8.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:019fce8acccf36715b849eafd1b65c0ee5fd66fb5143a32dbbb883ee2ba204b3" },
-    { url = "https://download.pytorch.org/whl/cu129/torchaudio-2.8.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:67d4f6cbfcb795157850db6a3735301b929cdfe2b56032dc3365105b49a4ee84" },
-    { url = "https://download.pytorch.org/whl/cu129/torchaudio-2.8.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:2086c64c321d949e9c3abcdf4da6405f1f5317c34980612cb1d9978bae7d7b6e" },
-    { url = "https://download.pytorch.org/whl/cu129/torchaudio-2.8.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:fea5c90031ec7de069fa80228d8210d29595cc18c00f5e9954274f4e3f157e07" },
+    { url = "https://download-r2.pytorch.org/whl/cu129/torchaudio-2.8.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:731b33fcce4b31a5a6fd145c4d95d1e96ec437b39dcb74248c15432c93ac98a1" },
+    { url = "https://download-r2.pytorch.org/whl/cu129/torchaudio-2.8.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:019fce8acccf36715b849eafd1b65c0ee5fd66fb5143a32dbbb883ee2ba204b3" },
+    { url = "https://download-r2.pytorch.org/whl/cu129/torchaudio-2.8.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:67d4f6cbfcb795157850db6a3735301b929cdfe2b56032dc3365105b49a4ee84" },
+    { url = "https://download-r2.pytorch.org/whl/cu129/torchaudio-2.8.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:2086c64c321d949e9c3abcdf4da6405f1f5317c34980612cb1d9978bae7d7b6e" },
+    { url = "https://download-r2.pytorch.org/whl/cu129/torchaudio-2.8.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:fea5c90031ec7de069fa80228d8210d29595cc18c00f5e9954274f4e3f157e07" },
 ]
 
 [[package]]
@@ -5219,16 +5236,16 @@ dependencies = [
     { name = "torch", version = "2.8.0+cpu", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "(platform_machine != 'aarch64' and sys_platform == 'linux' and extra == 'extra-11-fish-speech-cpu') or (sys_platform != 'darwin' and sys_platform != 'linux' and extra == 'extra-11-fish-speech-cpu') or (sys_platform == 'darwin' and extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu126') or (sys_platform == 'darwin' and extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu128') or (sys_platform == 'darwin' and extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu129') or (sys_platform == 'darwin' and extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu128') or (sys_platform == 'darwin' and extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu129') or (sys_platform == 'darwin' and extra == 'extra-11-fish-speech-cu128' and extra == 'extra-11-fish-speech-cu129') or (sys_platform == 'linux' and extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu126') or (sys_platform == 'linux' and extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu128') or (sys_platform == 'linux' and extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu129') or (extra != 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu128') or (extra != 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu129') or (extra != 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu128' and extra == 'extra-11-fish-speech-cu129')" },
 ]
 wheels = [
-    { url = "https://download.pytorch.org/whl/cpu/torchaudio-2.8.0%2Bcpu-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:c955835e470ebbde03d7d54ca5d8ba5722138bbfd66cfb86845234b3a5b9f9fa" },
-    { url = "https://download.pytorch.org/whl/cpu/torchaudio-2.8.0%2Bcpu-cp310-cp310-win_amd64.whl", hash = "sha256:e9e68f16f1afe108f0cb1c7d636d0242fdc43cbbcaab222a72a373b9d2799134" },
-    { url = "https://download.pytorch.org/whl/cpu/torchaudio-2.8.0%2Bcpu-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:e54bd7fc9472019308097d99102df9acee22aa2451ae808d27840bc874320292" },
-    { url = "https://download.pytorch.org/whl/cpu/torchaudio-2.8.0%2Bcpu-cp311-cp311-win_amd64.whl", hash = "sha256:db37df7eee906f8fe0a639fdc673f3541cb2e173169b16d4133447eb922d1938" },
-    { url = "https://download.pytorch.org/whl/cpu/torchaudio-2.8.0%2Bcpu-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:9377faee65a290578280ac7f4884c3586253dac2ca28c60f458ff6efe86a6b05" },
-    { url = "https://download.pytorch.org/whl/cpu/torchaudio-2.8.0%2Bcpu-cp312-cp312-win_amd64.whl", hash = "sha256:9b302192b570657c1cc787a4d487ae4bbb7f2aab1c01b1fcc46757e7f86f391e" },
-    { url = "https://download.pytorch.org/whl/cpu/torchaudio-2.8.0%2Bcpu-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:e1b1f530e8b71b1d079e23db45a0e621709061710ef8540aae8280aa039554ee" },
-    { url = "https://download.pytorch.org/whl/cpu/torchaudio-2.8.0%2Bcpu-cp313-cp313-win_amd64.whl", hash = "sha256:0c2d081e24204768e636cbf05e1377c8a6964b8ed6fa3aa5092ba9af9bbc19c5" },
-    { url = "https://download.pytorch.org/whl/cpu/torchaudio-2.8.0%2Bcpu-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:89c2d04fe1cb7c31eb042f7b36e1ce8e2afacf769ecd5f216527e184e4857099" },
-    { url = "https://download.pytorch.org/whl/cpu/torchaudio-2.8.0%2Bcpu-cp313-cp313t-win_amd64.whl", hash = "sha256:ab4653da31dc37f0a643f41f4da8bee647a8686bacf12d3929cac8aead186811" },
+    { url = "https://download-r2.pytorch.org/whl/cpu/torchaudio-2.8.0%2Bcpu-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:c955835e470ebbde03d7d54ca5d8ba5722138bbfd66cfb86845234b3a5b9f9fa" },
+    { url = "https://download-r2.pytorch.org/whl/cpu/torchaudio-2.8.0%2Bcpu-cp310-cp310-win_amd64.whl", hash = "sha256:e9e68f16f1afe108f0cb1c7d636d0242fdc43cbbcaab222a72a373b9d2799134" },
+    { url = "https://download-r2.pytorch.org/whl/cpu/torchaudio-2.8.0%2Bcpu-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:e54bd7fc9472019308097d99102df9acee22aa2451ae808d27840bc874320292" },
+    { url = "https://download-r2.pytorch.org/whl/cpu/torchaudio-2.8.0%2Bcpu-cp311-cp311-win_amd64.whl", hash = "sha256:db37df7eee906f8fe0a639fdc673f3541cb2e173169b16d4133447eb922d1938" },
+    { url = "https://download-r2.pytorch.org/whl/cpu/torchaudio-2.8.0%2Bcpu-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:9377faee65a290578280ac7f4884c3586253dac2ca28c60f458ff6efe86a6b05" },
+    { url = "https://download-r2.pytorch.org/whl/cpu/torchaudio-2.8.0%2Bcpu-cp312-cp312-win_amd64.whl", hash = "sha256:9b302192b570657c1cc787a4d487ae4bbb7f2aab1c01b1fcc46757e7f86f391e" },
+    { url = "https://download-r2.pytorch.org/whl/cpu/torchaudio-2.8.0%2Bcpu-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:e1b1f530e8b71b1d079e23db45a0e621709061710ef8540aae8280aa039554ee" },
+    { url = "https://download-r2.pytorch.org/whl/cpu/torchaudio-2.8.0%2Bcpu-cp313-cp313-win_amd64.whl", hash = "sha256:0c2d081e24204768e636cbf05e1377c8a6964b8ed6fa3aa5092ba9af9bbc19c5" },
+    { url = "https://download-r2.pytorch.org/whl/cpu/torchaudio-2.8.0%2Bcpu-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:89c2d04fe1cb7c31eb042f7b36e1ce8e2afacf769ecd5f216527e184e4857099" },
+    { url = "https://download-r2.pytorch.org/whl/cpu/torchaudio-2.8.0%2Bcpu-cp313-cp313t-win_amd64.whl", hash = "sha256:ab4653da31dc37f0a643f41f4da8bee647a8686bacf12d3929cac8aead186811" },
 ]
 
 [[package]]
@@ -5249,16 +5266,16 @@ dependencies = [
     { name = "torch", version = "2.8.0+cu126", source = { registry = "https://download.pytorch.org/whl/cu126" }, marker = "extra == 'extra-11-fish-speech-cu126' or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu128' and extra == 'extra-11-fish-speech-cu129')" },
 ]
 wheels = [
-    { url = "https://download.pytorch.org/whl/cu126/torchaudio-2.8.0%2Bcu126-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:dcec92ca53fd7ec1cf0257f15b127542f0d49855d5580578b14337fcc015f8af" },
-    { url = "https://download.pytorch.org/whl/cu126/torchaudio-2.8.0%2Bcu126-cp310-cp310-win_amd64.whl", hash = "sha256:6fc06bb1d5b3be2061eafe03cff9d9040e51d900097b2f779844ae319c0f0cc3" },
-    { url = "https://download.pytorch.org/whl/cu126/torchaudio-2.8.0%2Bcu126-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:77859ec6c6a92ca3b666a3f02363a5631e9676c027fb4dce99a461a089c9962c" },
-    { url = "https://download.pytorch.org/whl/cu126/torchaudio-2.8.0%2Bcu126-cp311-cp311-win_amd64.whl", hash = "sha256:48e19338f6fd24588cd5608b21087d00b80e30ddf054d9ce83f792a4b0025d7f" },
-    { url = "https://download.pytorch.org/whl/cu126/torchaudio-2.8.0%2Bcu126-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:29d91c915d877dfe4714082d188b7677e059dfd57d43a2d4ad33641a7ef53feb" },
-    { url = "https://download.pytorch.org/whl/cu126/torchaudio-2.8.0%2Bcu126-cp312-cp312-win_amd64.whl", hash = "sha256:4098eadd03a8d283b229677d1e02114fcf6a8bc331941a08232499e43ae8a497" },
-    { url = "https://download.pytorch.org/whl/cu126/torchaudio-2.8.0%2Bcu126-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:3a7d774faf904ee38c0d70b850db3e9a5847ba10df23b758378ad715108f1ed2" },
-    { url = "https://download.pytorch.org/whl/cu126/torchaudio-2.8.0%2Bcu126-cp313-cp313-win_amd64.whl", hash = "sha256:a9ffc8eda507cfc94b072e084d3a8120ef237cdce3ce210856f56339e1c2e7b0" },
-    { url = "https://download.pytorch.org/whl/cu126/torchaudio-2.8.0%2Bcu126-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:8eaf7a52b1e20b6a72d0eea93be9c0489c72dd3ba7eaed91c9b06014632b3563" },
-    { url = "https://download.pytorch.org/whl/cu126/torchaudio-2.8.0%2Bcu126-cp313-cp313t-win_amd64.whl", hash = "sha256:1f4be61af5f0ee8d3bf00d61e67251fef4c4bca36361cacc7a5e4af7d2339ce6" },
+    { url = "https://download-r2.pytorch.org/whl/cu126/torchaudio-2.8.0%2Bcu126-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:dcec92ca53fd7ec1cf0257f15b127542f0d49855d5580578b14337fcc015f8af" },
+    { url = "https://download-r2.pytorch.org/whl/cu126/torchaudio-2.8.0%2Bcu126-cp310-cp310-win_amd64.whl", hash = "sha256:6fc06bb1d5b3be2061eafe03cff9d9040e51d900097b2f779844ae319c0f0cc3" },
+    { url = "https://download-r2.pytorch.org/whl/cu126/torchaudio-2.8.0%2Bcu126-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:77859ec6c6a92ca3b666a3f02363a5631e9676c027fb4dce99a461a089c9962c" },
+    { url = "https://download-r2.pytorch.org/whl/cu126/torchaudio-2.8.0%2Bcu126-cp311-cp311-win_amd64.whl", hash = "sha256:48e19338f6fd24588cd5608b21087d00b80e30ddf054d9ce83f792a4b0025d7f" },
+    { url = "https://download-r2.pytorch.org/whl/cu126/torchaudio-2.8.0%2Bcu126-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:29d91c915d877dfe4714082d188b7677e059dfd57d43a2d4ad33641a7ef53feb" },
+    { url = "https://download-r2.pytorch.org/whl/cu126/torchaudio-2.8.0%2Bcu126-cp312-cp312-win_amd64.whl", hash = "sha256:4098eadd03a8d283b229677d1e02114fcf6a8bc331941a08232499e43ae8a497" },
+    { url = "https://download-r2.pytorch.org/whl/cu126/torchaudio-2.8.0%2Bcu126-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:3a7d774faf904ee38c0d70b850db3e9a5847ba10df23b758378ad715108f1ed2" },
+    { url = "https://download-r2.pytorch.org/whl/cu126/torchaudio-2.8.0%2Bcu126-cp313-cp313-win_amd64.whl", hash = "sha256:a9ffc8eda507cfc94b072e084d3a8120ef237cdce3ce210856f56339e1c2e7b0" },
+    { url = "https://download-r2.pytorch.org/whl/cu126/torchaudio-2.8.0%2Bcu126-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:8eaf7a52b1e20b6a72d0eea93be9c0489c72dd3ba7eaed91c9b06014632b3563" },
+    { url = "https://download-r2.pytorch.org/whl/cu126/torchaudio-2.8.0%2Bcu126-cp313-cp313t-win_amd64.whl", hash = "sha256:1f4be61af5f0ee8d3bf00d61e67251fef4c4bca36361cacc7a5e4af7d2339ce6" },
 ]
 
 [[package]]
@@ -5279,16 +5296,16 @@ dependencies = [
     { name = "torch", version = "2.8.0+cu128", source = { registry = "https://download.pytorch.org/whl/cu128" }, marker = "extra == 'extra-11-fish-speech-cu128' or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu126') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cpu' and extra != 'extra-11-fish-speech-cu128' and extra == 'extra-11-fish-speech-cu129')" },
 ]
 wheels = [
-    { url = "https://download.pytorch.org/whl/cu128/torchaudio-2.8.0%2Bcu128-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:a0161e95285a0b716de210fee0392151d601e7da3cc86595008d826abff48a8c" },
-    { url = "https://download.pytorch.org/whl/cu128/torchaudio-2.8.0%2Bcu128-cp310-cp310-win_amd64.whl", hash = "sha256:5d7a9d913e2744573ed3b7ec2f781ed39833c81c9c41859973ec10ac174c2366" },
-    { url = "https://download.pytorch.org/whl/cu128/torchaudio-2.8.0%2Bcu128-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:f4409df567d0723a7a3a89d32c7552a17e0ff6f137ea26a0d268c665259b2995" },
-    { url = "https://download.pytorch.org/whl/cu128/torchaudio-2.8.0%2Bcu128-cp311-cp311-win_amd64.whl", hash = "sha256:7a1eb6154e05b8056b34c7a41495e09d57f79eb0180eb4e7f3bb2a61845ca8ea" },
-    { url = "https://download.pytorch.org/whl/cu128/torchaudio-2.8.0%2Bcu128-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:145b8a0c21cfcaa1705c67173c5d439087e0e120d5da9bc344746f937901d243" },
-    { url = "https://download.pytorch.org/whl/cu128/torchaudio-2.8.0%2Bcu128-cp312-cp312-win_amd64.whl", hash = "sha256:cce3a60cd9a97f7360c8f95504ac349311fb7d6b9b826135936764f4de5f782d" },
-    { url = "https://download.pytorch.org/whl/cu128/torchaudio-2.8.0%2Bcu128-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:410bb8ea46225efe658e5d27a3802c181a2255913003621a5d25a51aca8018d9" },
-    { url = "https://download.pytorch.org/whl/cu128/torchaudio-2.8.0%2Bcu128-cp313-cp313-win_amd64.whl", hash = "sha256:3146bbd48992d215f6bb1aef9626d734c3180b377791ded2a4d4d2c0e63c0cc2" },
-    { url = "https://download.pytorch.org/whl/cu128/torchaudio-2.8.0%2Bcu128-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:04b410f93337fc6c16576d0c88e2a31091aef9d1fd212ebb8cd26899dba175e0" },
-    { url = "https://download.pytorch.org/whl/cu128/torchaudio-2.8.0%2Bcu128-cp313-cp313t-win_amd64.whl", hash = "sha256:1054e0a7613cac54ed9b3784a5fcbe023748a70004d9cca74c5f9ae00a1fdfd1" },
+    { url = "https://download-r2.pytorch.org/whl/cu128/torchaudio-2.8.0%2Bcu128-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:a0161e95285a0b716de210fee0392151d601e7da3cc86595008d826abff48a8c" },
+    { url = "https://download-r2.pytorch.org/whl/cu128/torchaudio-2.8.0%2Bcu128-cp310-cp310-win_amd64.whl", hash = "sha256:5d7a9d913e2744573ed3b7ec2f781ed39833c81c9c41859973ec10ac174c2366" },
+    { url = "https://download-r2.pytorch.org/whl/cu128/torchaudio-2.8.0%2Bcu128-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:f4409df567d0723a7a3a89d32c7552a17e0ff6f137ea26a0d268c665259b2995" },
+    { url = "https://download-r2.pytorch.org/whl/cu128/torchaudio-2.8.0%2Bcu128-cp311-cp311-win_amd64.whl", hash = "sha256:7a1eb6154e05b8056b34c7a41495e09d57f79eb0180eb4e7f3bb2a61845ca8ea" },
+    { url = "https://download-r2.pytorch.org/whl/cu128/torchaudio-2.8.0%2Bcu128-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:145b8a0c21cfcaa1705c67173c5d439087e0e120d5da9bc344746f937901d243" },
+    { url = "https://download-r2.pytorch.org/whl/cu128/torchaudio-2.8.0%2Bcu128-cp312-cp312-win_amd64.whl", hash = "sha256:cce3a60cd9a97f7360c8f95504ac349311fb7d6b9b826135936764f4de5f782d" },
+    { url = "https://download-r2.pytorch.org/whl/cu128/torchaudio-2.8.0%2Bcu128-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:410bb8ea46225efe658e5d27a3802c181a2255913003621a5d25a51aca8018d9" },
+    { url = "https://download-r2.pytorch.org/whl/cu128/torchaudio-2.8.0%2Bcu128-cp313-cp313-win_amd64.whl", hash = "sha256:3146bbd48992d215f6bb1aef9626d734c3180b377791ded2a4d4d2c0e63c0cc2" },
+    { url = "https://download-r2.pytorch.org/whl/cu128/torchaudio-2.8.0%2Bcu128-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:04b410f93337fc6c16576d0c88e2a31091aef9d1fd212ebb8cd26899dba175e0" },
+    { url = "https://download-r2.pytorch.org/whl/cu128/torchaudio-2.8.0%2Bcu128-cp313-cp313t-win_amd64.whl", hash = "sha256:1054e0a7613cac54ed9b3784a5fcbe023748a70004d9cca74c5f9ae00a1fdfd1" },
 ]
 
 [[package]]
@@ -5309,16 +5326,16 @@ dependencies = [
     { name = "torch", version = "2.8.0+cu129", source = { registry = "https://download.pytorch.org/whl/cu129" }, marker = "(platform_machine != 'aarch64' and extra == 'extra-11-fish-speech-cu129') or (sys_platform != 'linux' and extra != 'extra-11-fish-speech-cu128' and extra == 'extra-11-fish-speech-cu129') or (sys_platform != 'linux' and extra != 'extra-11-fish-speech-cpu' and extra != 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu126') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu128' and extra == 'extra-11-fish-speech-cu129')" },
 ]
 wheels = [
-    { url = "https://download.pytorch.org/whl/cu129/torchaudio-2.8.0%2Bcu129-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:bf779145a53e2ea8eddb1ba9802fc4723ea1b927c98951a3430794061cf779d5" },
-    { url = "https://download.pytorch.org/whl/cu129/torchaudio-2.8.0%2Bcu129-cp310-cp310-win_amd64.whl", hash = "sha256:a477f1320197311608fbc8ced0484c897cb285b38d583f2080cddf373194fe82" },
-    { url = "https://download.pytorch.org/whl/cu129/torchaudio-2.8.0%2Bcu129-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:6115c725e6c21548aed6a2c78a2233e7fce1d249ec9997f1ba062c86d99f4003" },
-    { url = "https://download.pytorch.org/whl/cu129/torchaudio-2.8.0%2Bcu129-cp311-cp311-win_amd64.whl", hash = "sha256:964e442feb548bb373e3fe9fae64a8cc3e413e4855bbd82aa9e8897966f700ae" },
-    { url = "https://download.pytorch.org/whl/cu129/torchaudio-2.8.0%2Bcu129-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:40df9011972519120f284f56e5e7d131d4250ea69653499028d1d30b353f932e" },
-    { url = "https://download.pytorch.org/whl/cu129/torchaudio-2.8.0%2Bcu129-cp312-cp312-win_amd64.whl", hash = "sha256:bfe0d4c6e770ef3b1f7a287a4c8d33ac276a1d983306573ee28e42de02a32fe3" },
-    { url = "https://download.pytorch.org/whl/cu129/torchaudio-2.8.0%2Bcu129-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:475546c447c9dfab88caa10334502576e0ba5f46742e5e67ddd09094affa8d48" },
-    { url = "https://download.pytorch.org/whl/cu129/torchaudio-2.8.0%2Bcu129-cp313-cp313-win_amd64.whl", hash = "sha256:42b462e8de400421c693ddbd3c88fde5fbe2c2474c3e4a709db99d635c512e79" },
-    { url = "https://download.pytorch.org/whl/cu129/torchaudio-2.8.0%2Bcu129-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:d7a234d0ad889c7d2986de6f759bb6d6550873bfcbbfe29529a85240d263a78b" },
-    { url = "https://download.pytorch.org/whl/cu129/torchaudio-2.8.0%2Bcu129-cp313-cp313t-win_amd64.whl", hash = "sha256:88a216cb4538eddb488fee7bcbb1b4028cc6a3fe47b96dd67af073cf67562037" },
+    { url = "https://download-r2.pytorch.org/whl/cu129/torchaudio-2.8.0%2Bcu129-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:bf779145a53e2ea8eddb1ba9802fc4723ea1b927c98951a3430794061cf779d5" },
+    { url = "https://download-r2.pytorch.org/whl/cu129/torchaudio-2.8.0%2Bcu129-cp310-cp310-win_amd64.whl", hash = "sha256:a477f1320197311608fbc8ced0484c897cb285b38d583f2080cddf373194fe82" },
+    { url = "https://download-r2.pytorch.org/whl/cu129/torchaudio-2.8.0%2Bcu129-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:6115c725e6c21548aed6a2c78a2233e7fce1d249ec9997f1ba062c86d99f4003" },
+    { url = "https://download-r2.pytorch.org/whl/cu129/torchaudio-2.8.0%2Bcu129-cp311-cp311-win_amd64.whl", hash = "sha256:964e442feb548bb373e3fe9fae64a8cc3e413e4855bbd82aa9e8897966f700ae" },
+    { url = "https://download-r2.pytorch.org/whl/cu129/torchaudio-2.8.0%2Bcu129-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:40df9011972519120f284f56e5e7d131d4250ea69653499028d1d30b353f932e" },
+    { url = "https://download-r2.pytorch.org/whl/cu129/torchaudio-2.8.0%2Bcu129-cp312-cp312-win_amd64.whl", hash = "sha256:bfe0d4c6e770ef3b1f7a287a4c8d33ac276a1d983306573ee28e42de02a32fe3" },
+    { url = "https://download-r2.pytorch.org/whl/cu129/torchaudio-2.8.0%2Bcu129-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:475546c447c9dfab88caa10334502576e0ba5f46742e5e67ddd09094affa8d48" },
+    { url = "https://download-r2.pytorch.org/whl/cu129/torchaudio-2.8.0%2Bcu129-cp313-cp313-win_amd64.whl", hash = "sha256:42b462e8de400421c693ddbd3c88fde5fbe2c2474c3e4a709db99d635c512e79" },
+    { url = "https://download-r2.pytorch.org/whl/cu129/torchaudio-2.8.0%2Bcu129-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:d7a234d0ad889c7d2986de6f759bb6d6550873bfcbbfe29529a85240d263a78b" },
+    { url = "https://download-r2.pytorch.org/whl/cu129/torchaudio-2.8.0%2Bcu129-cp313-cp313t-win_amd64.whl", hash = "sha256:88a216cb4538eddb488fee7bcbb1b4028cc6a3fe47b96dd67af073cf67562037" },
 ]
 
 [[package]]
@@ -5388,7 +5405,7 @@ name = "triton"
 version = "3.4.0"
 source = { registry = "https://pypi.org/simple" }
 dependencies = [
-    { name = "setuptools", marker = "(sys_platform == 'linux' and extra == 'extra-11-fish-speech-cu126') or (sys_platform == 'linux' and extra == 'extra-11-fish-speech-cu128') or (sys_platform == 'linux' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu126') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu128' and extra == 'extra-11-fish-speech-cu129')" },
+    { name = "setuptools", marker = "(sys_platform == 'linux' and extra != 'extra-11-fish-speech-cpu') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cu126' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cu128' and extra == 'extra-11-fish-speech-cu129') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu126') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu128') or (extra == 'extra-11-fish-speech-cpu' and extra == 'extra-11-fish-speech-cu129')" },
 ]
 wheels = [
     { url = "https://files.pythonhosted.org/packages/62/ee/0ee5f64a87eeda19bbad9bc54ae5ca5b98186ed00055281fd40fb4beb10e/triton-3.4.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7ff2785de9bc02f500e085420273bb5cc9c9bb767584a4aa28d6e360cec70128", size = 155430069, upload-time = "2025-07-30T19:58:21.715Z" },