forked from mirrors/nixpkgs
Merge pull request #103851 from mweinelt/python/tts
This commit is contained in:
commit
ea48cad85d
31
pkgs/development/python-modules/pysbd/default.nix
Normal file
31
pkgs/development/python-modules/pysbd/default.nix
Normal file
|
@ -0,0 +1,31 @@
|
|||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchPypi
|
||||
, pythonOlder
|
||||
, tqdm
|
||||
, spacy
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pysbd";
|
||||
version = "0.3.3";
|
||||
disabled = pythonOlder "3.5";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "56ab48a28a8470f0042a4cb7c9da8a6dde8621ecf87a86d75f201cbf1837e77f";
|
||||
};
|
||||
|
||||
checkInputs = [ tqdm spacy ];
|
||||
|
||||
doCheck = false; # requires pyconll and blingfire
|
||||
|
||||
pythonImportsCheck = [ "pysbd" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Pysbd (Python Sentence Boundary Disambiguation) is a rule-based sentence boundary detection that works out-of-the-box across many languages";
|
||||
homepage = "https://github.com/nipunsadvilkar/pySBD";
|
||||
license = licenses.mit;
|
||||
maintainers = [ maintainers.mic92 ];
|
||||
};
|
||||
}
|
123
pkgs/tools/audio/tts/default.nix
Normal file
123
pkgs/tools/audio/tts/default.nix
Normal file
|
@ -0,0 +1,123 @@
|
|||
{ lib
|
||||
, python3Packages
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, python3
|
||||
}:
|
||||
|
||||
#
|
||||
# Tested in the following setup:
|
||||
#
|
||||
# TTS model:
|
||||
# Tacotron2 DDC
|
||||
# https://drive.google.com/drive/folders/1Y_0PcB7W6apQChXtbt6v3fAiNwVf4ER5
|
||||
# Vocoder model:
|
||||
# Multi-Band MelGAN
|
||||
# https://drive.google.com/drive/folders/1XeRT0q4zm5gjERJqwmX5w84pMrD00cKD
|
||||
#
|
||||
# Arrange /tmp/tts like this:
|
||||
# scale_stats.npy
|
||||
# tts
|
||||
# tts/checkpoint_130000.pth.tar
|
||||
# tts/checkpoint_130000_tf.pkl
|
||||
# tts/checkpoint_130000_tf_2.3rc0.tflite
|
||||
# tts/config.json
|
||||
# tts/scale_stats.npy
|
||||
# vocoder
|
||||
# vocoder/checkpoint_1450000.pth.tar
|
||||
# vocoder/checkpoint_2750000_tf.pkl
|
||||
# vocoder/checkpoint_2750000_tf_v2.3rc.tflite
|
||||
# vocoder/config.json
|
||||
# vocoder/scale_stats.npy
|
||||
#
|
||||
# Start like this:
|
||||
# cd /tmp/tts
|
||||
# tts-server \
|
||||
# --vocoder_config ./tts/vocoder/config.json \
|
||||
# --vocoder_checkpoint ./tts/vocoder/checkpoint_1450000.pth.tar \
|
||||
# --tts_config ./tts/config.json \
|
||||
# --tts_checkpoint ./tts/checkpoint_130000.pth.tar
|
||||
#
|
||||
# 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 = "unstable-2020-06-17";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mozilla";
|
||||
repo = "TTS";
|
||||
rev = "72a6ac54c8cfaa407fc64b660248c6a788bdd381";
|
||||
sha256 = "1wvs264if9n5xzwi7ryxvwj1j513szp6sfj6n587xk1fphi0921f";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
url = "https://github.com/mozilla/TTS/commit/36fee428b9f3f4ec1914b090a2ec9d785314d9aa.patch";
|
||||
sha256 = "sha256-pP0NxiyrsvQ0A7GEleTdT87XO08o7WxPEpb6Bmj66dc=";
|
||||
})
|
||||
];
|
||||
|
||||
preBuild = ''
|
||||
# numba jit tries to write to its cache directory
|
||||
export HOME=$TMPDIR
|
||||
sed -i -e 's!tensorflow==.*!tensorflow!' requirements.txt
|
||||
sed -i -e 's!librosa==[^"]*!librosa!' requirements.txt setup.py
|
||||
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
|
||||
# Not required for building/installation but for their development/ci workflow
|
||||
sed -i -e '/pylint/d' requirements.txt setup.py
|
||||
sed -i -e '/cardboardlint/d' requirements.txt setup.py
|
||||
'';
|
||||
|
||||
|
||||
propagatedBuildInputs = with python3Packages; [
|
||||
matplotlib
|
||||
scipy
|
||||
pytorch
|
||||
flask
|
||||
attrdict
|
||||
bokeh
|
||||
soundfile
|
||||
tqdm
|
||||
librosa
|
||||
unidecode
|
||||
phonemizer
|
||||
tensorboardx
|
||||
fuzzywuzzy
|
||||
tensorflow_2
|
||||
inflect
|
||||
gdown
|
||||
pysbd
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
cp -r TTS/server/templates/ $out/${python3.sitePackages}/TTS/server
|
||||
'';
|
||||
|
||||
checkInputs = with python3Packages; [ pytestCheckHook ];
|
||||
|
||||
disabledTests = [
|
||||
# RuntimeError: fft: ATen not compiled with MKL support
|
||||
"test_torch_stft"
|
||||
"test_stft_loss"
|
||||
"test_multiscale_stft_loss"
|
||||
# AssertionErrors that I feel incapable of debugging
|
||||
"test_phoneme_to_sequence"
|
||||
"test_text2phone"
|
||||
"test_parametrized_gan_dataset"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/mozilla/TTS";
|
||||
description = "Deep learning for Text to Speech";
|
||||
license = licenses.mpl20;
|
||||
maintainers = with maintainers; [ hexa mic92 ];
|
||||
};
|
||||
}
|
|
@ -25982,6 +25982,8 @@ in
|
|||
|
||||
tremulous = callPackage ../games/tremulous { };
|
||||
|
||||
tts = callPackage ../tools/audio/tts { };
|
||||
|
||||
tuxpaint = callPackage ../games/tuxpaint { };
|
||||
|
||||
tuxtype = callPackage ../games/tuxtype { };
|
||||
|
|
|
@ -4611,6 +4611,8 @@ in {
|
|||
|
||||
pkuseg = callPackage ../development/python-modules/pkuseg { };
|
||||
|
||||
pysbd = callPackage ../development/python-modules/pysbd { };
|
||||
|
||||
python-csxcad = callPackage ../development/python-modules/python-csxcad { };
|
||||
|
||||
python-openems = callPackage ../development/python-modules/python-openems { };
|
||||
|
|
Loading…
Reference in a new issue