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