From 944deb40ab42147c21be29b2e74bbb6e3981e083 Mon Sep 17 00:00:00 2001 From: liwenhao2 Date: Wed, 16 Sep 2026 15:33:19 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8C=89=E7=94=A8=E6=88=B7=E5=86=B3=E7=AD=96?= =?UTF-8?q?=E6=94=B9=E5=9B=9E2=E7=A7=92=E5=BF=AB=E9=80=9F=E9=80=9A?= =?UTF-8?q?=E9=81=93(=E6=98=8E=E7=A1=AE=E6=8E=A5=E5=8F=97=E7=9F=AD?= =?UTF-8?q?=E7=AA=97=E8=AF=AF=E5=88=87=E7=8E=87):fastWin=3D32000/fastMin?= =?UTF-8?q?=3D24000/fastRollDrop=3D0.32=E5=9B=9E=E5=BD=92;=E6=B3=A8?= =?UTF-8?q?=E5=86=8C=E8=A1=A8=E5=A4=8D=E7=94=A8=E7=BC=96=E5=8F=B7=E3=80=81?= =?UTF-8?q?=E5=88=A4=E5=AE=9A=E9=93=BE=E5=B9=B6=E5=9B=9E=E8=87=AA=E6=84=88?= =?UTF-8?q?=E3=80=813s=E5=86=B7=E5=8D=B4=E4=B8=89=E9=81=93=E6=8A=A4?= =?UTF-8?q?=E6=8C=81=E4=BF=9D=E7=95=99;=E6=B3=A8=E9=87=8A=E7=95=99?= =?UTF-8?q?=E6=A1=A3:v8.1=E6=95=99=E8=AE=AD=E4=B8=8E=E4=B8=A4=E4=BB=BD?= =?UTF-8?q?=E7=8E=B0=E5=9C=BA=E8=AF=81=E6=8D=AE,=E5=9B=9E4s/=E6=8A=AC?= =?UTF-8?q?=E9=98=88=E5=80=BC=E5=8D=B3=E5=94=AF=E4=BA=8C=E6=97=8B=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/k2fsa/sherpa/onnx/MainActivity.kt | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 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 88253e2..6f12324 100644 --- a/app/src/main/java/com/k2fsa/sherpa/onnx/MainActivity.kt +++ b/app/src/main/java/com/k2fsa/sherpa/onnx/MainActivity.kt @@ -221,14 +221,17 @@ class MainActivity : AppCompatActivity() { private val onsetMinSamples = 19200 // 1.2s 开口窗 // 喂料恒定滞后(2026-09-16):识别流滞后 1.2s 喂入,切点前的音频可改道; // 全局字幕延迟 ~1.2s 的代价换取换人零串行 - // 快速滚动通道(2026-09-16 用户拍板乐观快切):4s 窗(与主通道同源 - // 同尺寸——base 模型短窗(≤2s)同人相似度 0.05~0.7 狂震是 v8.1 - // 换人风暴的根因,勿再踩)/1s 周期(唯一提速来源)/0.35 与主通道同款; - // 占号前先查注册表复用编号;准确复核只善后,切错由判定链并回自愈 + // 快速滚动通道(2026-09-16 用户拍板乐观快切,并明确选回 2s 窗): + // 2s 尾窗/1s 周期/0.32 即切——检测最快(B 开口 1~2s 内可见),代价是 + // base 模型短窗同人相似度狂震(v8.1 案、现场 90s 7 次误切)会带来 + // 较高误切率;护持有三道:占号前查注册表复用编号、判定链并回自愈、 + // 3s 冷却。若误切闪烁不可接受,唯二旋钮:fastWinSamples 提回 4s 或 + // fastRollDrop 抬高 private val fastRollEnabled = true + private val fastRollDrop = 0.32f // 2s 窗专用阈值(用户选回) private val fastStepSamples = 16000 // 1s - private val fastWinSamples = 64000 // 4s 窗(全窗) - private val fastMinSamples = 48000 // ≥3s 才判(同 judgeMinSamples) + private val fastWinSamples = 32000 // 2s 尾窗 + private val fastMinSamples = 24000 // ≥1.5s 才判 private val feedLagSamples = 24000 // 1.5s:覆盖判定链(1.2s采集+计算)的 // 余量,开口渗漏≈0;全局字幕延迟即此值,调参范围 1.2~1.5s @Volatile private var onsetSeq = 0L // 行切换/会话开始作废在途开口判定 @@ -745,7 +748,7 @@ class MainActivity : AppCompatActivity() { tailF, sampleRateInHz) ?: return@post if (rseq != onsetSeq) return@post val sim = SpeakerRecognition.similarity(emb, anchor) - if (sim >= speakerSwitchDrop) return@post + if (sim >= fastRollDrop) return@post val active = activeLabelForWindow // 先查注册表:认出当前人 → 销案(白捡的防护); // 认出别人 → 复用其编号;彻底陌生才发新号