Text To Speach in Arduino using Flite

In my last Blogs I looked at SAM and Arduino/TTS. I was putting high hopes in CMU Flite: CMU Flite (festival-lite) is a small, fast run-time open source text to speech synthesis engine developed at CMU and primarily designed for small embedded machines and/or large servers. Flite is designed as an alternative text to speech synthesis engine to Festival for voices built using the FestVox suite of voice building tools. I was extending the project Read more…

Text To Speach in Arduino using TTS

In my last Blog I looked at SAM. Now it is time to look at jscrane/TTS. TTS is a popular Text-to-Speech Library for Arduino which is supporting many different Microcontroller Architectures. I was extending the project, so that I could receive the data as stream: My extended project can be found on Github. Like for SAM, the Arduino sketch for the Webserver is also quite small because I am using my arduino-audio-tools . TTS is Read more…

Text To Speach in Arduino using SAM

I started to look into the topic of Text to Speach Synthesis (TTS) on Microcontrollers with the final goal to compare different engines. Since I don’t want to be bothered to connect the Microcontroller to any output device, I decided to just render the result to a Webbrowser with an ESP32 before committing to any solution. Unfortunately there are no Arduino engines which would provide the result as a stream, so I started to “extend” Read more…

Back to Basics – Audio Output on the Raspberry Pico using PWM

In one of my past Blogs I have described how to implement a simple tone generator using a Repeating Timer for the Raspberry Pico with the C++ SDK. This time I want to describe an approach which is a little bit more versatile: The Pico provides no built-in DAC and thus we have no real analog output, but we can generate PWM signals on all pins – so if we use a basic PWM frequency Read more…

ESP32 Sound to a Web Browser

I was wondering what the easiest way would be to provide sound generated on a ESP32 to a Web Browser: I got distracted when I googled the topic “music streaming” and everything suddenly turned out to be very complicated. So I got back to my original idea: Just change the Server from the examples directory to return something that a Web Browser would recognize: The simplest audio file format for this purpose is WAV. It’s Read more…

Arduino Raspberry Pico – Looking Under the Hood

Today I had a look under the hood of the Standard Arduino implementation for the Raspberry Pico. I was surprised that they did not base their work on the Pico API but they based their work on ARM Mbed. Here is a blink example using the Ticker from the Mbed API: Mbed Ticker #include “mbed.h” using namespace mbed; Ticker ticker; DigitalOut led1(LED1); void blink(){ led1 = !led1; } void setup() { ticker.attach(&blink, 1); } void Read more…

You are really ugly but your face is pretty: Living in #ifdef Hell

I took the chance to look at the guts of one of my favorite projects: Mozzi. The major starting point is MozziGuts. Just tried to understand what code is relevant and my head started spinning… There is even an expression for this: #ifdef Hell. To make things more comprehensive, I thought it might make sense to split this up into different implementation files. I tried to do this manually but soon got so confused that Read more…

Using the Mozzi Sound Generator with a Bluetooth Speaker

Im my last Blog I have demonstrated how we can use some simple Sound Generator with my Arduino Audio Tools library. I spent a small effort to integrate Mozzi and the result looks quite promising. Mozzi brings your Arduino to life by allowing it to produce much more complex and interesting growls, sweeps and chorusing atmospherics. These sounds can be quickly and easily constructed from familiar synthesis units like oscillators, delays, filters and envelopes. The Read more…

Stream support for my “Arduino Audio Tools” Library – A Sound Generator

Im my last couple of Blogs, I have demonstrated how we can use the low level API of my Arduino Audio Tools library. Currently I am busy working on a high level API using Arduino Streams. I did not commit my latest changes yet but I want to take the opportunity to share some more examples: We all know the Arduino Streams. We use them to write out print messages and sometimes we use them Read more…