From fce5291adb125fa44c16cafb87556a5811fd75da Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Thu, 12 Jan 2023 18:08:32 +0100 Subject: [PATCH] python3Packages.espeak-phonemizer: init at 1.1.0 --- .../espeak-phonemizer/cdll.patch | 21 ++++++++++ .../espeak-phonemizer/default.nix | 42 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 3 files changed, 65 insertions(+) create mode 100644 pkgs/development/python-modules/espeak-phonemizer/cdll.patch create mode 100644 pkgs/development/python-modules/espeak-phonemizer/default.nix diff --git a/pkgs/development/python-modules/espeak-phonemizer/cdll.patch b/pkgs/development/python-modules/espeak-phonemizer/cdll.patch new file mode 100644 index 00000000000..3ce5df122d5 --- /dev/null +++ b/pkgs/development/python-modules/espeak-phonemizer/cdll.patch @@ -0,0 +1,21 @@ +diff --git a/espeak_phonemizer/__init__.py b/espeak_phonemizer/__init__.py +index a09472e..730a7f9 100644 +--- a/espeak_phonemizer/__init__.py ++++ b/espeak_phonemizer/__init__.py +@@ -163,14 +163,10 @@ class Phonemizer: + # Already initialized + return + +- self.libc = ctypes.cdll.LoadLibrary("libc.so.6") ++ self.libc = ctypes.cdll.LoadLibrary("@libc@") + self.libc.open_memstream.restype = ctypes.POINTER(ctypes.c_char) + +- try: +- self.lib_espeak = ctypes.cdll.LoadLibrary("libespeak-ng.so") +- except OSError: +- # Try .so.1 +- self.lib_espeak = ctypes.cdll.LoadLibrary("libespeak-ng.so.1") ++ self.lib_espeak = ctypes.cdll.LoadLibrary("@libespeak_ng@") + + sample_rate = self.lib_espeak.espeak_Initialize( + Phonemizer.AUDIO_OUTPUT_SYNCHRONOUS, 0, None, 0 diff --git a/pkgs/development/python-modules/espeak-phonemizer/default.nix b/pkgs/development/python-modules/espeak-phonemizer/default.nix new file mode 100644 index 00000000000..4efb2000013 --- /dev/null +++ b/pkgs/development/python-modules/espeak-phonemizer/default.nix @@ -0,0 +1,42 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, substituteAll +, glibc +, espeak-ng +, pytestCheckHook +}: + +buildPythonPackage rec { + pname = "espeak-phonemizer"; + version = "1.1.0"; + format = "setuptools"; + + src = fetchFromGitHub { + owner = "rhasspy"; + repo = "espeak-phonemizer"; + rev = "refs/tags/v${version}"; + hash = "sha256-qnJtS5iIARdg+umolzLHT3/nLon9syjxfTnMWHOmYPU="; + }; + + patches = [ + (substituteAll { + src = ./cdll.patch; + libc = "${lib.getLib glibc}/lib/libc.so.6"; + libespeak_ng = "${lib.getLib espeak-ng}/lib/libespeak-ng.so"; + }) + ]; + + checkInputs = [ + pytestCheckHook + ]; + + meta = with lib; { + changelog = "https://github.com/rhasspy/espeak-phonemizer/releases/tag/v${version}"; + description = "Uses ctypes and libespeak-ng to transform test into IPA phonemes"; + homepage = "https://github.com/rhasspy/espeak-phonemizer"; + license = licenses.mit; + maintainers = with maintainers; [ hexa ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 78df192f7fb..914dcafaeb5 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -3045,6 +3045,8 @@ self: super: with self; { eradicate = callPackage ../development/python-modules/eradicate { }; + espeak-phonemizer = callPackage ../development/python-modules/espeak-phonemizer { }; + esprima = callPackage ../development/python-modules/esprima { }; escapism = callPackage ../development/python-modules/escapism { };