环境:Ubuntu 22.04.5 LTS、Python 3.10、PySide6 6.8.3、FunASR 1.2.7。日期:2026-09-10。
- 25 项测试通过:原有录音/识别回归测试,加上全局快捷键配置转换、保留已有自定义快捷键、重复注册、冲突检测、独立进程 socket 控制、隐藏到托盘、恢复窗口、隐藏后快捷键开始/停止、重复触发保护、无托盘时普通最小化和显式退出。
- 真实 GNOME/X11 全局按键通过:
scripts/smoke-desktop.py临时注册 Ctrl+空格,通过 xdotool 发送两次按键,两次都经 GNOME → 实际 CLI → 常驻 socket 接收端收到toggle。无麦克风或 ASR 调用;测试后恢复原有快捷键配置。 - 当前 GNOME 托盘可用:Qt 原生
isSystemTrayAvailable()返回 True。Wayland 仍需实际桌面验收;快捷键使用 GNOME 自定义快捷键机制,不依赖 X11 键盘监听。 - CPU 发行包:0.2.0 复用已经验证的 PyTorch 2.6.0+cpu 与 Qt/FunASR 依赖,模型和已有配置继续复用。默认源码安装也改为 CPU,CUDA 仅在显式指定时安装。
以下模型与音频结果来自早期基线验证,保留原始测量值;不代表本轮重新运行。
-
16 项自动化测试通过。包括真实 Qt 控制器、QThread、剪贴板与可控音频/后端的集成,以及 48 kHz → 16 kHz 连续重采样、麦克风失败、输入溢出、取消、快速点击、最终覆盖实时、静音空结果、推理恢复、关闭时丢弃结果、剪贴板错误、时长上限、CUDA OOM 重试使用完整原音频、VAD 模式切换、模型下载完整性和保守后处理。
-
真实流式模型:官方模型附带的
streaming/example/asr_example.wav能分块输出文字。 -
真实双阶段离线推理:使用
.deb内的 CPU 依赖执行scripts/smoke-asr.py,在模型加载前拒绝 Python socket 连接与域名解析,完成实时识别、最终识别、静音检测及第二次会话。输出:Partial: 欢迎大家来体验达摩院推出的语音识别模型 Final: 欢迎大家来体验达摩院推出的语音识别模型。 Model load: 14.93s Final processing: 0.25s; audio: 5.55s PASS: streaming + full-audio final + silence, network denied这是本机单个公开短音频的观测结果,不是不同硬件/长语音的性能保证。网络检查覆盖 Python 网络调用,不是系统级防火墙审计。
-
Qt X11 系统剪贴板:实际连接当前 X11 桌面,
setText、读取及所有权检查通过。 -
真实 UI 完整链路:
scripts/smoke-ui.py使用实际控制器、按钮、常驻模型和 Qt 剪贴板,通过“点击开始 → 文件模拟实时输入 → 实时文字 → 点击停止 → 最终文字 → 已复制 → 正常关闭”,退出码 0。该测试采用 offscreen Qt、公开 WAV 代替物理麦克风,并禁止 Python 网络连接。 -
PortAudio 设备枚举:在真实桌面环境成功枚举 USB 麦克风、PulseAudio 和系统默认设备。沙箱内不能正常访问桌面音频服务,不能用沙箱内枚举结果判断本机有没有麦克风。
-
安装包:早期 CPU 安装包,CPU 版,约 528 MB,解包约 1.9 GB。已解包验证 PySide6、FunASR、PyTorch 2.6.0+cpu 与 torchaudio 2.6.0+cpu 能由 Ubuntu 系统 Python 3.10 导入。Python wheel 已生成并检查包含各模块及图标。shell 语法检查和
pip check通过。 -
UI:已检查实际渲染截图,见 ui-preview.png。
补充 GPU 验证(2026-09-10):在 RTX 4090、驱动 595.84、PyTorch 2.6.0+cu124 下,四个模型均以 cuda:0 加载。离线 smoke 的实时识别、最终识别、静音和第二次会话全部通过。该公开音频长 5.55 秒,本次模型加载 15.28 秒、最终处理 0.20 秒。启动加载仍包含模型文件读取与初始化,GPU 不保证显著缩短这部分时间。
- 真实物理麦克风的说话体验、实际设备拔插、长时间连续使用。
- GNOME Wayland 上的窗口置顶/定位和系统剪贴板;当前验证会话为 X11。
- 多种中文口音、中英混合技术术语的准确率。
- 真实 CUDA OOM 场景;自动恢复的控制链路已用注入异常验证,没有人为耗尽本机 GPU 显存。
没有将未执行的硬件测试标为通过;Qt/文件音频模拟测试不能替代用户对着麦克风说话。