Skip to content

Commit ad22a6e

Browse files
meizhong986claude
andcommitted
fix(asr): revert default Whisper model large-v3 → large-v2 (regression)
During v1.8.13 acceptance testing (F4/F6/F7 vs F8 side-by-side on the 293-second JAV reference clip), the v1.8.12 aggressive ASR preset retune was found to interact pathologically with large-v3 on continuous-energy non-phonetic content (JAV moaning), producing 6–10 of 68 GT entries under simple Transcription Mode (~85–90% loss). The same audio + same preset values + large-v2 produced 51 entries (75% capture). Diagnostic suite (G_PROD_CL30 variant, production aggressive params verbatim) confirmed: 33 segments / 12 of 21 groups with large-v2; equivalent runs with large-v3 catastrophic. Empirical evidence summary: Run Model Entries / 68 GT F4 (whisperseg + auditok + simple) large-v3 10 ✗ F6 / F7CLI-GUI (silero + auditok) large-v3 6 ✗ F7 mine (silero + auditok) large-v3 6 ✗ F5 ensemble pass1 (silero + auditok) large-v2 52 ✓ F8 (this fix; silero + auditok) large-v2 51 ✓ Root cause: the v1.8.12 aggressive preset (no_speech_threshold=0.84, beam_size=3, best_of=2, temperature=[0.0, 0.17], compression_ratio_threshold=2.6, repetition_penalty=1.3, no_repeat_ngram_size=3, chunk_length=30) was tuned against large-v2 forensic acceptance data. large-v3's slightly different encoder/decoder behavior makes the same gate values too strict on this content distribution. Files changed: whisperjav/config/components/asr/faster_whisper.py:211 model_id "large-v3" → "large-v2" (BalancedPipeline default) whisperjav/config/components/asr/stable_ts.py:293 model_id "large-v3" → "large-v2" (Fast/Faster pipeline default) Same v1.8.12 retune mindset applies — these presets share lineage with the FasterWhisper backend. Aligning defaults avoids per-backend divergence. whisperjav/webview_gui/assets/index.html:299 GUI model dropdown selected option "large-v3" → "large-v2" Reordered options so large-v2 appears first. OpenAI-Whisper backend (config/components/asr/openai_whisper.py:178) was already on large-v2 in v1.8.12 and unchanged. Users wanting large-v3 can opt in: CLI: --model large-v3 GUI: model override checkbox + dropdown selection v1.9.x will re-run forensic acceptance against large-v3 and produce a per-engine, per-model preset variant so large-v3 can return as the default. Test artifacts: test_media/1813 acceptance/F4 (catastrophic baseline), F8 (verified fix), F4/DIAG_FW/chunk_length_test (G_PROD_CL30 vs H_PROD_NOCL diagnostic). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 73a758e commit ad22a6e

3 files changed

Lines changed: 22 additions & 4 deletions

File tree

whisperjav/config/components/asr/faster_whisper.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,19 @@ class FasterWhisperASR(ASRComponent):
208208

209209
# === ASR-specific ===
210210
provider = "faster_whisper"
211-
model_id = "large-v3"
211+
# v1.8.13: reverted large-v3 → large-v2. Empirical regression discovered
212+
# during F4/F6/F7 acceptance testing on dev_v1.8.13: the v1.8.12 aggressive
213+
# ASR preset (no_speech=0.84, beam=3, best_of=2, temperature=[0.0, 0.17],
214+
# compression=2.6, repetition_penalty=1.3, no_repeat_ngram_size=3,
215+
# chunk_length=30) produces catastrophic empty output on JAV content with
216+
# large-v3 (6–10 of 68 GT entries) but works correctly with large-v2
217+
# (33+ segments captured in diagnostic suite, 52 entries in F5 ensemble
218+
# pass1 on the same audio). The v1.8.12 preset retune was tuned against
219+
# large-v2 forensic acceptance data; the same values interact pathologically
220+
# with large-v3 on continuous-energy non-phonetic content (JAV moaning).
221+
# Until the preset is re-tuned for large-v3 in v1.9.x, large-v2 stays the
222+
# safer default. Users wanting v3 can opt in with --model large-v3.
223+
model_id = "large-v2"
212224
supported_tasks = ["transcribe", "translate"]
213225
compatible_vad = ["silero", "faster_whisper_vad", "none"]
214226

whisperjav/config/components/asr/stable_ts.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,13 @@ class StableTSASR(ASRComponent):
290290

291291
# === ASR-specific ===
292292
provider = "stable_ts"
293-
model_id = "large-v3"
293+
# v1.8.13: reverted large-v3 → large-v2 for consistency with FasterWhisper
294+
# backend (whose v1.8.12 aggressive preset retune was tuned against large-v2
295+
# forensic acceptance data and interacts pathologically with large-v3 on
296+
# JAV content — see faster_whisper.py:211 comment for full context). Stable-TS
297+
# presets share the same lineage. Aligning the default avoids per-backend
298+
# divergence; users wanting v3 can opt in with --model large-v3.
299+
model_id = "large-v2"
294300
supported_tasks = ["transcribe", "translate"]
295301
compatible_vad = ["none"] # Stable-TS has built-in VAD
296302

whisperjav/webview_gui/assets/index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -296,8 +296,8 @@ <h2>Destination</h2>
296296
</div>
297297
<div class="form-group tight-pair">
298298
<select id="modelSelection" class="form-select" disabled>
299-
<option value="large-v3" selected>large-v3</option>
300-
<option value="large-v2">large-v2</option>
299+
<option value="large-v2" selected>large-v2</option>
300+
<option value="large-v3">large-v3</option>
301301
<option value="turbo">turbo</option>
302302
</select>
303303
</div>

0 commit comments

Comments
 (0)