Back in February, I passed the Amateur Radio Technician class test and received my amateur radio license. It was about the same time that I wanted to play around with Asterisk, the open source PBX. I was really interested in getting a free voice recognition solution functioning with it. After a lot of trial and error (mostly error) I finally was able to get it working. The two most valuable resources I used were the following two URLS:
1) http://www.voip-info.org/wiki-Sphinx
2) http://turnkey-solution.com/asterisk-sphinx.html
I couldn’t just get Asterisk working with every single word in the English dictionary, I needed a smaller list of words. Since I had just gotten into ham radio I thought it would be fun to be able to call into an Asterisk and have it lookup a callsign in the FCC database for me. Since most people use the NATO phonetic alphabet to phonetically spell out their callsigns on the air, I figured I could use that as my starting dictionary.
As of right now, the callsign lookup is fully functional. I can call the phone number and Asterisk will pick up. It then prompts me to say a letter from the phonetic alphabet. Asterisk will call a Perl script that utilizes Sphinx2 to do the voice recognition. After I say a letter, it will repeat it back to me with a female voice and then ask me if that was correct. Then I can either say yes or no. When I have finished entering all of the letters I can say “finished”. The server will then use Perl and Curl to look up the callsign. The callsign web page that gets returned is parsed by grep and sed to pull out the first name, last name, call sign, and license class. This is stored in a temporary file. Asterisk will then call another Perl script that uses Festival to read back the retrieved data. It can be a bit difficult to understand the Festival engine the first time, so Asterisk will ask if I want to repeat the results back as many times as I want. All in all, the voice recognition works pretty well, although I don’t think it is very practical for this application. It just seems to take too long to lookup a callsign. It was a really fun project though, and I learned a lot about Asterisk, Sphinx, Festival, and Perl.
I plan on posting up a tutorial explaining how to duplicate my setup exactly. I’ll post most of my configuration files and scripts so that anyone can get this working without a problem.
Also, I’m posting this in the “Works in Progress” section because I still want to add a voice message or two.

