# 项目结构说明 ## 文件组织 项目已按功能模块化拆分,主要文件结构如下: ### 核心文件 #### 主程序入口 - `main_new.cpp` - 新的简化主程序入口 - `main.cpp` - 原始的单文件实现(保留作为参考) #### 主窗口模块 - `SpeechTestMainWindow.h` - 主窗口类声明 - `SpeechTestMainWindow.cpp` - 主窗口类实现 - 负责UI界面的创建和管理 - 处理用户交互事件 - 协调ASR和TTS管理器 - 实现麦克风录音功能 - 管理音频格式转换和WAV文件保存 #### ASR(语音识别)模块 - `ASRManager.h` - ASR管理器类声明 - `ASRManager.cpp` - ASR管理器类实现 - 管理离线语音识别功能 - 处理WAV文件识别 - 预留在线识别接口(当前禁用) #### TTS(语音合成)模块 - `TTSManager.h` - TTS管理器类声明 - `TTSManager.cpp` - TTS管理器类实现 - 管理语音合成功能 - 支持中英文混合合成 - 自动检测和选择最佳模型 #### 模型设置模块 - `ModelSettingsDialog.h` - 模型设置对话框类声明 - `ModelSettingsDialog.cpp` - 模型设置对话框类实现 - 提供图形化模型配置界面 - 支持ASR和TTS模型管理 - 配置文件自动保存和加载 ### 配置文件 - `CMakeLists.txt` - 构建配置文件 - `.gitignore` - Git忽略文件配置 ### 文档文件 - `PROJECT_STRUCTURE.md` - 项目结构说明 - `MODEL_SETTINGS_GUIDE.md` - 模型设置界面使用指南 ### 测试文件 - `test_tts.cpp` - TTS功能测试程序 ### 库文件 - `lib/sherpa_onnx/` - sherpa-onnx库文件 ## 模块职责 ### SpeechTestMainWindow - **职责**: 用户界面管理和事件处理 - **功能**: - 创建和布局UI组件 - 处理按钮点击事件 - 显示识别和合成结果 - 管理输出目录 - 实现高质量麦克风录音 - WAV文件格式处理和保存 - 音频数据实时处理 - 自动语音播放功能 ### ASRManager - **职责**: 语音识别功能管理 - **功能**: - 初始化sherpa-onnx离线识别器 - 处理WAV文件识别 - 管理识别器生命周期 - 预留在线识别接口 ### TTSManager - **职责**: 语音合成功能管理 - **功能**: - 初始化sherpa-onnx TTS合成器 - 自动选择最佳TTS模型 - 执行文本到语音转换 - 管理合成器生命周期 ### ModelSettingsDialog - **职责**: 模型配置界面管理 - **功能**: - 提供用户友好的模型配置界面 - 支持ASR和TTS模型路径设置 - 预设模型快速配置 - 配置验证和测试 - 设置的持久化存储 ## 优势 ### 模块化设计 1. **职责分离**: 每个类专注于特定功能 2. **易于维护**: 修改某个功能不影响其他模块 3. **代码复用**: 管理器类可以在其他项目中复用 4. **测试友好**: 可以独立测试每个模块 ### 扩展性 1. **新功能添加**: 可以轻松添加新的管理器类 2. **模型切换**: 在管理器中可以轻松切换不同模型 3. **UI改进**: 可以独立改进用户界面 ### 可读性 1. **清晰结构**: 文件组织清晰,功能明确 2. **代码分离**: 避免了单文件过长的问题 3. **接口明确**: 类之间的接口清晰定义 ## 编译和运行 ```bash # 进入构建目录 cd build # 编译项目 make -j4 # 运行程序 ./qt_speech_simple ``` ## 当前功能状态 ### ✅ 已实现功能 - 离线WAV文件语音识别 - **实时麦克风语音识别**(中英文双语) - **高质量麦克风录音**(44.1kHz立体声WAV格式) - **自动语音播放**(识别结果自动合成并播放) - 中英文混合语音合成 - MeloTTS模型支持 - 模块化架构 - 输出文件管理(TTS输出、录音文件) - 图形化模型设置界面 - 配置文件自动保存/加载 - 菜单栏和快捷键支持 - 端点检测和流式处理 - 音频格式自适应转换 - WAV文件标准格式支持 ### ⚠️ 部分功能 - ~~麦克风实时识别~~(已完成实现) ### 📋 待扩展功能 - 更多TTS模型支持 - 批量文件处理 - 模型自动扫描功能 - 模型性能测试功能 - 配置导入/导出功能 - 语音命令识别 - 实时语音翻译 - 录音格式选择(MP3、FLAC等) - 音频可视化(波形显示) - 自动增益控制 - 噪音抑制功能