Files
banban/talkingq-url/docs/qwen-asr-rollout.md
T

24 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 千问 ASR 切换与部署验证
默认模型改为 `qwen-audio-3.1-asr-flash-streaming`,通过异步 DashScope recognition WebSocket 接收现有 16 kHz MP3 音频。`ALIYUN_ASR_MODEL` 可覆盖模型;`ALIYUN_ASR_URL` 可覆盖接口。旧 Gummy 热词表不自动复用,新热词表需显式配置 `ALIYUN_ASR_VOCABULARY_ID`。
结束录音时先排空发送队列和尾包,再等待最终结果;队列溢出、识别错误、未完成结果不进入正常回复链路。模型拒绝、启动/发送/结束等待均有超时。LLM/TTS 预热连接注册中断清理,覆盖连接完成后中断、连接期间中断、任务取消和已中断会话。
2026-10-12 本地验证:
- 后端 tests:215 项通过,回归运行阻止非本机网络连接。
- 真实千问 ASR:10/10 轮通过。
- 原有 `/ws`、角色/语言选择、真实千问 ASR、火山 LLM、MiniMax TTS、音频 URL 下发、HTTP 下载/Range、MP3 解码及 MySQL 历史落库:10/10 轮通过(8 轮有声对话、2 轮静音提示),共 43 段生成回复和 2 段提示音。
- 发现并修复录音中断时 LLM/TTS 客户端未关闭的问题;修复后两个角色的中断及后续恢复共 4/4 通过。
使用 `tests/fixtures/asr/manifest.json` 中的合成语音复现 ASR:
```sh
.venv/bin/python scripts/smoke_fun_asr.py tests/fixtures/asr/manifest.json --output output/asr-retest.json
.venv/bin/python -m pytest tests -q -o asyncio_default_fixture_loop_scope=function
```
完整对话脚本 `scripts/smoke_ai_dialog.py` 要求独立 MySQL 监听 `127.0.0.1:13316`,并使用测试数据库 `qwen_dialog_test`、临时设备和 `127.0.0.1:18086` 服务。它使用真实云端 API,会产生用量;本地缺少 MiniMax key 时读取已有 `test/minimax.env`,不修改 `.env`。需要 macOS `afconvert` 做音频解码。运行 `--interrupt-only` 复测中断与下一轮恢复。
以上不等于实物设备麦克风/扬声器验收,也未验证回复播放中的打断。部署只更新六个运行文件,不迁移数据库,不替换 `.env`、音频或 OTA 固件;线上测试另存执行证据。