Merge pull request #103714 from mweinelt/python/phonemizer

python3Packages.phonemizer: init at 2.2.1
This commit is contained in:
Michael Raskin 2020-11-14 22:21:43 +00:00 committed by GitHub
commit 3e5039cbd5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 138 additions and 0 deletions

View File

@ -0,0 +1,29 @@
diff --git a/phonemizer/backend/espeak.py b/phonemizer/backend/espeak.py
index 387c11c..ceb5e7e 100644
--- a/phonemizer/backend/espeak.py
+++ b/phonemizer/backend/espeak.py
@@ -81,10 +81,7 @@ class BaseEspeakBackend(BaseBackend):
if _ESPEAK_DEFAULT_PATH:
return _ESPEAK_DEFAULT_PATH
- espeak = distutils.spawn.find_executable('espeak-ng')
- if not espeak: # pragma: nocover
- espeak = distutils.spawn.find_executable('espeak')
- return espeak
+ return "@espeak@"
@classmethod
def is_available(cls):
diff --git a/phonemizer/backend/festival.py b/phonemizer/backend/festival.py
index b5bc56d..0833160 100644
--- a/phonemizer/backend/festival.py
+++ b/phonemizer/backend/festival.py
@@ -78,7 +78,7 @@ class FestivalBackend(BaseBackend):
if _FESTIVAL_DEFAULT_PATH:
return _FESTIVAL_DEFAULT_PATH
- return distutils.spawn.find_executable('festival')
+ return "@festival@"
@classmethod
def is_available(cls):

View File

@ -0,0 +1,73 @@
{ lib
, substituteAll
, buildPythonApplication
, fetchPypi
, python3Packages
, pkgs
, joblib
, segments
, attrs
, espeak-ng
, pytestCheckHook
, pytestrunner
, pytestcov
}:
buildPythonApplication rec {
pname = "phonemizer";
version = "2.2.1";
src = fetchPypi {
inherit pname version;
sha256 = "127n4f10zxq60qd8xvlc1amji4wbghqb90rfp25rzdk716kvgwab";
};
postPatch = ''
sed -i -e '/\'pytest-runner\'/d setup.py
'';
patches = [
(substituteAll {
src = ./backend-paths.patch;
espeak = "${lib.getBin espeak-ng}/bin/espeak";
# override festival path should you try to integrate it
festival = "";
})
./remove-intertwined-festival-test.patch
];
propagatedBuildInputs = [
joblib
segments
attrs
];
preCheck = ''
export HOME=$TMPDIR
'';
checkInputs = [
pytestCheckHook
pytestcov
];
# We tried to package festvial, but were unable to get the backend running,
# so let's disable related tests.
pytestFlagsArray = [
"--ignore=test/test_festival.py"
];
disabledTests = [
"test_festival"
"test_relative"
"test_absolute"
"test_readme_festival_syll"
];
meta = with lib; {
homepage = "https://github.com/bootphon/phonemizer";
description = "Simple text to phones converter for multiple languages";
license = licenses.gpl3;
maintainers = with maintainers; [ hexa ];
};
}

View File

@ -0,0 +1,12 @@
diff --git a/test/test_main.py b/test/test_main.py
index 71d605a..d137cd7 100644
--- a/test/test_main.py
+++ b/test/test_main.py
@@ -63,7 +63,6 @@ def test_readme():
_test(u'hello world', u'həloʊ wɜːld ')
_test(u'hello world', u'həloʊ wɜːld ', '--verbose')
_test(u'hello world', u'həloʊ wɜːld ', '--quiet')
- _test(u'hello world', u'hhaxlow werld', '-b festival --strip')
_test(u'hello world', u'həloʊ wɜːld ', '-l en-us')
_test(u'bonjour le monde', u'bɔ̃ʒuʁ lə mɔ̃d ', '-l fr-fr')
_test(u'bonjour le monde', u'b ɔ̃ ʒ u ʁ ;eword l ə ;eword m ɔ̃ d ;eword ',

View File

@ -0,0 +1,22 @@
diff --git a/test/test_main.py b/test/test_main.py
index 71d605a..0ea3c74 100644
--- a/test/test_main.py
+++ b/test/test_main.py
@@ -63,17 +63,12 @@ def test_readme():
_test(u'hello world', u'həloʊ wɜːld ')
_test(u'hello world', u'həloʊ wɜːld ', '--verbose')
_test(u'hello world', u'həloʊ wɜːld ', '--quiet')
- _test(u'hello world', u'hhaxlow werld', '-b festival --strip')
_test(u'hello world', u'həloʊ wɜːld ', '-l en-us')
_test(u'bonjour le monde', u'bɔ̃ʒuʁ lə mɔ̃d ', '-l fr-fr')
_test(u'bonjour le monde', u'b ɔ̃ ʒ u ʁ ;eword l ə ;eword m ɔ̃ d ;eword ',
'-l fr-fr -p " " -w ";eword "')
-@pytest.mark.skipif(
- '2.1' in backend.FestivalBackend.version(),
- reason='festival-2.1 gives different results than further versions '
- 'for syllable boundaries')
def test_readme_festival_syll():
_test(u'hello world',
u'hh ax ;esyll l ow ;esyll ;eword w er l d ;esyll ;eword ',

View File

@ -5290,6 +5290,8 @@ in {
pyomo = callPackage ../development/python-modules/pyomo { };
phonemizer = callPackage ../development/python-modules/phonemizer { };
pyopencl = callPackage ../development/python-modules/pyopencl { };
pyopengl = callPackage ../development/python-modules/pyopengl { };