From 2b622b68bdd9432d1227dccbd270965e34590cf5 Mon Sep 17 00:00:00 2001 From: liwenhao2 Date: Wed, 16 Sep 2026 10:34:31 +0800 Subject: [PATCH] =?UTF-8?q?=E9=94=9A=E7=82=B9=E6=B1=A1=E6=9F=93=E6=A0=B9?= =?UTF-8?q?=E6=B2=BB:=E6=B7=B1=E7=96=91=E7=AA=97=E7=A6=81=E5=90=B8?= =?UTF-8?q?=E6=94=B6(driftAbsorbMin=3D0.30)=E2=80=94=E2=80=94=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E5=AE=9E=E9=94=A4=E6=8D=A2=E4=BA=BA=E8=BF=87=E6=B8=A1?= =?UTF-8?q?=E6=9C=9F=E7=9B=B8=E9=82=BB=E7=AA=972s=E9=87=8D=E5=8F=A0?= =?UTF-8?q?=E4=BD=BFsimP=E5=A4=A9=E7=84=B6=E2=89=A50.5,=E6=B8=90=E5=8F=98?= =?UTF-8?q?=E5=90=B8=E6=94=B6+=E8=AF=AF=E6=96=AD=E9=98=B2=E6=8A=A4?= =?UTF-8?q?=E4=B8=A4=E9=93=BE=E8=BF=9E=E7=8E=AF=E6=8A=8A=E6=96=B0=E4=BA=BA?= =?UTF-8?q?=E5=A3=B0=E7=BA=B9=E5=90=B8=E6=94=B6=E8=BF=9B=E9=94=9A=E7=82=B9?= =?UTF-8?q?,simA=E5=81=87=E6=80=A7=E5=9B=9E=E5=8D=870.18=E2=86=920.71,?= =?UTF-8?q?=E8=BF=9E=E7=BB=AD=E4=BD=8E=E5=88=86=E6=B0=B8=E8=BF=9C=E6=94=92?= =?UTF-8?q?=E4=B8=8D=E6=BB=A1,=E6=97=A0=E7=BC=9D=E6=8D=A2=E4=BA=BA?= =?UTF-8?q?=E9=9B=B6=E8=A7=A6=E5=8F=91;=E4=B8=A4=E5=A4=84=E4=BF=AE:?= =?UTF-8?q?=E6=B8=90=E5=8F=98=E5=90=B8=E6=94=B6=E5=8A=A0simA=E2=89=A50.30?= =?UTF-8?q?=E6=9D=A1=E4=BB=B6,=E8=AF=AF=E6=96=AD=E9=98=B2=E6=8A=A4?= =?UTF-8?q?=E5=9B=9E=E6=8B=89=E5=90=8C=E7=90=86,=E6=B7=B1=E7=96=91?= =?UTF-8?q?=E7=AA=97=E4=B8=80=E5=BE=8B=E8=AE=A1=E5=85=A5=E8=BF=9E=E5=87=BB?= =?UTF-8?q?=E4=BA=A4=E5=BC=BA=E5=88=87=E5=88=A4=E5=AE=9A;=E6=B7=B1?= =?UTF-8?q?=E4=BD=8E0.22=E4=B8=80=E7=A5=A8/=E6=B5=85=E4=BD=8E=E4=B8=A4?= =?UTF-8?q?=E7=A5=A8=E6=9C=BA=E5=88=B6=E4=B8=8D=E5=8F=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/k2fsa/sherpa/onnx/MainActivity.kt | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) 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 486ac57..daa7537 100644 --- a/app/src/main/java/com/k2fsa/sherpa/onnx/MainActivity.kt +++ b/app/src/main/java/com/k2fsa/sherpa/onnx/MainActivity.kt @@ -193,6 +193,10 @@ 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 @@ -740,9 +744,14 @@ class MainActivity : AppCompatActivity() { } windowPrevEmb = emb rollingLowHits = 0 - } else if (simP >= emaAbsorbMin) { + } else if (simP >= emaAbsorbMin && simA >= driftAbsorbMin) { // 只偏离锚点、紧贴上一窗 → 音量/情绪渐变, - // 更新双参考,不换行 + // 更新双参考,不换行。 + // 深疑窗(与锚点 <0.30)除外:实测换人过渡期 + // 相邻窗 2s 重叠使 simP 天然 0.5~0.75,吸收会 + // 连环污染锚点致 simA 假性回升、连击永远攒 + // 不满(无缝换人零触发的根因)——深疑窗一律 + // 计入连击,不许碰锚点 rollingLowStreak = 0 windowRefEmb = blendEmb(anchor, emb) windowPrevEmb = emb @@ -755,11 +764,14 @@ class MainActivity : AppCompatActivity() { val newLabel = rollingSpeakerSearch(emb) val active = activeLabelForWindow when { - // 误断防护:查出来就是当前人 → - // 毛刺,不断行,参考回拉 + // 误断防护:查出来就是当前人 → 毛刺,不断行,参考回拉。 + // 深疑窗(<0.30)例外:与锚点深 + // 不符时以 simA 为准、不许回拉污 + // 染,落入连击路径交给强切判定 newLabel != null && active != null && - newLabel == active -> { + newLabel == active && + simA >= driftAbsorbMin -> { windowRefEmb = blendEmb(anchor, emb) rollingLowStreak = 0 windowPrevEmb = emb