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…

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…

Back to Basics – Sampling Audio with the ESP32

In this Blog I am giving a little bit of background on how the sampling of analog signals has been implemented in my Arduino audo-tools library. My initial approach was based on the Blog from Ivan Voras using timers and interrupts. But there is a much better way by using the extended ESP32 I2S functionality: You can use this to sample an analog signal (e.g. from a microphone) at very high speeds and I finally Read more…

Stream MP3 Files to A2DP Bluetooth using the ESP8266 Audio Library

The processing of files with the help of the ESP8266Audio is a little bit more involved. However it allows to process different audio file types from different sources. Please consult the project for further details. Streaming of MP3 Files on a SD card The Sketch Here is the Arduino Sketch that you can use with an I2S audio source: #include <SPI.h> #include <SD.h> #include “AudioFileSourceSD.h” #include “AudioGeneratorMP3.h” #include “AudioOutputWithCallback.h” #include “BluetoothA2DPSource.h” #include “AudioTools.h” using namespace Read more…