diff options
author | tv <tv@krebsco.de> | 2023-06-14 18:36:13 +0200 |
---|---|---|
committer | tv <tv@krebsco.de> | 2023-06-14 18:36:13 +0200 |
commit | f9e82b4ffc5db0c53556bf068ffc8859828163ef (patch) | |
tree | 6ea55d0492ebb9458fec210c1ec59030e15c3187 /lass/2configs/services/radio/news.nix | |
parent | e1ec606542ba602f8ebd95fe961a68aa70c012e4 (diff) | |
parent | ccf29b838bb6865f940597a1bd6e6cb4f3522b0c (diff) |
Merge remote-tracking branch 'orange/master'
Diffstat (limited to 'lass/2configs/services/radio/news.nix')
-rw-r--r-- | lass/2configs/services/radio/news.nix | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/lass/2configs/services/radio/news.nix b/lass/2configs/services/radio/news.nix index 0dc711e6..62f7f548 100644 --- a/lass/2configs/services/radio/news.nix +++ b/lass/2configs/services/radio/news.nix @@ -1,6 +1,31 @@ { config, lib, pkgs, ... }: let + tts = pkgs.writers.writeBashBin "tts" '' + set -efu + + offset=0 + OUTPUT=$(mktemp -d) + trap 'rm -rf "$OUTPUT"' EXIT + SPEAKER=$[ $RANDOM % 900 ] + while read line; do + echo "$line" | + ${pkgs.larynx}/bin/larynx \ + --model ${pkgs.fetchzip { + url = "https://github.com/rhasspy/piper/releases/download/v0.0.2/voice-en-us-libritts-high.tar.gz"; + hash = "sha256-jCoK4p0O7BuF0nr6Sfj40tpivCvU5M3GHKQRg1tfIO8="; + stripRoot = false; + }}/en-us-libritts-high.onnx \ + -s "$SPEAKER" \ + -f "$OUTPUT"/"$offset".wav + + ((offset+=1)) + done + + ${pkgs.sox}/bin/sox "$OUTPUT"/*.wav "$OUTPUT"/all.wav + cat "$OUTPUT"/all.wav + ''; + send_to_radio = pkgs.writers.writeDashBin "send_to_radio" '' ${pkgs.vorbis-tools}/bin/oggenc - | ${pkgs.cyberlocker-tools}/bin/cput news.ogg @@ -41,16 +66,16 @@ in systemd.services.newsshow = { path = [ newsshow + tts send_to_radio gc_news get_current_news - pkgs.curl pkgs.retry ]; script = '' set -efu retry -t 5 -d 10 -- newsshow | - retry -t 5 -d 10 -- curl -fSsG http://tts.r/api/tts --data-urlencode 'text@-' | + retry -t 5 -d 10 -- tts | retry -t 5 -d 10 -- send_to_radio ''; startAt = "*:00:00"; |