2025-10-09 16:34:58 - 16:35:47
| 轮次 | 用户问题 | 录音时长 | ASR延迟 | LLM首响 | 音频首包 | 总延迟 | AI回复字数 |
|---|---|---|---|---|---|---|---|
| 1 | 罗素和欧拉谁更厉害? | 3034ms | 1002ms | 117ms | 466ms | 7044ms | 35字 |
| 2 | 那欧拉有什么成就? | 2172ms | 853ms | 174ms | 451ms | 5894ms | 36字 |
| 3 | 好的,我知道了 | 1969ms | 951ms | 119ms | 510ms | 4607ms | 20字 |
| 4 | 好的,谢谢 | 1782ms | 987ms | 172ms | 481ms | 4012ms | 15字 |
用户录音阶段
├─ 16:34:57.893 开始录音 (start_recording)
└─ 16:35:00.927 停止录音 (stop_recording)
└─ 录音时长: 3034ms
└─ 音频大小: 93.3KB
ASR识别阶段
├─ 16:35:00.927 发送静音触发VAD
├─ 16:35:00.824 中间识别: "罗素和欧拉谁"
├─ 16:35:01.930 最终识别: "罗素和欧拉谁更厉害?"
└─ ASR延迟: 1002ms (从停止录音到识别完成)
LLM处理阶段
├─ 16:35:02.049 TTS文本开始
├─ 16:35:02.174 首个LLM文本片段: "这"
└─ LLM首响延迟: 117ms (从ASR完成到LLM首响)
TTS音频生成
├─ 16:35:02.515 首个音频包到达 (1730 bytes)
│ └─ TTS首包延迟: 466ms (从TTS文本到首个音频)
├─ 16:35:02.560 持续接收音频包...
└─ 16:35:04.938 音频流结束
└─ 总音频: 51.7KB
└─ 音频传输时长: 2423ms
总耗时
└─ 从停止录音到AI回复完成: 7044ms
用户录音阶段
├─ 16:35:16.712 开始录音
└─ 16:35:18.884 停止录音
└─ 录音时长: 2172ms
└─ 音频大小: 69.3KB
ASR识别阶段
├─ 16:35:17.869 中间识别: "那"
├─ 16:35:18.296 中间识别: "那欧拉"
├─ 16:35:18.596 中间识别: "那欧拉有什么"
├─ 16:35:19.737 最终识别: "那欧拉有什么成就?"
└─ ASR延迟: 853ms
LLM处理阶段
├─ 16:35:19.911 TTS文本开始
├─ 16:35:20.044 首个LLM文本片段: "欧拉"
└─ LLM首响延迟: 174ms
TTS音频生成
├─ 16:35:20.362 首个音频包 (1781 bytes)
│ └─ TTS首包延迟: 451ms
└─ 16:35:22.608 音频流结束
└─ 总音频: 43.9KB
└─ 音频传输时长: 2246ms
总耗时
└─ 端到端延迟: 5894ms
用户录音阶段
├─ 16:35:33.206 开始录音
└─ 16:35:35.176 停止录音
└─ 录音时长: 1969ms
└─ 音频大小: 66.6KB
ASR识别阶段
├─ 16:35:34.557 中间识别: "好"
├─ 16:35:34.658 中间识别: "好的"
├─ 16:35:36.127 最终识别: "好的,我知道了。"
└─ ASR延迟: 951ms
LLM处理阶段
├─ 16:35:36.246 TTS文本开始
├─ 16:35:36.384 首个LLM文本片段: "嗯"
└─ LLM首响延迟: 119ms
TTS音频生成
├─ 16:35:36.756 首个音频包 (1707 bytes)
│ └─ TTS首包延迟: 510ms
└─ 16:35:37.815 音频流结束
└─ 总音频: 20.8KB
└─ 音频传输时长: 1059ms
总耗时
└─ 端到端延迟: 4607ms
用户录音阶段
├─ 16:35:43.217 开始录音
└─ 16:35:45.000 停止录音
└─ 录音时长: 1782ms
└─ 音频大小: 56.0KB
ASR识别阶段
├─ 16:35:44.641 中间识别: "好"
├─ 16:35:44.678 中间识别: "好的"
├─ 16:35:45.987 最终识别: "好的,谢谢。"
└─ ASR延迟: 987ms
LLM处理阶段
├─ 16:35:46.159 TTS文本开始
├─ 16:35:46.293 首个LLM文本片段: "不客气"
└─ LLM首响延迟: 172ms
TTS音频生成
├─ 16:35:46.640 首个音频包 (1741 bytes)
│ └─ TTS首包延迟: 481ms
└─ 16:35:47.231 音频流结束
└─ 总音频: 14.0KB
└─ 音频传输时长: 591ms
总耗时
└─ 端到端延迟: 4012ms
┌─────────────────┬──────────┬──────────┬──────────┬──────────┐
│ 环节 │ 平均值 │ 最小值 │ 最大值 │ 占比 │
├─────────────────┼──────────┼──────────┼──────────┼──────────┤
│ 录音时长 │ 2239ms │ 1782ms │ 3034ms │ 41.5% │
│ ASR识别 │ 948ms │ 853ms │ 1002ms │ 17.6% │
│ LLM首响 │ 146ms │ 117ms │ 174ms │ 2.7% │
│ TTS首包 │ 477ms │ 451ms │ 510ms │ 8.8% │
│ 音频流式传输 │ 1580ms │ 591ms │ 2423ms │ 29.3% │
├─────────────────┼──────────┼──────────┼──────────┼──────────┤
│ 端到端总延迟 │ 5389ms │ 4012ms │ 7044ms │ 100% │
└─────────────────┴──────────┴──────────┴──────────┴──────────┘
第一轮对话
第二轮对话
第三轮对话
第四轮对话
主要耗时环节(按占比排序):
ASR在用户说话过程中就开始实时识别:
随着对话轮次增加,缓存命中率提升:
| 轮次 | 回复字数 | 音频大小 | 传输时长 | 总延迟 |
|---|---|---|---|---|
| 1 | 35字 | 51.7KB | 2423ms | 7044ms |
| 2 | 36字 | 43.9KB | 2246ms | 5894ms |
| 3 | 20字 | 20.8KB | 1059ms | 4607ms |
| 4 | 15字 | 14.0KB | 591ms | 4012ms |
结论: 回复越短,总延迟越低,主要节省在音频传输阶段
ASR识别延迟 (当前 ~900ms)
TTS首包延迟 (当前 ~477ms)
音频压缩
网络优化
| 延迟范围 | 用户感受 | 本系统表现 |
|---|---|---|
| < 1秒 | 即时响应 | 无此场景 |
| 1-3秒 | 流畅对话 | 无此场景 |
| 3-5秒 | 可接受 | 第3,4轮 (4-4.6s) ✓ |
| 5-8秒 | 略慢 | 第1,2轮 (5.9-7s) |
| > 8秒 | 明显卡顿 | 无此场景 |
理想目标: 端到端延迟 < 3秒 当前状态: 平均 5.4秒 优化潜力: 如果ASR和TTS各优化300ms,可达到 ~4.7秒
| 指标 | 本系统 | 行业标准 | 状态 |
|---|---|---|---|
| ASR延迟 | ~900ms | 500-800ms | 需优化 |
| LLM首响 | ~146ms | 200-500ms | 优秀 ✓ |
| TTS首包 | ~477ms | 300-500ms | 良好 |
| 音频质量 | Opus 16kHz | 16-24kHz | 标准 ✓ |
| 流式体验 | 实时流式 | 实时流式 | 达标 ✓ |
当前系统在LLM响应速度和流式传输方面表现优秀,主要优化空间在:
通过针对性优化,理论上可将平均端到端延迟从 5.4秒 降低到 3.5-4秒,显著提升用户体验。