Text to speech solution

I want to create a simple automatic responder with a voice guided menu (“Press 1 to enter Setup”, “Press # to exit”, …)

Do I need to register all sentences and convert them to AMR/PCM constant arrays? Is there a ready solution for text to speech for Sierra Wireless modules?

Do you know some text to speech libraries, even not free/gratis, to import in Developer Studio?


I built one of these.

I ended up getting a friend to record the voice I needed, then converted the .wav to pcm and then converted these into constant C arrays and included in my code. Haven’t tried using AMR yet - probably should get better compression using this codec.

You have to be careful about how you output the data - you can’t just point the playback at the beginning of the array and let it go. I found that you had to deal with the low level interrupt and feed the decoder chunks of data. In the end it worked really well.

I originally used the sample voices from http://www.cepstral.com - but the licencing to use them commercially was excessive. I haven’t looked for a while so don’t know what their fees are now. There are also a couple of open-source text to voice packages around but the voices were limited and didn’t encode very well. Again, it’s been a few years since I did it so they may have changed.

ciao, Dave

I got my wife to do it.

I have an old copy of CoolEdit (forerunner of Adobe Audition) which can save the recordings as text - which is easily converted to C arrays.

Yes - that’s the way the examples show you.


Search for “Voiceover Artists” if you want professional recordings…

Anyway I think the recording process to obtain a high quality voice is critical, mostly for the environment noise and not professional instruments (microphone, audio board of PC, …). What was your result?

I heard SimCom (another manufacturer of wireless modules) has integrated text-to-speech technology directly in the module. They can convert a message to voice.
I don’t think this technology is so complex, but I couldn’t found the right solution for me.

I started read somthing similar. In the very next days I’ll try to play some audio stream.

I’ll check on my side, thank you.


Oh, and Audacity http://audacity.sourceforge.net/ is your friend for doing audio editing. It’s free/OpenSource and converts between a number of formats as well as editing the sound files.

ciao, Dave

If I didn’t already have the CoolEdit, I expect I’d be using Audacity.

Hmmm… on what basis do you think that :question:

Because other manufacturers of low-cost modules have already integrated this technology.
microchip.ua/simcom/SIM900x/AppN … _V1.03.pdf

Are the samples signed (0…65535) or unsigned (-32768…+32767)?

No, that does not indicate that it’s simple!

On that basis, you could conclude that making a GSM module must be easy!

Out of interest, have you actually heard a SIM900 doing this?

If so, How good does it sound?

Seems to be quite a few options available:

google.co.uk/search?q=embedd … ech+engine


Ok, thank you for your search. I’ll investigate.

Just to complete our discussion, even if the array in the example is u16, the samples should be coded as signed.
In other words, the zero value is 0x0000, the first positive number is 0x0001, the first negative number is 0xFFFF.

const u16 stream_samples[] = { 0x0000, 0x0001, 0xFFFF };

I have another question on playing audio streams, but I think it’s better to open another thread.