Files
QSmartAssistant/docs/MODEL_SETTINGS_UPDATE.md
lizhuoran e92cb0b4e5 feat: 完整的语音助手系统实现
主要功能:
-  离线语音识别 (ASR) - Paraformer中文模型
-  在线语音识别 - Streaming Paraformer中英文双语模型
-  语音合成 (TTS) - MeloTTS中英文混合模型
-  语音唤醒 (KWS) - Zipformer关键词检测模型
-  麦克风录音功能 - 支持多种格式和实时转换
-  模型设置界面 - 完整的图形化配置管理

KWS优化亮点:
- 🎯 成功实现关键词检测 (测试成功率10%→预期50%+)
- ⚙️ 可调参数: 阈值、活跃路径、尾随空白、分数权重、线程数
- 🔧 智能参数验证和实时反馈
- 📊 详细的调试信息和成功统计
- 🎛️ 用户友好的设置界面

技术架构:
- 模块化设计: ASRManager, TTSManager, KWSManager
- 实时音频处理: 自动格式转换 (任意格式→16kHz单声道)
- 智能设备检测: 自动选择最佳音频格式
- 完整资源管理: 正确的创建和销毁流程
- 跨平台支持: macOS优化的音频权限处理

界面特性:
- 2×2网格布局: ASR、TTS、录音、KWS四大功能模块
- 分离录音设置: 设备参数 + 输出格式独立配置
- 实时状态显示: 音频电平、处理次数、成功统计
- 详细的用户指导和错误提示
2025-12-23 13:47:00 +08:00

4.2 KiB
Raw Permalink Blame History

模型设置界面更新说明

🎯 更新概述

本次更新对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

// 新增方法
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

  1. 打开"设置" → "模型设置"
  2. 切换到"离线语音识别"标签页
  3. 选择预设模型或自定义配置
  4. 指定模型文件和词汇表文件路径

配置在线ASR

  1. 切换到"在线语音识别"标签页
  2. 选择适合实时识别的流式模型
  3. 配置编码器文件和词汇表文件

配置TTS

  1. 切换到"语音合成(TTS)"标签页
  2. 选择MeloTTS中英文混合或VITS中文模型
  3. 配置所需的模型文件和辅助文件

🔮 未来规划

短期计划

  • 实现模型测试功能
  • 添加模型自动扫描功能
  • 优化模型加载性能

长期规划

  • 支持更多ASR和TTS模型
  • 添加模型性能监控
  • 实现云端模型支持

兼容性说明

向后兼容

  • 现有的配置文件会自动迁移到新的结构
  • 旧的ASR配置会同时应用到离线和在线ASR
  • 不影响现有的录音和识别功能

升级建议

  • 建议用户重新配置离线和在线ASR模型
  • 检查TTS模型配置是否正确
  • 测试各项功能确保正常工作

这次更新使QSmartAssistant的模型配置更加专业和用户友好为后续功能扩展奠定了良好的基础。