# 小智AI SD卡播放歌曲 **Repository Path**: feqqing/xiaozhiaisd ## Basic Information - **Project Name**: 小智AI SD卡播放歌曲 - **Description**: XIAOZHI - **Primary Language**: C/C++ - **License**: Not specified - **Default Branch**: main - **Homepage**: https://gitee.com/feqqing/xiaozhiaisd - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-26 - **Last Updated**: 2026-07-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README [English](README_en.md) | [中文](README.md) # 小智 AI 语音助手 (SD卡歌曲播放版本) 小智是一款基于 ESP32-S3 的 AI 语音助手设备,支持语音交互、SD 卡音乐播放、LCD 显示等多种功能。 ## 功能特性 - **语音交互**:支持语音唤醒、语音识别和语音合成 - **SD 卡音乐播放**:可通过 SD 卡播放本地音乐文件 - **音频频谱显示**:播放音乐时显示动态音频频谱 - **多显示支持**:支持多种 LCD 屏幕(240×240、320×240 等) - **多网络支持**:支持 WiFi 和 4G 网络(通过 ML307 模块) - **闹钟功能**:支持设置和管理闹钟 - **多语言支持**:支持中文、英文、日文、韩文等多种语言 ## 硬件配置 ### 默认引脚配置(bread-compact-wifi-lcd) **SD 卡引脚:** - `CLK = GPIO_NUM_39` - `CMD = GPIO_NUM_38` - `D0 = GPIO_NUM_40` **LCD 屏幕引脚(1.54寸 240×240):** ```c #define DISPLAY_BACKLIGHT_PIN GPIO_NUM_6 #define DISPLAY_MOSI_PIN GPIO_NUM_17 #define DISPLAY_CLK_PIN GPIO_NUM_8 #define DISPLAY_DC_PIN GPIO_NUM_15 #define DISPLAY_RST_PIN GPIO_NUM_16 #define DISPLAY_CS_PIN GPIO_NUM_7 ``` **功放 MAX98357 引脚:** ```c #define AUDIO_I2S_SPK_GPIO_DOUT GPIO_NUM_9 #define AUDIO_I2S_SPK_GPIO_BCLK GPIO_NUM_10 #define AUDIO_I2S_SPK_GPIO_LRCK GPIO_NUM_11 ``` **麦克风引脚:** ```c #define AUDIO_I2S_MIC_GPIO_WS GPIO_NUM_14 #define AUDIO_I2S_MIC_GPIO_SCK GPIO_NUM_13 #define AUDIO_I2S_MIC_GPIO_DIN GPIO_NUM_12 ``` **音量键:** ```c #define VOLUME_UP_BUTTON_GPIO GPIO_NUM_42 #define VOLUME_DOWN_BUTTON_GPIO GPIO_NUM_4 ``` **WS2812 4位频谱灯:** ```c #define BOARD_WS2812_LED_GPIO GPIO_NUM_2 #define BOARD_WS2812_LED_COUNT 4 ``` ## 支持的开发板 ESP32-S3 bread-compact-wifi-lcd ## 编译配置 ### 环境要求 - ESP-IDF v5.x - Python 3.8+ - CMake 3.16+ ### 编译步骤 ```bash # 克隆项目 git clone https://gitee.com/feqqing/xiaozhiaisd.git cd xiaozhiaisd # 设置目标芯片 idf.py set-target esp32s3 # 配置项目 idf.py menuconfig # 编译 idf.py build ``` ### 选择开发板 在 `menuconfig` 中选择对应的开发板配置: ``` Board Configuration -> Select Board -> bread-compact-wifi-lcd ``` ## 背景图片 项目默认提供 3 张背景图片。如需自定义背景,请将图片的 C 数组添加到 `main/backgrounds.cpp` 文件中。 ## 项目结构 ``` ├── main/ # 主程序目录 │ ├── application.cc # 应用主逻辑 │ ├── alarm_manager.cc # 闹钟管理 │ ├── assets.cc # 资源管理 │ ├── audio/ # 音频服务 │ │ ├── audio_codec.cc # 音频编解码 │ │ ├── audio_service.cc # 音频服务 │ │ └── codecs/ # 音频编解码器驱动 │ ├── boards/ # 开发板支持 │ │ └── bread-compact-wifi-lcd/ │ ├── display/ # 显示服务 │ └── backgrounds.cc # 背景图片 ├── docs/ # 文档 └── CMakeLists.txt ``` ## 许可证 MIT License ## 致谢 - ESP-IDF 框架 - LVGL 图形库 - ESP-ADF 音频框架