
Speech capability in technology primarily has two dimensions: text to speech (TTS) and speech to text (STT). This ESP32 Text-to-Speech device focuses on TTS. Here, the MAX98357A amplifier is used with the MCU ESP32 development board, and Google API is used to convert the text into speech.
The cost-effective MAX98357A I2S amplifier (mono) is connected to the ESP32. Although stereo models like the UDA1334A are available, the mono version is chosen for simplicity. The I2S amplifier uses three GPIO pins, which can be any pins except for 34 and 35 (input-only pins).
POC Video
A 4-ohm speaker is connected to the output, and it is essential to verify the board specifications. The speaker’s ‘+’ and ‘-’ terminals must be connected correctly to avoid distortion. The author’s prototype is shown in Fig. 1, and the necessary components are listed in the Bill of Materials table.

| Bill of Materials | |
| Components | Quantity |
| ESP32 node MCU (MOD1) | 1 |
| 3-watt speaker | 1 |
| MAX98357A I2S 3-watt Class D amplifier | 1 |
| 5V USB power supply cable | 1 |
ESP32 Text to Speech – Circuit Diagram








the code is not working
Please show the snippet where the code is not working. Otherwise one basic check is remove the positive power supply to the MAX98357A and upload the code. Ensure all the libraries are available for the ESP32.
which audio.h file need to use . can you share that lib ?
which audio.h file need to use . can you share that lib ?
Thanks for this project. I have followed the steps, but the ino will not compile. It cannot locate audio.h
I have tried a number of other audio.h files I’ve found online, but they all seem to want PSRam, which the NodeMCU ESP-32S does not have
So perhaps I still do not have the correct audio.h file.
I would appreciate you advice. Thx
There are 4 special files required exclusively for this project – Audio.cpp, Audio.h, DAC.cpp, DAC.h. It does not matter where do you place these files. Only thing during compilation it must find those files. One way of doing it is place all the files in your same directory where the *.ino file is placed and I cannot attach those files here.