-
Notifications
You must be signed in to change notification settings - Fork 0
Voices and TTS Engines
herald add and herald add-schedule (and the web UI, everywhere text is turned into audio) prefer Piper (neural TTS, installed by install.sh) for natural-sounding voices, and fall back to festival or espeak-ng if Piper isn't available.
Piper voices live at /var/lib/piper-tts — the same shared location SkywarnPlus-NG and ASL3's own asl3-tts package use. Install a voice through any of the three and it's usable by all of them; nothing is duplicated.
install.sh installs only the default voice (en_US-amy-medium) up front. Browse and install any of the other 160+ available voices from the Voices box on the web UI's Global Settings tab (region + voice picker, "Install Voice" button) — no restart or reload needed, and the new voice shows up immediately in every voice dropdown (Tail Messages, Scheduled Announcements, Time & Weather Templates, Node ID Generator). Once a voice is installed, the same box shows a "Remove Voice" button instead (the default voice can't be removed); already-generated announcements keep playing fine after a voice is removed, but editing one that still references it will fail until a different voice is picked or it's reinstalled.
herald voices # list installed voices
herald catalog-voices # full catalog (region/language/installed status), as JSON
sudo herald install-voice en_US-joe-medium # install a voice from the CLI instead of the web UI
sudo herald remove-voice en_US-joe-medium # remove an installed voice from the CLI
sudo herald add "Net starts in 5 minutes" --voice en_US-joe-medium --name net-warningFallback TTS engines, if you don't want Piper's disk/bandwidth footprint:
sudo apt install festival sox
# or
sudo apt install espeak-ng soxFor a non-English voice, remember Herald just passes whatever text you type straight to Piper — write your announcement text in that language too. A voice not in Herald's catalog (or installed by some other means) still shows up in every dropdown once its .onnx/.onnx.json pair is in /var/lib/piper-tts — just labeled by its raw filename instead of a friendly display name.
Every place Herald generates TTS audio — Tail Messages, Scheduled Announcements, Time & Weather Templates, and the Node ID Generator — has a 0.5x–2.0x speed slider in its Add/Edit form (default 1.0, normal speed). This uses Piper's own --length-scale where available; the festival fallback uses sox's tempo effect instead, and espeak-ng scales its own words-per-minute rate directly. Speed only takes effect the next time the entry's audio is (re)generated — it has no effect on uploaded .wav/.mp3 files, which play back exactly as uploaded.