diff --git a/app/src/main/java/com/k2fsa/sherpa/onnx/MainActivity.kt b/app/src/main/java/com/k2fsa/sherpa/onnx/MainActivity.kt index daa7537..486ac57 100644 --- a/app/src/main/java/com/k2fsa/sherpa/onnx/MainActivity.kt +++ b/app/src/main/java/com/k2fsa/sherpa/onnx/MainActivity.kt @@ -193,10 +193,6 @@ class MainActivity : AppCompatActivity() { // 0.14~0.19,0.22 取安全带中枢——深低首票即切(无缝插话 4~6s→3~4s); // 0.22~0.35 浅低维持连续两票,毛刺照旧被误断防护拦下 private val deepLowSwitch = 0.22f - // 深疑吸收闸(2026-09-16 日志实锤):与锚点相似度低于此的窗禁止一切吸收/ - // 回拉(渐变吸收与误断防护两条链都曾在换人过渡期污染锚点,致 simA 假性 - // 回升、连续低分永远攒不满——无缝换人零触发的根因) - private val driftAbsorbMin = 0.30f // 最近邻兜底(P1 收紧,2026-09-11):精确匹配不中→top≥0.42 且领先第二名 // ≥0.06 才归入最相似身份;模糊判新人(修"错并到别人行") private val verdictFallbackMin = 0.42f @@ -744,14 +740,9 @@ class MainActivity : AppCompatActivity() { } windowPrevEmb = emb rollingLowHits = 0 - } else if (simP >= emaAbsorbMin && simA >= driftAbsorbMin) { + } else if (simP >= emaAbsorbMin) { // 只偏离锚点、紧贴上一窗 → 音量/情绪渐变, - // 更新双参考,不换行。 - // 深疑窗(与锚点 <0.30)除外:实测换人过渡期 - // 相邻窗 2s 重叠使 simP 天然 0.5~0.75,吸收会 - // 连环污染锚点致 simA 假性回升、连击永远攒 - // 不满(无缝换人零触发的根因)——深疑窗一律 - // 计入连击,不许碰锚点 + // 更新双参考,不换行 rollingLowStreak = 0 windowRefEmb = blendEmb(anchor, emb) windowPrevEmb = emb @@ -764,14 +755,11 @@ class MainActivity : AppCompatActivity() { val newLabel = rollingSpeakerSearch(emb) val active = activeLabelForWindow when { - // 误断防护:查出来就是当前人 → 毛刺,不断行,参考回拉。 - // 深疑窗(<0.30)例外:与锚点深 - // 不符时以 simA 为准、不许回拉污 - // 染,落入连击路径交给强切判定 + // 误断防护:查出来就是当前人 → + // 毛刺,不断行,参考回拉 newLabel != null && active != null && - newLabel == active && - simA >= driftAbsorbMin -> { + newLabel == active -> { windowRefEmb = blendEmb(anchor, emb) rollingLowStreak = 0 windowPrevEmb = emb