about summary refs log tree commit diff
path: root/nixpkgs/pkgs/tools/audio/tts/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/tools/audio/tts/default.nix')
-rw-r--r--nixpkgs/pkgs/tools/audio/tts/default.nix69
1 files changed, 42 insertions, 27 deletions
diff --git a/nixpkgs/pkgs/tools/audio/tts/default.nix b/nixpkgs/pkgs/tools/audio/tts/default.nix
index 325039d68650..3a10881b6055 100644
--- a/nixpkgs/pkgs/tools/audio/tts/default.nix
+++ b/nixpkgs/pkgs/tools/audio/tts/default.nix
@@ -2,6 +2,7 @@
 , python3Packages
 , fetchFromGitHub
 , python3
+, fetchpatch
 }:
 
 # USAGE:
@@ -9,24 +10,32 @@
 # # pick your favorite vocoder/tts model
 # $ tts-server --model_name tts_models/en/ljspeech/glow-tts --vocoder_name vocoder_models/universal/libri-tts/fullband-melgan
 #
+# If you upgrade from an old version you may have to delete old models from ~/.local/share/tts
+# Also note that your tts version might not support all available models so check:
+#   https://github.com/coqui-ai/TTS/releases/tag/v0.0.12
+#
 # For now, for deployment check the systemd unit in the pull request:
 #   https://github.com/NixOS/nixpkgs/pull/103851#issue-521121136
-#
 
 python3Packages.buildPythonApplication rec {
   pname = "tts";
-  # until https://github.com/mozilla/TTS/issues/424 is resolved
-  # we treat released models as released versions:
-  # https://github.com/mozilla/TTS/wiki/Released-Models
-  version = "0.0.9";
+  version = "0.0.12";
 
   src = fetchFromGitHub {
-    owner = "mozilla";
+    owner = "coqui-ai";
     repo = "TTS";
-    rev = "df5899daf4ba4ec89544edf94f9c2e105c544461";
-    sha256 = "sha256-lklG8DqG04LKJY93z2axeYhW8gtpbRG41o9ow2gJjuA=";
+    rev = "v${version}";
+    sha256 = "sha256-0M9wcdBmuTK+NvEGsXEdoYiVFjw8G2MRUwmi1PJgmzI=";
   };
 
+  patches = [
+    # https://github.com/coqui-ai/TTS/pull/435
+    (fetchpatch {
+      url = "https://github.com/coqui-ai/TTS/commit/97f98e4c4584ef14ed2f4885aa02c162d9364a00.patch";
+      sha256 = "sha256-DAZYOOAe+6TYBF5ukFq5HRwm49askEvNEivuwb/oCWM=";
+    })
+  ];
+
   preBuild = ''
     # numba jit tries to write to its cache directory
     export HOME=$TMPDIR
@@ -37,7 +46,11 @@ python3Packages.buildPythonApplication rec {
     sed -i -e 's!unidecode==[^"]*!unidecode!' requirements.txt setup.py
     sed -i -e 's!bokeh==[^"]*!bokeh!' requirements.txt setup.py
     sed -i -e 's!numba==[^"]*!numba!' requirements.txt setup.py
+    sed -i -e 's!numpy==[^"]*!numpy!' requirements.txt setup.py
+    sed -i -e 's!umap-learn==[^"]*!umap-learn!' requirements.txt setup.py
     # Not required for building/installation but for their development/ci workflow
+    sed -i -e '/black/d' requirements.txt
+    sed -i -e '/isor/d' requirements.txt
     sed -i -e '/pylint/d' requirements.txt
     sed -i -e '/cardboardlint/d' requirements.txt setup.py
   '';
@@ -45,24 +58,25 @@ python3Packages.buildPythonApplication rec {
   nativeBuildInputs = [ python3Packages.cython ];
 
   propagatedBuildInputs = with python3Packages; [
-    matplotlib
-    scipy
-    pytorch
-    flask
     attrdict
     bokeh
-    soundfile
-    tqdm
-    librosa
-    unidecode
-    umap-learn
-    phonemizer
-    tensorboardx
+    flask
     fuzzywuzzy
-    inflect
     gdown
+    inflect
+    jieba
+    librosa
+    matplotlib
+    phonemizer
+    pypinyin
     pysbd
-    pyworld
+    pytorch
+    scipy
+    soundfile
+    tensorboardx
+    tqdm
+    umap-learn
+    unidecode
   ];
 
   postInstall = ''
@@ -92,16 +106,17 @@ python3Packages.buildPythonApplication rec {
     mv TTS{,.old}
   '';
 
-  pytestFlagsArray = [
+  disabledTestPaths = [
     # requires tensorflow
-    "--ignore=tests/test_tacotron2_tf_model.py"
-    "--ignore=tests/test_vocoder_tf_melgan_generator.py"
-    "--ignore=tests/test_vocoder_tf_pqmf.py"
+    "tests/test_tacotron2_tf_model.py"
+    "tests/test_vocoder_tf_melgan_generator.py"
+    "tests/test_vocoder_tf_pqmf.py"
   ];
 
   meta = with lib; {
-    homepage = "https://github.com/mozilla/TTS";
-    description = "Deep learning for Text to Speech";
+    homepage = "https://github.com/coqui-ai/TTS";
+    changelog = "https://github.com/coqui-ai/TTS/releases/tag/v${version}";
+    description = "Deep learning toolkit for Text-to-Speech, battle-tested in research and production";
     license = licenses.mpl20;
     maintainers = with maintainers; [ hexa mic92 ];
   };