speechd: Fix espeak-mbrola voice check
This commit is contained in:
parent
b0a4fa5273
commit
67e5298bfb
3 changed files with 32 additions and 0 deletions
|
@ -45,6 +45,10 @@ stdenv.mkDerivation rec {
|
|||
patchelf --set-rpath "$(patchelf --print-rpath $out/bin/espeak-ng)" $out/bin/speak-ng
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
inherit mbrolaSupport;
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Open source speech synthesizer that supports over 70 languages, based on eSpeak";
|
||||
homepage = "https://github.com/espeak-ng/espeak-ng";
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
, withOss ? false
|
||||
, withFlite ? true, flite
|
||||
, withEspeak ? true, espeak, sonic, pcaudiolib
|
||||
, mbrola
|
||||
, withPico ? true, svox
|
||||
}:
|
||||
|
||||
|
@ -38,6 +39,12 @@ in stdenv.mkDerivation rec {
|
|||
src = ./fix-paths.patch;
|
||||
utillinux = util-linux;
|
||||
})
|
||||
] ++ lib.optionals espeak.mbrolaSupport [
|
||||
# Replace FHS paths.
|
||||
(substituteAll {
|
||||
src = ./fix-mbrola-paths.patch;
|
||||
inherit espeak mbrola;
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
21
pkgs/development/libraries/speechd/fix-mbrola-paths.patch
Normal file
21
pkgs/development/libraries/speechd/fix-mbrola-paths.patch
Normal file
|
@ -0,0 +1,21 @@
|
|||
diff --git a/src/modules/espeak.c b/src/modules/espeak.c
|
||||
index 94a01197..9bb34475 100644
|
||||
--- a/src/modules/espeak.c
|
||||
+++ b/src/modules/espeak.c
|
||||
@@ -898,13 +898,13 @@ static SPDVoice **espeak_list_synthesis_voices()
|
||||
path = g_strdup_printf("%s/mbrola/%s", espeak_data, voicename);
|
||||
if (access(path, O_RDONLY) != 0) {
|
||||
g_free(path);
|
||||
- path = g_strdup_printf("/usr/share/mbrola/%s", voicename);
|
||||
+ path = g_strdup_printf("@mbrola@/share/mbrola/%s", voicename);
|
||||
if (access(path, O_RDONLY) != 0) {
|
||||
g_free(path);
|
||||
- path = g_strdup_printf("/usr/share/mbrola/%s/%s", voicename, voicename);
|
||||
+ path = g_strdup_printf("@mbrola@/share/mbrola/%s/%s", voicename, voicename);
|
||||
if (access(path, O_RDONLY) != 0) {
|
||||
g_free(path);
|
||||
- path = g_strdup_printf("/usr/share/mbrola/voices/%s", voicename);
|
||||
+ path = g_strdup_printf("@mbrola@/share/mbrola/voices/%s", voicename);
|
||||
if (access(path, O_RDONLY) != 0) {
|
||||
g_free(path);
|
||||
espeak_mbrola[j] = NULL;
|
Loading…
Reference in a new issue