主要功能: - ✅ 离线语音识别 (ASR) - Paraformer中文模型 - ✅ 在线语音识别 - Streaming Paraformer中英文双语模型 - ✅ 语音合成 (TTS) - MeloTTS中英文混合模型 - ✅ 语音唤醒 (KWS) - Zipformer关键词检测模型 - ✅ 麦克风录音功能 - 支持多种格式和实时转换 - ✅ 模型设置界面 - 完整的图形化配置管理 KWS优化亮点: - 🎯 成功实现关键词检测 (测试成功率10%→预期50%+) - ⚙️ 可调参数: 阈值、活跃路径、尾随空白、分数权重、线程数 - 🔧 智能参数验证和实时反馈 - 📊 详细的调试信息和成功统计 - 🎛️ 用户友好的设置界面 技术架构: - 模块化设计: ASRManager, TTSManager, KWSManager - 实时音频处理: 自动格式转换 (任意格式→16kHz单声道) - 智能设备检测: 自动选择最佳音频格式 - 完整资源管理: 正确的创建和销毁流程 - 跨平台支持: macOS优化的音频权限处理 界面特性: - 2×2网格布局: ASR、TTS、录音、KWS四大功能模块 - 分离录音设置: 设备参数 + 输出格式独立配置 - 实时状态显示: 音频电平、处理次数、成功统计 - 详细的用户指导和错误提示
6.0 KiB
6.0 KiB
分离录音设置功能说明
🎯 功能概述
QSmartAssistant现在采用全新的分离录音设置架构,将录音过程分为两个独立可控的阶段:
- 录音设置:控制设备录制时使用的音频参数
- 输出设置:控制最终保存文件的格式
这种设计让用户能够更精确地控制录音质量和输出格式,实现最佳的录音体验。
🏗️ 架构设计
传统单一设置 vs 分离设置
| 方面 | 传统方式 | 分离设置方式 |
|---|---|---|
| 设置复杂度 | 单一选择 | 双重控制 |
| 录音质量 | 受输出格式限制 | 可使用设备最佳格式 |
| 输出灵活性 | 与录音格式绑定 | 完全独立自定义 |
| 用户理解 | 简单但限制多 | 清晰且功能强大 |
分离设置的优势
-
录音质量最优化
- 可以使用设备支持的最高质量格式录制
- 不受最终输出格式限制
- 自动检测设备最佳参数
-
输出格式灵活性
- 完全自定义输出格式
- 默认语音识别友好格式(16kHz单声道)
- 支持预设配置快速选择
-
用户控制精确性
- 清楚了解录音和输出的区别
- 可以根据需要精确调整
- 透明的格式转换过程
🎛️ 界面设计
录音设置区域(设备参数)
┌─ 录音设置(设备参数) ─────────────────┐
│ 录音采样率: [自动检测最佳 ▼] │
│ 录音声道: [自动检测最佳 ▼] │
└──────────────────────────────────────┘
功能说明:
- 控制实际录音时设备使用的参数
- "自动检测最佳"会选择设备支持的最高质量
- 也可以手动指定具体的录音参数
输出设置区域(保存格式)
┌─ 输出设置(保存格式) ─────────────────┐
│ 输出采样率: [16000 Hz (语音识别) ▼] │
│ 输出声道: [单声道 (Mono) ▼] │
│ [预设] 预估输出文件大小: ~2MB/分钟 │
└──────────────────────────────────────┘
功能说明:
- 控制最终保存文件的格式
- 默认16kHz单声道(语音识别友好)
- 提供预设配置和文件大小预估
🔄 工作流程
1. 设置阶段
用户配置录音设置 → 用户配置输出设置 → 程序验证兼容性
2. 录音阶段
使用录音设置参数 → 设备开始录制 → 实时显示录音状态
3. 处理阶段
录音完成 → 格式对比 → 必要时进行转换 → 保存为输出格式
4. 结果阶段
显示最终文件信息 → 提供播放选项 → 重新启用设置
📊 使用场景示例
场景1:语音备忘录
- 录音设置: 自动检测最佳(可能是48kHz立体声)
- 输出设置: 16kHz单声道
- 结果: 高质量录制,紧凑保存,适合语音识别
场景2:音乐录制
- 录音设置: 48kHz立体声(手动指定)
- 输出设置: 44.1kHz立体声
- 结果: 专业质量录制,CD质量保存
场景3:会议录音
- 录音设置: 自动检测最佳
- 输出设置: 22kHz单声道
- 结果: 最佳录制质量,平衡的文件大小
场景4:高保真录音
- 录音设置: 48kHz立体声
- 输出设置: 48kHz立体声
- 结果: 无损录制和保存,最高音质
🎨 用户体验设计
直观的视觉分离
- 两个独立的设置组框
- 清晰的标题说明用途
- 不同的默认值体现不同目的
智能默认配置
- 录音设置默认"自动检测最佳"
- 输出设置默认"16kHz单声道"
- 平衡易用性和功能性
实时反馈
- 显示实际使用的录音格式
- 显示目标输出格式
- 格式转换状态提示
预设配置支持
- 输出设置提供常用预设
- 一键切换不同使用场景
- 文件大小实时预估
🔧 技术实现
设备格式检测
// 自动检测最佳格式的优先级
QList<int> deviceSampleRates = {48000, 44100, 22050, 16000};
QList<int> deviceChannels = {2, 1};
QList<QAudioFormat::SampleFormat> deviceFormats = {Int16, Float};
格式转换决策
// 判断是否需要格式转换
if (recordFormat != outputFormat) {
// 执行智能音频转换
convertedData = convertAudioFormat(rawData, recordFormat, outputFormat);
}
用户界面状态管理
// 录音期间禁用所有设置
recordSampleRateComboBox->setEnabled(false);
recordChannelComboBox->setEnabled(false);
outputSampleRateComboBox->setEnabled(false);
outputChannelComboBox->setEnabled(false);
📈 性能优化
智能转换策略
- 格式相同时跳过转换
- 高效的线性插值重采样
- 内存优化的数据处理
用户体验优化
- 实时格式验证
- 清晰的状态反馈
- 智能错误处理
设备兼容性
- 自动降级不支持的格式
- 完善的错误恢复机制
- 跨平台兼容性保证
🎉 功能优势总结
对用户的好处
✅ 更好的录音质量: 使用设备最佳格式录制 ✅ 更灵活的输出: 完全自定义保存格式 ✅ 更清晰的控制: 分离设置让用途更明确 ✅ 更智能的默认: 语音识别友好的默认输出 ✅ 更简单的操作: 自动检测减少复杂配置
对开发的好处
✅ 更清晰的架构: 录音和输出逻辑分离 ✅ 更容易扩展: 独立的设置系统 ✅ 更好的维护: 模块化的代码结构 ✅ 更强的兼容: 灵活的格式适配
🔮 未来扩展
短期计划
- 添加更多预设配置
- 支持批量格式转换
- 增加音频质量分析
长期规划
- 支持更多音频格式
- 实现音频效果处理
- 集成云端转换服务
这种分离设置架构为QSmartAssistant的录音功能提供了强大而灵活的基础,既满足了专业用户的精确控制需求,也为普通用户提供了简单易用的默认配置。