about summary refs log tree commit diff
path: root/nixos
diff options
context:
space:
mode:
authorMartin Weinelt <mweinelt@users.noreply.github.com>2023-10-30 22:53:25 +0100
committerGitHub <noreply@github.com>2023-10-30 22:53:25 +0100
commit5da8c00f110ed558e04d781d3c80e1622a5197d4 (patch)
treeee632766c24fc3c90f58a79f006551665b6193c8 /nixos
parent63982e51edc485796ec23946a672befef6889833 (diff)
parente458280606907749759bcb323c09ba652045b3ef (diff)
downloadnixlib-5da8c00f110ed558e04d781d3c80e1622a5197d4.tar
nixlib-5da8c00f110ed558e04d781d3c80e1622a5197d4.tar.gz
nixlib-5da8c00f110ed558e04d781d3c80e1622a5197d4.tar.bz2
nixlib-5da8c00f110ed558e04d781d3c80e1622a5197d4.tar.lz
nixlib-5da8c00f110ed558e04d781d3c80e1622a5197d4.tar.xz
nixlib-5da8c00f110ed558e04d781d3c80e1622a5197d4.tar.zst
nixlib-5da8c00f110ed558e04d781d3c80e1622a5197d4.zip
Merge pull request #264404 from mweinelt/wyoming-openwakeword-1.8.1
wyoming-openwakeword: 1.5.1 -> 1.8.1
Diffstat (limited to 'nixos')
-rw-r--r--nixos/modules/services/audio/wyoming/openwakeword.nix46
1 files changed, 27 insertions, 19 deletions
diff --git a/nixos/modules/services/audio/wyoming/openwakeword.nix b/nixos/modules/services/audio/wyoming/openwakeword.nix
index 713945c1df62..f1f734540ca2 100644
--- a/nixos/modules/services/audio/wyoming/openwakeword.nix
+++ b/nixos/modules/services/audio/wyoming/openwakeword.nix
@@ -8,6 +8,7 @@ let
   cfg = config.services.wyoming.openwakeword;
 
   inherit (lib)
+    concatStringsSep
     concatMapStringsSep
     escapeShellArgs
     mkOption
@@ -15,6 +16,7 @@ let
     mkEnableOption
     mkIf
     mkPackageOptionMD
+    mkRemovedOptionModule
     types
     ;
 
@@ -25,6 +27,10 @@ let
 in
 
 {
+  imports = [
+    (mkRemovedOptionModule [ "services" "wyoming" "openwakeword" "models" ] "Configuring models has been removed, they are now dynamically discovered and loaded at runtime")
+  ];
+
   meta.buildDocsInSandbox = false;
 
   options.services.wyoming.openwakeword = with types; {
@@ -41,9 +47,20 @@ in
       '';
     };
 
-    models = mkOption {
+    customModelsDirectories = mkOption {
+      type = listOf types.path;
+      default = [];
+      description = lib.mdDoc ''
+        Paths to directories with custom wake word models (*.tflite model files).
+      '';
+    };
+
+    preloadModels = mkOption {
       type = listOf str;
       default = [
+        "ok_nabu"
+      ];
+      example = [
         # wyoming_openwakeword/models/*.tflite
         "alexa"
         "hey_jarvis"
@@ -52,16 +69,6 @@ in
         "ok_nabu"
       ];
       description = mdDoc ''
-        List of wake word models that should be made available.
-      '';
-    };
-
-    preloadModels = mkOption {
-      type = listOf str;
-      default = [
-        "ok_nabu"
-      ];
-      description = mdDoc ''
         List of wake word models to preload after startup.
       '';
     };
@@ -112,14 +119,15 @@ in
         DynamicUser = true;
         User = "wyoming-openwakeword";
         # https://github.com/home-assistant/addons/blob/master/openwakeword/rootfs/etc/s6-overlay/s6-rc.d/openwakeword/run
-        ExecStart = ''
-          ${cfg.package}/bin/wyoming-openwakeword \
-            --uri ${cfg.uri} \
-            ${concatMapStringsSep " " (model: "--model ${model}") cfg.models} \
-            ${concatMapStringsSep " " (model: "--preload-model ${model}") cfg.preloadModels} \
-            --threshold ${cfg.threshold} \
-            --trigger-level ${cfg.triggerLevel} ${cfg.extraArgs}
-        '';
+        ExecStart = concatStringsSep " " [
+          "${cfg.package}/bin/wyoming-openwakeword"
+          "--uri ${cfg.uri}"
+          (concatMapStringsSep " " (model: "--preload-model ${model}") cfg.preloadModels)
+          (concatMapStringsSep " " (dir: "--custom-model-dir ${toString dir}") cfg.customModelDirectories)
+          "--threshold ${cfg.threshold}"
+          "--trigger-level ${cfg.triggerLevel}"
+          "${cfg.extraArgs}"
+        ];
         CapabilityBoundingSet = "";
         DeviceAllow = "";
         DevicePolicy = "closed";