{ config, lib, ... }: { options.sysconfig.opts.wyoming = { enable = lib.options.mkOption { type = lib.types.bool; default = false; }; satelliteOnly = lib.options.mkOption { type = lib.types.bool; default = false; }; }; config = lib.mkIf config.sysconfig.opts.wyoming.enable { services.wyoming = { piper = { servers.piper = lib.mkIf (!config.sysconfig.opts.wyoming.satelliteOnly) { enable = true; voice = "en-us-ryan-medium"; uri = "tcp://0.0.0.0:11435"; }; }; openwakeword = lib.mkIf (!config.sysconfig.opts.wyoming.satelliteOnly) { enable = true; uri = "tcp://0.0.0.0:11432"; preloadModels = [ "alexa" "hey_jarvis" "ok_nabu" ]; threshold = 0.5; customModelsDirectories = [ #./wake_words ]; }; faster-whisper = lib.mkIf (!config.sysconfig.opts.wyoming.satelliteOnly) { servers.whisper = { enable = true; device = "auto"; language = "en"; model = "medium.en"; uri = "tcp://0.0.0.0:11433"; }; }; satellite = { enable = true; uri = "tcp://0.0.0.0:11431"; user = "nathan"; vad.enable = false; }; }; }; }