From aade31e65bad45c567b64591b06be806a74fc31a Mon Sep 17 00:00:00 2001 From: lassulus Date: Thu, 25 May 2023 00:06:33 +0200 Subject: l radio: use larynx tts --- lass/2configs/services/radio/news.nix | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'lass/2configs/services/radio') diff --git a/lass/2configs/services/radio/news.nix b/lass/2configs/services/radio/news.nix index 0dc711e6c..d726692d8 100644 --- a/lass/2configs/services/radio/news.nix +++ b/lass/2configs/services/radio/news.nix @@ -44,13 +44,17 @@ in send_to_radio gc_news get_current_news - pkgs.curl pkgs.retry + pkgs.larynx ]; 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 -- newsshow | tr '\n' ' ' | + retry -t 5 -d 10 -- 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 $[ $RANDOM % 900 ] -f - | retry -t 5 -d 10 -- send_to_radio ''; startAt = "*:00:00"; -- cgit v1.2.3 From 63573a5fa0807a334d35e900d9df8db7c1539acf Mon Sep 17 00:00:00 2001 From: lassulus Date: Thu, 25 May 2023 11:19:04 +0200 Subject: l radio: createHome of user --- lass/2configs/services/radio/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lass/2configs/services/radio') diff --git a/lass/2configs/services/radio/default.nix b/lass/2configs/services/radio/default.nix index a511196fd..16ef31b6f 100644 --- a/lass/2configs/services/radio/default.nix +++ b/lass/2configs/services/radio/default.nix @@ -82,7 +82,7 @@ in { users.users = { "${name}" = rec { inherit name; - createHome = lib.mkForce false; + createHome = true; group = name; uid = pkgs.stockholm.lib.genid_uint31 name; description = "radio manager"; -- cgit v1.2.3 From 6ebc5693d6a57233115d968723dd20961857920d Mon Sep 17 00:00:00 2001 From: lassulus Date: Thu, 25 May 2023 11:19:37 +0200 Subject: l radio: fix tts for long texts --- lass/2configs/services/radio/news.nix | 35 ++++++++++++++++++++++++++++------- 1 file changed, 28 insertions(+), 7 deletions(-) (limited to 'lass/2configs/services/radio') diff --git a/lass/2configs/services/radio/news.nix b/lass/2configs/services/radio/news.nix index d726692d8..62f7f548c 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,20 +66,16 @@ in systemd.services.newsshow = { path = [ newsshow + tts send_to_radio gc_news get_current_news pkgs.retry - pkgs.larynx ]; script = '' set -efu - retry -t 5 -d 10 -- newsshow | tr '\n' ' ' | - retry -t 5 -d 10 -- 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 $[ $RANDOM % 900 ] -f - | + retry -t 5 -d 10 -- newsshow | + retry -t 5 -d 10 -- tts | retry -t 5 -d 10 -- send_to_radio ''; startAt = "*:00:00"; -- cgit v1.2.3