From 2f8cdd29fe077b3d2676d4437a47f1c00e6b1b0d Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Wed, 27 Sep 2023 05:51:13 +0200 Subject: [PATCH] wyoming-openwakeword: init at 1.5.1 Wyoming server for the openWakeWord library. --- pkgs/tools/audio/wyoming/openwakeword.nix | 63 +++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 65 insertions(+) create mode 100644 pkgs/tools/audio/wyoming/openwakeword.nix diff --git a/pkgs/tools/audio/wyoming/openwakeword.nix b/pkgs/tools/audio/wyoming/openwakeword.nix new file mode 100644 index 000000000000..d8450dac6983 --- /dev/null +++ b/pkgs/tools/audio/wyoming/openwakeword.nix @@ -0,0 +1,63 @@ +{ lib +, python3 +, python3Packages +, fetchFromGitHub +, fetchpatch +}: + +python3.pkgs.buildPythonApplication { + pname = "wyoming-openwakeword"; + version = "1.5.1"; + pyproject = true; + + src = fetchFromGitHub { + owner = "rhasspy"; + repo = "rhasspy3"; + rev = "e16d7d374a64f671db48142c7b635b327660ebcf"; + hash = "sha256-SbWsRmR1hfuU3yJbuu+r7M43ugHeNwLgu5S8MqkbCQA="; + }; + + patches = [ + (fetchpatch { + # import tflite entrypoint from tensorflow + url = "https://github.com/rhasspy/rhasspy3/commit/23b1bc9cf1e9aa78453feb11e27d5dafe26de068.patch"; + hash = "sha256-fjLJ+VI4c8ABBWx1IjZ6nS8MGqdry4rgcThKiaAvz+Q="; + }) + (fetchpatch { + # add commandline entrypoint + url = "https://github.com/rhasspy/rhasspy3/commit/7662b82cd85e16817a3c6f4153e855bf57436ac3.patch"; + hash = "sha256-41CLkVDSAJJpZ5irwIf/Z4wHoCuKDrqFBAjKCx7ta50="; + }) + ]; + + postPatch = '' + cd programs/wake/openwakeword-lite/server + ''; + + nativeBuildInputs = with python3Packages; [ + setuptools + wheel + ]; + + propagatedBuildInputs = with python3Packages; [ + tensorflow-bin + webrtc-noise-gain + wyoming + ]; + + passthru.optional-dependencies.webrtc = with python3Packages; [ + webrtc-noise-gain + ]; + + pythonImportsCheck = [ + "wyoming_openwakeword" + ]; + + meta = with lib; { + description = "An open source voice assistant toolkit for many human languages"; + homepage = "https://github.com/rhasspy/rhasspy3/commit/fe44635132079db74d0c76c6b3553b842aa1e318"; + license = licenses.mit; + maintainers = with maintainers; [ hexa ]; + mainProgram = "wyoming-openwakeword"; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index aa17ee1d6921..1b076b7126bf 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -37470,6 +37470,8 @@ with pkgs; wyoming-faster-whisper = callPackage ../tools/audio/wyoming/faster-whisper.nix { }; + wyoming-openwakeword = callPackage ../tools/audio/wyoming/openwakeword.nix { }; + wyoming-piper = callPackage ../tools/audio/wyoming/piper.nix { }; ### GAMES