speechd: Fix espeak-mbrola voice check

This commit is contained in:
Jan Tojnar 2022-01-08 22:07:05 +01:00
parent b0a4fa5273
commit 67e5298bfb
3 changed files with 32 additions and 0 deletions

View file

@ -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";

View file

@ -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 = [

View 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;