Ranting about McBooks

I think the old McBooks from about 10 years ago are just marvelous. It’s not like the today’s “crap” where you have no possibility to replace the RAM or the hardisk because they are soldered: It is really a pitty that Apple moved away from providing any repairable Hardware! The problem was however that I did not get any OS/X software updates any more and more and more of my needed functionality stopped to work. Read more

Arduino Audio Tools – Resampling Revisited

So far I have provided some resampling functionality that was working with some integer factors to up- and downsample. After the work on the Pitch Shifting I realized that we can easily resample using a float based step size to achieve any resampling factor and determine the new values with the help of linear interpolation. This is cool because we can now speed up or slow down the audio by any rate! And the beauty Read more

Arduino Audio Tools – Multicore Processing

So far I never needed to use any of the ESP32 multicore functionality because all the examples are very simple and everything is fitting on a single core. However if you write some more complex scenarios which are e.g. updating a screen, process user input w/o impacting the audio, you should consider to use multiple tasks. Then you need to use a save way to communicate data between the tasks. In this case I strongly Read more

ESpeak and MBROLA ?

MBROLA is a speech synthesizer based on the concatenation of diphones. It takes a list of phonemes as input, together with prosodic information (duration of phonemes and a piecewise linear description of pitch), and produces speech samples on 16 bits (linear), at the sampling frequency of the diphone database. Today I was playing around with MBROLA and was impressed by the quality of the speech. ESpeak provides an integration into the MBROLA speech synthesizer, so Read more

ESpeak-NG for Arduino: Setting the Voice

It was quite a challenge to convert eSpeak NG to an Arduino Library. In the meantime I managed to publish a first round of error corrections. The eSpeak NG is a compact open source software text-to-speech synthesizer for Linux, Windows, Android and other operating systems. It supports more than 100 languages and accents. It is based on the eSpeak engine created by Jonathan Duddington. For each language (=voice) you can also set a voice variant Read more

Text to Speech for more then 100 Languages on an Arduino

It was quite a challenge to convert eSpeak NG to an Arduino Library. The eSpeak NG is a compact open source software text-to-speech synthesizer for Linux, Windows, Android and other operating systems. It supports more than 100 languages and accents. It is based on the eSpeak engine created by Jonathan Duddington. Language Specific Configuration Files Using a foreign language is quite easy: You just need to load the language dependent files and set the corresponding Read more

ESpeak-NG: The difficult journey to an Arduino Library

I converted eSpeak NG to an Arduino Library. The eSpeak NG is a compact open source software text-to-speech synthesizer for Linux, Windows, Android and other operating systems. It supports more than 100 languages and accents. It is based on the eSpeak engine created by Jonathan Duddington. eSpeak NG uses a “formant synthesis” method. This allows many languages to be provided in a small size. The speech is clear, and can be used at high speeds, Read more

FreeRTOS-addons a C++ API on Arduino

Standard FreeRTOS uses C based API. However I prefer to have some lean C++ abstractions. That’s when I discovered the freertos-addons project from Michael Becker. I have converted it to an Arduino Library, so that it can be used e.g. on an ESP32. I also added a new Task class (which is a subclass of Thread) that allows to pass a function pointer in the constructor. For the ESP32 we support the xTaskCreatePinnedToCore() method by Read more