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 b6bf1c3..7c44163 100644 --- a/app/src/main/java/com/k2fsa/sherpa/onnx/MainActivity.kt +++ b/app/src/main/java/com/k2fsa/sherpa/onnx/MainActivity.kt @@ -221,15 +221,15 @@ class MainActivity : AppCompatActivity() { private val onsetMinSamples = 19200 // 1.2s 开口窗 // 喂料恒定滞后(2026-09-16):识别流滞后 1.2s 喂入,切点前的音频可改道; // 全局字幕延迟 ~1.2s 的代价换取换人零串行 - // 快速滚动通道(2026-09-16 用户拍板乐观快切;窗长演化:2s 版三度 - // 误切风暴(单窗 20发/5min、连击闸失效——相邻窗共享 1s 音频相关性高) - // 后定案 3s 窗):3s 尾窗/1s 周期/0.32/连续两窗;嵌入稳定性较 2s 高 - // 一档,真人换声检测约 2~2.5s;仍有零星误切则先抬阈值(0.36)再议 + // 快速滚动通道(2026-09-16 用户三次拍板后终定 C:维持 2s 窗——最快档, + // 接受误切闪烁,由并回自愈兜底)。窗长演化留档:2s(风暴,单窗20发/5min) + // →3s(折中)→ 终选回 2s;护持:连续两窗/注册表复用/销案/冷却/并回自愈。 + // 若闪烁不可接受,顺序:阈值 0.32→0.36 → 窗 48000(3s) → 64000(4s) private val fastRollEnabled = true - private val fastRollDrop = 0.32f // 3s 窗阈值(不够稳先抬 0.36) + private val fastRollDrop = 0.32f private val fastStepSamples = 16000 // 1s - private val fastWinSamples = 48000 // 3s 尾窗 - private val fastMinSamples = 32000 // ≥2s 才判 + 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 // 行切换/会话开始作废在途开口判定