主要功能: - ✅ 离线语音识别 (ASR) - Paraformer中文模型 - ✅ 在线语音识别 - Streaming Paraformer中英文双语模型 - ✅ 语音合成 (TTS) - MeloTTS中英文混合模型 - ✅ 语音唤醒 (KWS) - Zipformer关键词检测模型 - ✅ 麦克风录音功能 - 支持多种格式和实时转换 - ✅ 模型设置界面 - 完整的图形化配置管理 KWS优化亮点: - 🎯 成功实现关键词检测 (测试成功率10%→预期50%+) - ⚙️ 可调参数: 阈值、活跃路径、尾随空白、分数权重、线程数 - 🔧 智能参数验证和实时反馈 - 📊 详细的调试信息和成功统计 - 🎛️ 用户友好的设置界面 技术架构: - 模块化设计: ASRManager, TTSManager, KWSManager - 实时音频处理: 自动格式转换 (任意格式→16kHz单声道) - 智能设备检测: 自动选择最佳音频格式 - 完整资源管理: 正确的创建和销毁流程 - 跨平台支持: macOS优化的音频权限处理 界面特性: - 2×2网格布局: ASR、TTS、录音、KWS四大功能模块 - 分离录音设置: 设备参数 + 输出格式独立配置 - 实时状态显示: 音频电平、处理次数、成功统计 - 详细的用户指导和错误提示
4.2 KiB
4.2 KiB
模型设置界面更新说明
🎯 更新概述
本次更新对QSmartAssistant的模型设置界面进行了重大改进,主要包括:
- 将ASR设置分离为离线ASR和在线ASR两个独立标签页
- 移除了VITS中英文混合模型选项
- 移除了识别后自动播放语音功能
🔄 主要变更
1. ASR设置分离
之前:单一的"语音识别(ASR)"标签页 现在:分为两个独立标签页
离线语音识别标签页
- 用途:配置用于文件识别的离线模型
- 预设模型:
- Paraformer中文模型
- Whisper多语言模型
- 自定义模型
- 配置项:
- 模型文件(.onnx)
- 词汇表文件(tokens.txt)
在线语音识别标签页
- 用途:配置用于实时麦克风识别的在线模型
- 预设模型:
- Streaming Paraformer中英文模型
- Streaming Zipformer中英文模型
- 自定义模型
- 配置项:
- 编码器文件(encoder.onnx)
- 词汇表文件(tokens.txt)
2. TTS模型选项简化
移除的选项:
- ❌ VITS中英文混合模型
保留的选项:
- ✅ MeloTTS中英文混合模型
- ✅ VITS中文模型
- ✅ 自定义模型
原因:简化用户选择,专注于稳定可靠的模型选项。
3. 移除自动播放功能
移除的功能:
- ❌ "识别后自动播放语音"复选框
- ❌ 自动合成和播放识别结果的功能
- ❌ synthesizeAndPlayText方法
原因:
- 简化用户界面
- 减少不必要的功能复杂性
- 用户可以手动选择是否播放合成的语音
🏗️ 技术实现
代码结构变更
ModelSettingsDialog.h
// 新增方法
ModelConfig getCurrentOfflineASRConfig() const;
ModelConfig getCurrentOnlineASRConfig() const;
void setCurrentOfflineASRConfig(const ModelConfig& config);
void setCurrentOnlineASRConfig(const ModelConfig& config);
// 新增UI组件
QWidget* offlineAsrTab;
QWidget* onlineAsrTab;
// ... 相关控件
ModelSettingsDialog.cpp
- 新增
setupOfflineASRTab()方法 - 新增
setupOnlineASRTab()方法 - 更新配置保存和加载逻辑
- 分离离线和在线ASR的验证逻辑
SpeechTestMainWindow.h/cpp
- 移除
autoPlayCheckBox控件 - 移除
synthesizeAndPlayText()方法 - 更新模型设置对话框调用
配置存储结构
新的配置分组:
[OfflineASR]
modelPath=...
tokensPath=...
modelType=...
[OnlineASR]
modelPath=...
tokensPath=...
modelType=...
[TTS]
modelPath=...
tokensPath=...
lexiconPath=...
dictDirPath=...
dataDirPath=...
modelType=...
🎨 用户体验改进
更清晰的功能分离
- 用户可以明确区分离线和在线识别的配置
- 每个标签页专注于特定的使用场景
- 减少配置混淆的可能性
简化的界面
- 移除了不常用的自动播放功能
- 减少了TTS模型选项的复杂性
- 更专注的功能设计
更好的可扩展性
- 分离的ASR配置为未来添加更多模型类型提供了基础
- 清晰的代码结构便于维护和扩展
📋 使用指南
配置离线ASR
- 打开"设置" → "模型设置"
- 切换到"离线语音识别"标签页
- 选择预设模型或自定义配置
- 指定模型文件和词汇表文件路径
配置在线ASR
- 切换到"在线语音识别"标签页
- 选择适合实时识别的流式模型
- 配置编码器文件和词汇表文件
配置TTS
- 切换到"语音合成(TTS)"标签页
- 选择MeloTTS中英文混合或VITS中文模型
- 配置所需的模型文件和辅助文件
🔮 未来规划
短期计划
- 实现模型测试功能
- 添加模型自动扫描功能
- 优化模型加载性能
长期规划
- 支持更多ASR和TTS模型
- 添加模型性能监控
- 实现云端模型支持
✅ 兼容性说明
向后兼容
- 现有的配置文件会自动迁移到新的结构
- 旧的ASR配置会同时应用到离线和在线ASR
- 不影响现有的录音和识别功能
升级建议
- 建议用户重新配置离线和在线ASR模型
- 检查TTS模型配置是否正确
- 测试各项功能确保正常工作
这次更新使QSmartAssistant的模型配置更加专业和用户友好,为后续功能扩展奠定了良好的基础。