之前看到论坛里的坛友有讨论设计智能音响,一些坛友分析了esp32系列的音响,查询了一下现在开源的方案,用esp32也可以设计音响,缺点是ram不大可能只能流式传输。TTS和STT分别采用了论坛里提到的Edge和Fun SAR方案,代理使用了硅基流动的API(注册送15元,但是响应较慢,带深度思考的还没找到具体的关闭地方),整体包含如下:
定位模块——卫星定时
三轴陀螺仪加速度计——振动检测
蜂鸣器——音乐
IIS麦克风扬声器
按钮一个
RGB彩灯
振动马达
数码管时钟
跳转链接:https://oshwhub.com/bitshen/esphome-ai
📌 ESPHome-AIO 工程说明🔧 基本信息- ESPHome 版本要求:≥ 2025.5.0
- 平台:ESP32(ESPHome-AIO,240MHz,esp-idf 框架)
📡 网络与服务- Logger:开启调试日志
- API:与 Home Assistant 集成
- OTA:支持远程固件升级
- Wi-Fi:支持 AP 模式 + captive_portal
🎛 按钮功能- Factory reset(恢复出厂设置)
- Restart(重启)
- Play Music Button:触发播放 RTTTL 音乐(🎵《欢乐颂》示例)
- Test Alarm Sound:测试闹铃声音
实体按键(GPIO34)- 短按:停止计时器或重启语音唤醒
- 长按(10s):触发恢复出厂设置
🔊 音频系统I2S Audio 总线麦克风- 使用 i2s_audio(GPIO23 输入,PDM,16kHz,偏移校正)
扬声器- 使用 i2s_audio(GPIO22 输出,16kHz,16bit,立体声)
Media Player- 播放 WAV 音频文件
- 支持 定时器闹钟(重复播放 sounds_timer_finished.wav)
- 内置音量、缓冲、事件回调(on_idle、on_announcement 等)
RTTTL 蜂鸣器播放- 使用 GPIO13(PWM/LEDC 输出,1000Hz)
- 可通过按钮触发播放 RTTTL 曲调
🎙 语音助手- 语音输入:麦克风(增益 4,噪声抑制)
- 输出:speaker media_player
- 支持 micro_wake_word(本地唤醒词)
- 支持 Home Assistant 持续监听
状态回调- on_listening → LED 慢闪
- on_stt_vad_end → LED 快闪
- on_tts_start → LED 常亮
- on_end → 恢复唤醒模式
- on_error → LED 快闪 + 自动恢复
- on_timer_finished → 播放闹铃声音 + LED 闪烁
📍 GPS 功能串口通信 (UART1):TX GPIO16, RX GPIO17, 波特率 115200 GPS NMEA 解析: - GNGGA:纬度、经度、卫星数、HDOP、时间
- GNRMC:速度(节)
显示输出:通过 TM1638 LED 显示屏显示 GPS 时间
传感器 🧭 BMI160 传感器I2C 地址:0x68 输出: - 加速度 (X, Y, Z)
- 陀螺仪 (X, Y, Z)
- 温度
💡 灯光系统 ⚡ 开关控制- IO21 Power:默认始终开启
- GPS Power:默认始终开启
- MOTOR:默认关闭
- Use listen light:控制是否显示语音状态灯效
- Timer ringing:闹铃开关(定时器倒计时 15 分钟后自动关闭)
⚙️ 配置项Select(选择器) 🗣️ Micro Wake Word- 本地模型:okay_nabu
- 检测到唤醒词后 → 启动语音助手
🎶 声音系统总结- RTTTL 播放 → 蜂鸣器音乐
- WAV 播放 → I2S 扬声器输出
- 语音助手 → 播放/录音/唤醒
✅ 工程亮点- 集成了 语音助手 + 本地唤醒词 + Home Assistant 远程语音
- 支持 GPS 数据解析 + 显示屏输出
- 支持 运动传感器 BMI160(加速度、陀螺仪、温度)
- 完整的 灯效反馈(语音状态、闹铃、错误提示)
- 扩展了 RTTTL 蜂鸣器播放功能,可播放提示音或音乐
- 定时器闹铃系统,带自动关闭与 LED 提示
展示配件1、前后两侧面板文件请见附件
2、铝壳尺寸:632575
3、螺丝尺寸:M2.5*6
4、别忘记购买ipex转SMA的射频线
5、0.36英寸数码管6位单排,3661共阴
本地搭建的TTS和STT在J4125上占用不大可以放心使用。 视频声音较小请放大收听...
|