# AI_Chat_System **Repository Path**: board_group/AI_Chat_System ## Basic Information - **Project Name**: AI_Chat_System - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-31 - **Last Updated**: 2026-02-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ART-Pi2 AI语音对话系统技术报告(简要版) ## 1. 应用实现功能 ### 1.1 核心功能 本系统基于ART-Pi2开发板实现完整的AI语音对话流程,包含四个核心步骤: 1. **语音转文本(STT)**:将音频文件转换为文本 - 支持MP3、WAV格式 - 使用TeleAI/TeleSpeechASR模型 - 通过HTTP API调用SiliconFlow服务 2. **大语言模型对话(LLM)**:对文本进行智能回答 - 使用Qwen/Qwen2.5-7B-Instruct模型 - 支持长文本对话 - 返回结构化JSON响应 3. **文本转语音(TTS)**:将回答转换为语音文件 - 使用FunAudioLLM/CosyVoice2-0.5B模型 - 输出32kHz采样率WAV文件 - 支持中文语音合成 4. **音频播放**:播放生成的语音文件 - 基于PWM4-CH2硬件输出 - 支持多种音频格式和位深度 - 可调节音量 ### 1.2 使用方式 ```bash # 基本用法 ai_voice /sdcard/testall.wav # 完整参数 ai_voice <音频文件> [STT模型] [LLM模型] [输出路径] [音量] ``` ## 2. RT-Thread使用情况概述 ### 2.1 版本信息 - **RT-Thread版本**:5.1.0 - **BSP版本**:STM32H7R7-RT-ART-PI2 1.0.0 ### 2.2 主要组件 | 组件 | 用途 | 说明 | |------|------|------| | 线程管理 | 多任务并发 | STT/LLM/TTS/播放各独立线程 | | 信号量 | 线程同步 | 实现步骤间同步等待 | | 文件系统(DFS) | 文件操作 | SD卡音频文件读写 | | PWM驱动 | 音频输出 | PWM4-CH2通道 | | 网络协议栈 | 网络通信 | LwIP + WiFi驱动 | | FinSH/MSH | 命令行 | 提供ai_voice命令接口 | ### 2.3 线程栈分配 - STT线程:16KB - LLM线程:16KB - TTS线程:2MB(处理大音频数据) - 主任务线程:32KB ## 3. 硬件框架 ### 3.1 硬件平台 - **开发板**:ART-Pi2 - **MCU**:STM32H7R7L8Hx (ARM Cortex-M7) - **主频**:480MHz - **Flash**:128KB - **RAM**:456KB ### 3.2 外设资源 ``` ART-Pi2 ├── PWM4-CH2 → 音频输出 ├── SDMMC → SD卡存储 ├── WiFi模块 → 网络通信 └── UART → 调试串口 ``` ## 4. 软件框架说明 ### 4.1 架构层次 ``` 应用层 ├── ai_voice_task (任务协调) └── main (程序入口) ↓ 服务层 ├── stt_client (语音识别) ├── llm_client (语言模型) ├── tts_client (语音合成) └── audio_player (音频播放) ↓ 网络层 └── mongoose (HTTP客户端) ↓ RT-Thread系统层 └── 线程/信号量/文件系统 ↓ 硬件抽象层 └── STM32 HAL/BSP驱动 ``` ### 4.2 数据流程 ``` 音频文件 → STT API → 文本 → LLM API → 回答 → TTS API → 语音文件 → PWM输出 ``` ## 5. 软件模块说明 ### 5.1 核心模块 | 模块 | 文件 | 主要功能 | |------|------|----------| | AI语音任务 | `ai_voice_task.c/h` | 整合四个步骤,提供MSH命令 | | STT客户端 | `stt_client.c/h` | 语音转文本,multipart上传 | | LLM客户端 | `llm_client.c/h` | 大语言模型对话,JSON解析 | | TTS客户端 | `tts_client.c/h` | 文本转语音,WAV文件生成 | | 音频播放 | `audio_player.c/h` | WAV文件解析,PWM音频输出 | ### 5.2 关键技术 - **多线程并发**:使用RT-Thread线程和信号量实现任务协调 - **HTTP通信**:基于Mongoose实现异步HTTP客户端 - **音频处理**:PWM硬件输出,DWT精确时序控制 - **错误处理**:各步骤独立超时和错误处理机制 ## 6. 演示效果 ### 6.1 运行示例 ``` msh />ai_voice /sdcard/testall.wav === AI Voice Task Started === [Step 1/4] STT: Converting audio to text... STT text: Who are you, What can you do. [Step 2/4] LLM: Getting response... LLM response: Great questions! Here's a quick intro... [Step 3/4] TTS: Converting text to speech... TTS: Successfully wrote 123456 bytes [Step 4/4] Playing audio... Audio playback started === AI Voice Task Completed === ``` ### 6.2 演示效果图 https://club.rt-thread.org/ask/article/a7a022b95faba131.html ## 7. 代码地址 ### 7.1 项目路径 ``` sdk-bsp-stm32h7r-realthread-artpi2-master/projects/art_pi2_mongoose ``` ### 7.2 核心代码文件 **应用层** - `applications/ai_voice_task.c/h` - AI语音任务主模块 - `applications/main.c` - 主程序入口 **服务模块** - `applications/stt_client.c/h` - STT客户端 - `applications/llm_client.c/h` - LLM客户端 - `applications/tts_client.c/h` - TTS客户端 - `applications/audio_player.c/h` - 音频播放器 **网络库** - `applications/mongoose/` - Mongoose网络库 **硬件驱动** - `board/` - 板级支持包 - `libraries/drivers/` - 设备驱动 ### 7.3 配置文件 - `rtconfig.h` - RT-Thread配置 - `Kconfig` - 内核配置 - `SConscript` - 构建脚本 --- **项目版本**:基于RT-Thread 5.1.0和ART-Pi2开发板