[arm-allstar] developing voice packs for ASL/HamVoIP
Patrick Perdue
borrisinabox at gmail.com
Wed Oct 23 11:30:54 EDT 2019
Hi all:
I'm a new allstar/hamvoip user, but I am not new to Asterisk itself.
I just put a node together a couple of days ago using a Raspberry Pi 3,
URI-X, and a Motorola Radius SM50 VHF radio.
I managed a few Asterisk PBXs several years ago, and one of the first
things I did on a new install was replace the Allison Smith voice
prompts. I just don't like them. They're too slow and emphasized.
So, I came up with the idea of lazy building voice packs using TTS
engines on Mac OS, since this can be scripted using the "say" command.
Thus, I wrote a bash script that creates an empty directory tree with
rpt, wx, letters, phonetic, and digits, using a variable for a base
directory.
The script then reads a | (vertical bar) delimited text file with a list
of prompts and filenames in a while loop, using the number of lines in
the text file as the number of times to run the loop.
The text format looks like this:
This is a prompt to be spoken.|/rpt/something-to-say|
It's too hot in here.|/wx/not-cold-enough|
Column 1 is the prompt, and column 2 is the path minus the base
directory, or file extension.
These columns are then passed as arguments to "say" in the appropriate
places, with output to $BASEDIR/$IO2, where $IO2 is the rest of the path
as specified by column 2 of the current line read from the text file.
As say only outputs in aiff or m4a, I call SoX to convert *.aiff
recursively to 8 khz ulaw, trimming silence at the ends of files
generated by the TTS engine, dropping the volume to 70%, with high pass
at 300hz and low pass at 3600hz.
This all works great. I have some additional voices plus the ones that
come with Mac OS, and, since I'm using bash, it would be easy enough to
adapt this for use with command line TTS options in Linux, but, let's
face it, there really aren't many good ones there, unless you like
eSpeak or Festival.
The most tedious part is writing out a list of all the possible things
that ASL/hamvoip will say. There are a ton of files from the original
pack that I'm sure will never be used (business development comes to mind.)
So, my questions are thus:
1. Is there a definitive list somewhere of only the files specifically
used by rpt and scripts from hamvoip? If I don't have to write out every
single prompt from the original sound pack just to make sure nothing
breaks, that would be great, and save a lot of space as well. It would
still be faster than recording them all myself in my project studio, I
guess...
2. I am using ulaw rather than GSM, because I don't really care about
disk space, and it sounds sooooooo much better than GSM, even over the
radio. Of course, this means that any of the hard-coded scripts in
/usr/local/sbin should be wholesale find/replaced ulaw=gsm. While I'm
fine doing this for my own use, I assume this will break pretty hard
when there are updates. I want to generate a few packs with different
voices, and make them generally available for anyone who, like me, wants
an Allison replacement. For ease-of-use, should I just go against
everything I hold dear as an audio engineer, and generate GSM files, or
should I also offer ulaw with the warning that more work is required to
implement them?
3. Would there be any interest in voice packs by anyone on this list
besides me? My biggest reason, other than I just don't like Allison's
voice, for creating these in the first place, is that the original pack
is just so slow. I've cut the time by more than half with a test pack
using acapella Wil, without really losing anything. I think I'll slow it
down a little more, but the difference is amazing. It cuts back on TX
time, especially good with simplex nodes, gets the info across more
concisely, etc.
73
de
KE4DYI
Node 50368
More information about the ARM-allstar
mailing list