63 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| {
 | |
|   lib,
 | |
|   config,
 | |
|   ...
 | |
| }: {
 | |
|   options.services.wyoming.enable = lib.mkEnableOption "should wyoming be enabled on this device";
 | |
|   config = lib.mkIf config.services.wyoming.enable (lib.mkMerge [
 | |
|     {
 | |
|       services.wyoming = {
 | |
|         # Text to speech
 | |
|         piper = {
 | |
|           servers = {
 | |
|             "en" = {
 | |
|               enable = true;
 | |
|               # see https://github.com/rhasspy/rhasspy3/blob/master/programs/tts/piper/script/download.py
 | |
|               voice = "en-us-amy-low";
 | |
|               uri = "tcp://0.0.0.0:10200";
 | |
|               speaker = 0;
 | |
|             };
 | |
|           };
 | |
|         };
 | |
| 
 | |
|         # Speech to text
 | |
|         faster-whisper = {
 | |
|           servers = {
 | |
|             "en" = {
 | |
|               enable = true;
 | |
|               # see https://github.com/rhasspy/rhasspy3/blob/master/programs/asr/faster-whisper/script/download.py
 | |
|               model = "tiny-int8";
 | |
|               language = "en";
 | |
|               uri = "tcp://0.0.0.0:10300";
 | |
|               device = "cpu";
 | |
|             };
 | |
|           };
 | |
|         };
 | |
| 
 | |
|         openwakeword = {
 | |
|           enable = true;
 | |
|           uri = "tcp://0.0.0.0:10400";
 | |
|           # preloadModels = [
 | |
|           #   "ok_nabu"
 | |
|           # ];
 | |
|           # TODO: custom models
 | |
|         };
 | |
|       };
 | |
| 
 | |
|       # needs access to /proc/cpuinfo
 | |
|       systemd.services."wyoming-faster-whisper-en".serviceConfig.ProcSubset = lib.mkForce "all";
 | |
|     }
 | |
|     (lib.mkIf config.host.impermanence.enable {
 | |
|       environment.persistence."/persist/system/root" = {
 | |
|         enable = true;
 | |
|         hideMounts = true;
 | |
|         directories = [
 | |
|           {
 | |
|             directory = "/var/lib/private/wyoming";
 | |
|             mode = "0700";
 | |
|           }
 | |
|         ];
 | |
|       };
 | |
|     })
 | |
|   ]);
 | |
| }
 |