diff options
author | Alyssa Ross <hi@alyssa.is> | 2023-08-08 16:04:42 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2023-08-13 06:35:37 +0000 |
commit | 12aaa58dac35800b5b7d77f81cf2a87c21ee55da (patch) | |
tree | be0add9e5c22a85d20b5d78206aa74f956eb2a1b /nixpkgs/pkgs/development/libraries/piper-phonemize | |
parent | 45892a5591202f75a1c2f1ca7c62a92c7566e3c5 (diff) | |
parent | 5a8e9243812ba528000995b294292d3b5e120947 (diff) | |
download | nixlib-12aaa58dac35800b5b7d77f81cf2a87c21ee55da.tar nixlib-12aaa58dac35800b5b7d77f81cf2a87c21ee55da.tar.gz nixlib-12aaa58dac35800b5b7d77f81cf2a87c21ee55da.tar.bz2 nixlib-12aaa58dac35800b5b7d77f81cf2a87c21ee55da.tar.lz nixlib-12aaa58dac35800b5b7d77f81cf2a87c21ee55da.tar.xz nixlib-12aaa58dac35800b5b7d77f81cf2a87c21ee55da.tar.zst nixlib-12aaa58dac35800b5b7d77f81cf2a87c21ee55da.zip |
Merge branch 'nixos-unstable' of https://github.com/NixOS/nixpkgs
Conflicts: nixpkgs/pkgs/applications/window-managers/sway/default.nix nixpkgs/pkgs/build-support/go/module.nix nixpkgs/pkgs/build-support/rust/build-rust-package/default.nix nixpkgs/pkgs/development/libraries/mesa/default.nix nixpkgs/pkgs/servers/dict/dictd-db.nix Link: https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config/-/issues/391
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/piper-phonemize')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/piper-phonemize/default.nix | 60 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/libraries/piper-phonemize/espeak-mbrola.patch | 26 |
2 files changed, 86 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/piper-phonemize/default.nix b/nixpkgs/pkgs/development/libraries/piper-phonemize/default.nix new file mode 100644 index 000000000000..fd1c1ae34b4c --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/piper-phonemize/default.nix @@ -0,0 +1,60 @@ +{ lib +, stdenv +, fetchFromGitHub + +# build +, cmake +, pkg-config + +# runtime +, espeak-ng +, onnxruntime +}: + +let + espeak-ng' = espeak-ng.overrideAttrs (oldAttrs: { + version = "1.52-dev"; + src = fetchFromGitHub { + owner = "rhasspy"; + repo = "espeak-ng"; + rev = "61504f6b76bf9ebbb39b07d21cff2a02b87c99ff"; + hash = "sha256-RBHL11L5uazAFsPFwul2QIyJREXk9Uz8HTZx9JqmyIQ="; + }; + + patches = [ + ./espeak-mbrola.patch + ]; + }); +in +stdenv.mkDerivation rec { + pname = "piper-phonemize"; + version = "1.1.0"; + + src = fetchFromGitHub { + owner = "rhasspy"; + repo = "piper-phonemize"; + rev = "refs/tags/v${version}"; + hash = "sha256-cMer7CSLOXv3jc9huVA3Oy5cjXjOX9XuEXpIWau1BNQ="; + }; + + nativeBuildInputs = [ + cmake + pkg-config + ]; + + buildInputs = [ + espeak-ng' + onnxruntime + ]; + + passthru = { + espeak-ng = espeak-ng'; + }; + + meta = with lib; { + description = "C++ library for converting text to phonemes for Piper"; + homepage = "https://github.com/rhasspy/piper-phonemize"; + license = licenses.mit; + maintainers = with maintainers; [ hexa ]; + }; +} diff --git a/nixpkgs/pkgs/development/libraries/piper-phonemize/espeak-mbrola.patch b/nixpkgs/pkgs/development/libraries/piper-phonemize/espeak-mbrola.patch new file mode 100644 index 000000000000..9d3f0aeb4abe --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/piper-phonemize/espeak-mbrola.patch @@ -0,0 +1,26 @@ +diff --git a/src/libespeak-ng/mbrowrap.c b/src/libespeak-ng/mbrowrap.c +index ae137873..9015cc01 100644 +--- a/src/libespeak-ng/mbrowrap.c ++++ b/src/libespeak-ng/mbrowrap.c +@@ -206,7 +206,7 @@ static int start_mbrola(const char *voice_path) + signal(SIGTERM, SIG_IGN); + + snprintf(charbuf, sizeof(charbuf), "%g", mbr_volume); +- execlp("mbrola", "mbrola", "-e", "-v", charbuf, ++ execlp("@mbrola/bin/mbrola", "mbrola", "-e", "-v", charbuf, + voice_path, "-", "-.wav", (char *)NULL); + /* if execution reaches this point then the exec() failed */ + snprintf(mbr_errorbuf, sizeof(mbr_errorbuf), +diff --git a/src/libespeak-ng/synth_mbrola.c b/src/libespeak-ng/synth_mbrola.c +index 734631b7..46d1f13e 100644 +--- a/src/libespeak-ng/synth_mbrola.c ++++ b/src/libespeak-ng/synth_mbrola.c +@@ -85,7 +85,7 @@ espeak_ng_STATUS LoadMbrolaTable(const char *mbrola_voice, const char *phtrans, + if (!load_MBR()) + return ENS_MBROLA_NOT_FOUND; + +- sprintf(path, "%s/mbrola/%s", path_home, mbrola_voice); ++ sprintf(path, "@mbrola@/share/mbrola/voices/%s/%s", mbrola_voice, mbrola_voice); + #if PLATFORM_POSIX + // if not found, then also look in + // usr/share/mbrola/xx, /usr/share/mbrola/xx/xx, /usr/share/mbrola/voices/xx |