An Introduction to Speech Recognition with Arduino

The staring point for doing speech recognition on an Arduino based board is TensorFlow Light For Microcontrollers with the example sketch called micro_speech! There are quite a few alternative Arduino Libraries for TensorFlow Light but honestly the situation is rather dire and I could not find any version which would fit my requirements support multiple microcontrollers (ESP32, RP2040 and Arduino Based MBED Implementations (e.g. Nano BLE Sense)) w/o compile errors no further dependencies It took Read more

TTS with Pre-Recorded Audio: Removing Silence

In my introductory blog, I have described that it would be cool to remove the silence from the recorded samples. If we look at one of the recordings we can see that they start and end with some silence: I have created a SilenceRemovalConverter which does exactly this. The first parameters indicates the number of samples we consider (if the last n samples were silence we remove the sample), the second the threshold value. Here Read more

TTS with Pre-Recorded Audio: Preparing the Audio Files

I the last Blog I introduced you to my new Simple TTS Arduino Library which is available on Github. I used the Text-to-Speech (TTS) functionality of Google Translate to generate the mp3 files, which was quite tedious to do manually. Then I executed xxd to generate a .h file from an mp3 recording with: xxd -i mp3file.mp3 header-file.h The header files are then made available with the logic that can be found in AudioDictionary.h Tools Read more

TTS with Pre-Recorded Audio: Building a Talking Clock

Last year I was digging into Arduino Based TTS Solutions and came to the conclusion that the available engines will not provide any quality audio and therefore recommended to consider an approach which is based on recorded audio samples. Today I took the opportunity to create the new arduino-simple-tts project which is based on this approach. As a proof of concept I have implemented the speaking of numbers and of the output of time. All Read more

Using stdio.h file operations on Arduino ESP32 to access a SD Drive

So far I was always using the Arduino based SD API to access files on a SD drive. But there are plenty of existing libraries which expect to use stdio.h operations to work with files. So I was digging into the topic and to my surprise this is possible: You just need to mount the SD card: #include <FS.h> #include <SD_MMC.h> #include <stdio.h> void begin() { if(!SD_MMC.begin(“/sdcard”)){ Serial.println(“Card Mount Failed”); return; } } The value Read more

Maximilian DSP on the Arduino ESP32 ?

Quite some time ago I have identified Maximilian as interesting tool which can be used to implement synthezisers. Maximilian is a cross-platform and multi-target audio synthesis and signal processing library. So I was wondering if it is possible to use it on Arduino based Microcontrollers. In the meantime the adapted library is compiling after some slight changes. After that I started to extend my Arduino Audio Tools to provide an nice integration and a first Read more

Building an Arduino ESP32 Audio Bluetooth Receiver with output to SPDIF with just a few lines of code.

The last couple of days I have spent to add SDIF audio output support to my Arduino AudioTools library and I would like to thank joba-1 for testing the solution. Together with my ESP32-A2DP Bluetooth library we can build now a Bluetooth receiver that outputs the audio signals as SPDIF with just a few lines of code: The Arduino Sketch Here is the Arduino Sketch #define USE_A2DP #include “AudioConfigLocal.h” #include “AudioTools.h” BluetoothA2DPSink a2dp_sink; SPDIFStream spdif; Read more

AAC Encoding on the AudioKit

For quite some time I was wondering why my arduino-fdk-aac library was using so much memory for the encoding of AAC files. Now that I have an AudioKit working with the debugger it was easier to analyze the situation and – oh boy – I found quite some errors. So I decided to address the issues and published a new corrected release. Arduino Sketch Here is a quick Arduino Sketch which demonstrates how to use Read more

PlatformIO-Arduino: Debugging the ESP32 AudioKit with OS/X and Raspberry PI OS

I was planning to use the PlatformIO Debugger for quite some time: Here is a good overview of how to get started. I can also recommend Low-cost ESP32 In-circuit Debugging from Manuel BL. I wanted to use it both with OS/X and Linux: Most tutorials however describe Windows and therefore were not helpful to resolve my issues. It took me quite some time to have a working solution. Therefore I would like to document some Read more

Using the ESP32 LyraT Audio Board with Arduino

After using the AI Thinker AudioKit I wanted to make sure that my libraries also work with the ESP32 LyraT Board from Espressif. There were basically just 2 stumbling blocks: Deploying Code: From the AudioKit I was used that I can plug in the UART cable and upload the code from Arduino w/o pushing any buttons. This is different in LyraT. You need to connect both the UART and Power Cable and then you need Read more