Arduino library to play MOD, WAV, FLAC, MIDI, RTTTL, OGG/Opus, MP3, and AAC files on I2S DACs or with a software emulate

ESP8266Audio

ESP32 ⭐☆☆☆☆ (1/5) 已发布
earlephilhower 2364 Stars GPL-3.0 BOM 完整度: /5 教程完整度: /5

项目简介

Arduino library to play MOD, WAV, FLAC, MIDI, RTTTL, OGG/Opus, MP3, and AAC files on I2S DACs or with a software emulate


ESP8266Audio 是一个专为嵌入式系统设计的音频解码与播放库,支持 ESP8266、ESP32 以及 Raspberry Pi Pico(RP2040 和 RP2350)等主流微控制器平台。它能够解析并解码 MOD、WAV、MP3、FLAC、MIDI、AAC、Opus 和 RTTL 等多种音频格式,并通过 I2S DAC 或软件模拟的 delta-sigma DAC(支持 32 倍至 128 倍动态过采样)直接播放音频,无需额外硬件。

标签

项目特点

支持多种音频格式:MOD、WAV、FLAC、MIDI、RTTTL、OGG/Opus、MP3、AAC,覆盖主流需求
兼容多种硬件平台:ESP8266、ESP32、树莓派Pico(RP2040/Pico2),灵活性高
可选用I2S DAC或软件模拟delta-sigma DAC输出,降低硬件门槛
内置MIDI合成器,支持SoundFont2(SF2)音色库,实现高质量乐器音色
集成Talkie语音合成库,可直接播放英文语音
开源且社区活跃,GitHub星数超过2300,持续维护更新

技术规格

支持平台
音频格式
输出方式
MIDI合成
语音合成
采样率
位深
存储来源
许可证

项目资源

物料清单 (BOM)

物料名称 数量 参考价格 备注
ESP8266开发板(如NodeMCU) 1 或ESP32、树莓派Pico
I2S DAC模块(如MAX98357) 1 可选,也可用软件DAC
扬声器(3W/4Ω) 1 配合I2S DAC使用
microSD卡模块 1 用于存储音频文件
microSD卡(8GB以上) 1 存放音频文件
杜邦线/面包板 若干 用于电路连接
USB供电线 1 5V供电

所需工具

工具用途是否必需
Arduino IDE 编写、编译、上传代码 ✅ 是
ESP8266/ESP32板支持包 在Arduino IDE中添加对应平台支持 ✅ 是
USB数据线 连接开发板与电脑 ✅ 是
音频转换工具(如Audacity) 转换音频格式为WAV/MP3等 ▢ 推荐
SD卡格式化工具 格式化SD卡为FAT32 ▢ 推荐

能力画像

**记忆与知识检索**:3/5 — 需要查阅文档了解音频格式支持和API用法,但核心功能有示例代码可参考
**动手与操作**:4/5 — 需要焊接或面包板搭建电路,连接I2S DAC和扬声器,硬件操作要求中等
**编程与算法**:4/5 — 需要编写Arduino代码,理解音频流处理、缓冲区管理和格式解码逻辑
**设计与建模**:2/5 — 主要关注功能实现,外观和结构设计非必需,但可自行设计外壳
**实验与调试**:4/5 — 调试音频输出时需用示波器或逻辑分析仪排查I2S信号问题,音频格式兼容性需反复测试
**协作与分享**:3/5 — 可通过GitHub提交Issue或PR,社区有讨论区可分享作品
**学习与研究**:5/5 — 深入理解数字音频原理、I2S协议、音频编解码算法,学习价值极高
**系统集成**:4/5 — 可集成到智能音箱、语音助手、游戏机等项目中,需考虑电源管理和实时性

所需技能

Arduino编程基础(C/C++) 微控制器GPIO和I2S接口使用 音频格式基础知识(WAV、MP3、FLAC等) 电路搭建与面包板使用 文件系统操作(SD卡、SPIFFS) 调试工具使用(串口监视器、逻辑分析仪) 版本控制(Git)基础

适用场景

制作WiFi音乐播放器,通过HTTP流播放网络电台
为机器人或智能家居设备添加语音提示功能
复古游戏机音效播放(如MIDI背景音乐)
电子乐器原型开发(MIDI合成器)
教育演示:展示数字音频处理原理
户外语音导游设备(配合SD卡存储音频)
低成本语音合成装置(Talkie库)