I converted the original Talkie TTS library into a platform independed header only library by removing all platform dependent code. I am just generating PCM audio data for an indicated Arduino Print output (for Arduino) or platform independed callback.
In the constructor you can define, how many channels to generate. The bits per sample is 16 and the sample rate is 8000 samples per second.
It is a software implementation of the Texas Instruments speech synthesis architecture (Linear Predictive Coding) from the late 1970s / early 1980s, as used on several popular applications:
- Texas Instruments Speak & Spell family of educational products
- Texas Instruments TI-99/4A Speech System expansion
- Acorn BBC Micro Speech Synthesiser expansion
- Atari arcade games (eg. Star Wars series, Indiana Jones, Gauntlet)
- Apple Echo 2
- IBM PS/2 Speech Adapter
Talkie comes with over 1000 words of speech data that can be included in your projects. Most words only take a fraction of a KB, so you can add plenty.
- Vocab_AstroBlaster
- Vocab_Soundbites
- Vocab_Special
- Vocab_Toms_Diner
- Vocab_US_Acorn
- Vocab_US_Clock
- Vocab_US_Large
- Vocab_US_TI99
You can generate your own words with the help of python_wizzard from ptwz.
You can e.g. write the data directly to Serial, a File or to I2S if your processor is supporting a corresponding API.
I recommend to use it with the Arduino Audio Tools, where you can reprocess the audio data and/or output it via different protocols. The original Library was using PWM as output. This would correspond with the PWMAudioOutput class. But you can also use AnalogAudioStream to use the internal DAC, I2SStream to output to an exteral DAC or VS1053Stream to output to a VS1053 module attached via SPI. There are many more possibilities, so check out the Wiki of the Project.
You can download the library as zip and call include Library -> zip library. Or you can git clone this project into the Arduino libraries folder e.g. with
cd ~/Documents/Arduino/libraries
git clone https://github.com/pschatzmann/TalkiePCM.git
I recommend to use git because you can easily update to the latest version just by executing the git pull command in the project folder. If you want to use the library on other patforms, you can find further information in the Wiki.