记录三模型话轮检测实验、44点评估及延迟对比
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
本报告为旧版结束信号回放诊断;最新结果请看 work-data-can-reply,仅评价标注点 can_reply_now。
|
||||
Smart Turn v3.2 / Pipecat 工作数据回测
|
||||
运行日期:2026-10-12
|
||||
|
||||
范围与输入
|
||||
6 通录音、44 个标注判断点,人工标签 0/1 各 22 个。原始标注未修改。
|
||||
使用 Pipecat 1.12.0 实际 Silero VAD、BaseSmartTurn 缓存及 LocalSmartTurnAnalyzerV3 推理实现。
|
||||
用户音频使用原始 8 kHz 双声道录音的第 1 声道(代码索引 0),通过转写角色区间的能量对比选择。
|
||||
VAD:confidence=0.7,min_volume=0.6,start_secs=0.2,stop_secs=0.2。
|
||||
Smart Turn:pre_speech_ms=500,max_duration_secs=8,stop_secs=3,阈值 probability > 0.5。
|
||||
32 ms 音频帧,媒体时钟;VAD 与周期性状态重置使用媒体时间。模型推理前重采样到 16 kHz,不足 8 秒前补零。
|
||||
|
||||
两个输出的含义
|
||||
strategy_prediction 是标注时刻是否保留音频结束信号:VAD 停止时自动推理,模型拒绝保留缓存,模型通过清空缓存,续说重置静音计时与结束信号,3 秒非说话累计超时强制结束。
|
||||
point_probability 是在准确 decision_ms 额外请求的诊断分数。该请求不改变自然策略回放。7 个点使用仍活跃的话轮起点;另外 37 个点自然策略已完成,诊断请求使用最近已完成片段的起点延伸至该标注时刻,并明确标为 previous_completed_turn。
|
||||
因此 point_probability 不一定是线上实际触发时的概率;分析线上音频策略应看 strategy_prediction、strategy_last_action_ms、strategy_probability 和 events.csv。
|
||||
|
||||
按当前人工标签进行探索性比较
|
||||
音频策略:27/44 正确,点级准确率 61.36%。
|
||||
人工允许接话 22 个:正确放行 21 个,误阻止 1 个,检出率 95.45%。
|
||||
人工要求等待 22 个:正确等待 6 个,误放行 16 个,误放行率 72.73%。
|
||||
额外标注点诊断查询:26/44 正确,误放行 18/22,误阻止 0/22;不能将此分数等同自然策略线上行为。
|
||||
|
||||
按标签来源分组(音频策略)
|
||||
xlsx_draft:29 点,正确 21 点,误放行 7/11,误阻止 1/18。
|
||||
未填标注员/置信度的新增标注:15 点,正确 6 点,误放行 9/11,误阻止 0/4。
|
||||
数据中没有明确的回听确认状态,以上均为探索性结果,不属于正式准确率验收。
|
||||
|
||||
错误分析
|
||||
1. 17 个 mid_turn_pause 中误放行 15 个;5 个 unfinished_expression 中误放行 1 个。
|
||||
2. 16 个误放行点最后的结束信号全部为 model_complete,没有由 silence_timeout 导致。当前主要失败发生在模型接受短暂停顿时,延长 3 秒兜底本身不会阻止这些模型提前通过。
|
||||
3. 模型一旦提前给出 Complete,缓存会清空;这时就无法继续使用原本应保留的完整用户话轮起点。后续续说从新检测的发言起点重新累计。
|
||||
4. 872a1e67 通话 44.810 秒标注“帕萨特”为等待,策略在 43.104 秒已判 Complete,实际事件概率 0.97194;45.581 秒和 47.187 秒标注点仍保留同一结束信号。三个点是相关观察,不是三个独立静音区间错误。
|
||||
5. 40ae686c 通话 67.943 秒标注等待,策略在 66.848 秒已判 Complete,实际事件概率 0.70402。
|
||||
6. 唯一误阻止:2c83253a 通话 88.482 秒,标签允许回复,但 VAD 在该点仍是 speaking,策略还未触发停止推理;额外诊断概率为 0.95403。这是触发时机与标签时刻的差异。
|
||||
|
||||
数据核对发现
|
||||
cb3238dc 的 13.540 秒标签文本为“辽宁葫芦岛”,但该文本的用户转写从 16.600 秒开始;应优先回听核对判断点或文本。
|
||||
e304f740 的 11.531 秒有“姓赵”的标签和 VAD 音频起点,但 asr_history 没有对应的早期用户记录。
|
||||
上述两个点保留音频预测,history_issue 单独标记;排除它们后的 42 点策略准确率为 59.52%,误放行仍为 16/22。
|
||||
第 1 声道可能仍有机器人回声或重叠语音,未做基于未来转写的消音或人声分离。
|
||||
|
||||
解释边界与后续
|
||||
没有 ASR 返回/最终确认日志,因此未模拟默认 wait_for_transcript=True 的转写等待、无 VAD 转写兜底及 UserTurnController 的 5 秒超时。本次是音频检测部分回放。
|
||||
strategy_prediction 是选定点的状态快照;用户恢复说话后信号会被清除,快照可能看不到更早已经发生的错误结束。缺少完整话轮/静音区间真值,不能计算正式区间误抢话率或平均结束等待时间。
|
||||
建议先回听确认新增负例及两个对齐问题,再对更高概率阈值或更长 VAD stop_secs 重新进行完整回放。不能只改 CSV 分数阈值推算策略效果,因为判定变化会改变后续缓存起点。
|
||||
|
||||
文件
|
||||
predictions.csv:44 个点的标签、诊断分数、音频截取起点/长度、自然策略状态与事件时间。
|
||||
events.csv:VAD 起止、模型 Complete、3 秒兜底事件。
|
||||
errors.csv:任一输出与当前人工标签不一致的点;不只包含策略错误。
|
||||
summary.json:指标、分组统计、版本、参数、模型/源码/输入 SHA256 和口径说明。
|
||||
|
||||
验证
|
||||
保留首段起点并在续说时重置静音计时、8 秒截断、3 秒超时清空缓存,均通过实际 Pipecat 缓存实现测试。
|
||||
Reference in New Issue
Block a user