本报告为旧版结束信号回放诊断；最新结果请看 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 缓存实现测试。
