Saturday, November 19, 2011

Library of AMBE-files

This has been on my to do list for a long time.

About this time last year, Kristoff ON1ARF wrote some excellent open source software.

You can find it here:

Voice-announcement system on analog repeaters have existed for .. well .. almost forever. D-STAR repeaters, on the other hand, have so-far had this in a very limited way.

The main reason for this is related to the use of the AMBE voice-codec in D-STAR. AMBE-encoders are only available via an external hardware-device (either a chip inside the transceiver or the DVdongle). As this technology is usually not present in a D-STAR repeater, it has up-to-now only been possible to play out a fixed audio-message...

The “dstar voice-announce” package aims to provide additional ways to generate voice-announcement messages on a D-STAR repeater. It is designed to be as flexible as possible, to provide as much choice to the sysops.

By concatenating the .ambe files for “good morning”, “the time is now” “6″ “o’clock”, a complete voice-announcement can be created (also in .ambe format)

Kristoff created a small library of common words using the eSpeek text to speech synthesizer.

I'm not real fond of the voice quality of eSpeak, or Festival/Flite for that matter. So I created an alternate more extensive voice library. Mine contains about 360 words.

Now you don't need a DV Dongle to create system announcements. You just need to install and use Kristoff's ambestream program and download my or his AMBE word library.

You use it like so:

 ambestream -t TEST -v -4 -my KB9MWR -d -p 40000 K9EAM B this.ambe is.ambe a.ambe test.ambe  

Rather than having to specify the path to each ambe word, here is way to use sed to append the full path to the premade AMBE words. In this example I have all my words in /root/words/ambe

 #SENTENCE="this.ambe is.ambe a.ambe test.ambe"  
 SENTENCE="this is a test"  
 # note all forward slashes must be escaped. Just follow the example  
 #SPEAK=`echo $SENTENCE | sed 's/[^ ][^ ]*/\/root\/words\/ambe\/&/g'`  
 SPEAK=`echo $SENTENCE | sed 's/[^ ][^ ]*/\/root\/words\/ambe\/&.ambe/g'`  
 #echo $SPEAK  
 ambestream -t TEST -v -4 -my KB9MWR -d -p 40000 K9EAM B $SPEAK  

Please note if you get an error "Error: could not create udp socket! Exiting!" with Kristoff's program, it would be because ipv6 is not installed or enabled. To correct that see:

No comments: