An Arduino library for ESP32 multi-core chips to play audio files and streams from SD card or network via I2S to external DACs/amplifiers.
ESP32-audioI2S is an Arduino library that allows ESP32 multi-core microcontrollers to play audio files from an SD card or stream audio over a network via the I2S protocol to external DACs and amplifiers. It solves the problem of adding high-quality, multi-format audio playback to embedded projects without requiring complex low-level audio handling.
Embedded developers and hobbyists building audio projects with ESP32 boards, such as internet radios, music players, or voice-enabled devices, who need reliable I2S audio output with support for various codecs.
Developers choose this library for its extensive built-in audio decoder support, compatibility with popular I2S hardware, and additional features like network streaming and TTS integration, all within an Arduino-friendly framework.
Play mp3 files from SD via I2S
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Includes built-in decoders for MP3, AAC, FLAC, Vorbis, M4A, and Opus, allowing playback from SD cards and streams without additional libraries.
Tested with popular DACs like MAX98357A, UDA1334A, and PCM5102A, ensuring compatibility with common audio hardware for reliable output.
Supports live icy-streams and online audio sources, enabling internet radio and streaming applications directly from the network.
Compatible with Google TTS and OpenAI speech synthesis, adding voice output features to IoT projects with minimal setup.
Provides extensive audio event callbacks for metadata, bitrate, and logging, aiding in debugging and user interface development.
Only works on multi-core ESP32, ESP32-S3, and ESP32-P4 with PSRAM, excluding ESP32-S2 and ESP32-C3, which restricts hardware choices.
Requires external I2S DACs and amplifiers, adding cost and complexity to projects compared to internal audio solutions or software-only playback.
Outputs at a constant 48kHz, which may not suit all audio sources or require resampling, potentially affecting audio quality or compatibility with some hardware.
Some formats have limitations, such as Vorbis bitrate caps (<=196Kbit/s) and FLAC blocksize restrictions, which could impact high-fidelity playback or specific use cases.