Long-time lurker here — I've posted a few troubleshooting questions over time, but never shared anything I've built. Wanted to share something that's grown into a pretty complete tool, in case it's useful to others.
Herald started because my node's native tail message function was flaky — intermittent failures, no clear pattern, and other people couldn't reproduce it when I reported it. Rather than keep chasing a ghost, I built a replacement daemon, and it grew from there into a fuller announcement toolkit:
Reliable tail messages — event-driven unkey detection via AMI (fires at the actual unkey, before the courtesy tone), rotating messages, SkywarnPlus WX alert priority playback
Scheduled announcements — cron-style scheduling, waits for the node to unkey before playing rather than talking over live traffic
Time & Weather announcements — either a pre-recorded sound pack, or write your own custom message(s) with tags (time, conditions, temperature, your callsign, etc.) rendered by Piper neural TTS
Station ID generator — a simple tool to build a custom ID recording with Piper TTS; it only touches the audio file, your node's own ID timing is untouched
Optional web UI for Allmon3 and Supermon, gated behind your existing login
It's actively developed — a friend and I have been using and testing it on our repeaters, and we're still finding/fixing edge cases as it gets real use. If you try it and something's off, please open an issue rather than assume it's you. Happy to answer questions here too.
I also maintain an active fork of SkywarnPlus (the original author's repo is archived/unmaintained) and a few other small ASL3 utilities — all linked from my GitHub profile if you're curious.
I hope some of you find this a useful tool for your setup.
I found this application and installed it. Lots of promise from what I read, but upon installation and trying to get to the announcement settings in allmon3, I get the following message.
). Fetched client-side and injected via innerHTML by pages that // can't run PHP themselves (e.g. asl3-herald.html living inside Allmon3's // own static web root), or included server-side by pages that can (e.g. // asl3-herald.php living inside Supermon's own directory). // // The behavior lives separately in herald-ui.js, loaded via a real //
I'm guessing it's a permissions issue, but I won't profess to being a linux expert. I installed under my regular asl login using putty, and had not gone su before using the first curl command in the installation instructions. Used the stable version.
This is really fantastic! Thank you! Installed quickly and the webUI is so detailed and feature rich!!
I'm excited because announcements an scheduling things like ARRL etc have been daunting. You really provided something great for the community.
1 issue-
I tried to add another voice in Global Settings but got:
huggingface_hub not installed - re-run install.sh to add it
I searched and found this line to install it-
curl -LsSf https://hf.co/cli/install.sh | bash
which it did, I rebooted, but still same result. Any suggestions appreciated.
Thx
PS- I see in the example cfg an example of ARRL news- but where do you get the wav for that? Prob a way to code grabbing the wav, renaming, and putting in that folder. Something I would have to learn. Oh, I think I understand- Herald is just for announcements. If one wants to schedule ARRL each week they have to write their own scripts to grab the ARRL file and schedule it to play etc. outside of Herald. One could use this service to connect and play ARRL and also Newsline. ARRL Audio News and Amateur Radio Newsline (ARNewsLine) on Allstar - #7 by WD5M
Would be great if someone w code skills added scheduling connections and other related scheduling stuff.
Hah, look what I just found! GitHub - N6LKA/ASL3-Audio-News: Play ARRL Audio News or Amateur Radio Newsline on an ASL3 repeater node · GitHub
WD5M added an Allstar node for Newsline nowso Echolink is not needed- node 516228.
Adjusting speed of speech would be another nice addition.
Hi, thanks for your interest in Herald and for reporting the error. It looks like my install script was skipping installing PHP and some other dependencies. I've corrected the install script to correctly install PHP, PHP-FPM, and PHP-CLI now. Running the install again should resolve it now if you haven't already followed the advice of Chris, KB2FAF, below for the resolution.
Thanks for giving Herald a try — glad you're finding it useful!
The voice-download error: Good catch, and thanks for the detailed report. Turned out to be a real installer bug, not something you did wrong. The installer wasn't reliably getting the huggingface_hub Python package installed (it depends on pip being present, which wasn't guaranteed), so the "add voice" feature had no way to actually fetch new voices — it just told you to re-run the installer, which wouldn't have fixed it either. That's fixed in v1.18.1, just released — re-run the install script and adding voices from the Voices tab should work now. (For what it's worth, the hf command you found and installed is a different tool from Hugging Face — it wouldn't have fixed this either way.)
On ARRL/Newsline: Herald doesn't actually play the ARRL news itself, as you found — that's a separate program (the one you found, ASL3-Audio-News). Thanks for the tip on the Newsline node — I'll get that linked in. Herald was designed to be the all-in-one announcement manager for ASL3 — tail messages, scheduled announcements, and hourly time & weather. Kicking off other scripts/programs on a schedule is outside what it's meant to do.
Speech speed: Good suggestion — added to the backlog for a future release.
Thanks again for the kind words and the thorough write-up — reports like yours make Herald better for everyone.
Dennis, you absolutely rock. I am having a blast whipping up tail messages on the fly. Such a much simpler process. Really a game changer for those using asl as a repeater controller (primarily for me).
Thanks for your work and rapid response!
@ad8bv You mentioned Dennis, but my name is Larry — perhaps you were thinking of someone else. Either way, glad you're enjoying it! I use it as my main repeater controller too, as does my good friend AD5MT.
I've been pushing updates today to fix a few reported issues, and also just added an adjustable speech-speed slider that was recommended by @KK6QMS (thanks for the suggestion). Hope you all like it and find the program useful.
If you have other suggestions you'd like me to consider, please add an enhancement request in the Issues tab on GitHub so I can track it properly.
Larry, great work and great to have fixes and upgrades! I've been downloading a bunch of voices and exploring the program. The voice speed slider is working well. Uploading files also works well.
Here are a few more ideas:
Link to the readme file when it is mentioned like when update avail. Readme being inside of the program would be extra nice. I just installed v1.20.0- nice.
Randomize voice choice- but I guess this would require some sore of pre-rendering of voices. Maybe just render from all avail voices or a list to select from before committing to render.
Pull tail messages from sources like great quotes or song lyrics by certain artists etc. Possibilities are vast. Maybe allow certain format of text file to be the source where each numbered line is a different tail message etc.
@KK6QMS Thanks, Clifford. I believe you submitted an enhancement request with these items, and I addressed them there. Thanks again for the suggestions.