Skip to content

Commit 745f970

Browse files
meizhong986claude
andcommitted
tools(fw-diag): add G_PROD_CL30 + H_PROD_NOCL chunk_length isolation variants
Adds two new PARAM_VARIANTS to fw_diagnostic_suite.py for isolating the chunk_length=30 parameter effect on Faster-Whisper transcription. Background: during v1.8.13 acceptance testing, a hypothesis emerged that chunk_length=30 (set only on the aggressive preset since the 2025-12-19 ctranslate2 divide-by-zero crash fix, commit 9dbbdb1) might be contributing to the catastrophic empty output on JAV content. The existing 8 variants (A1, A2, A, B, C, D, E, F) all hard-coded chunk_length=30 in _base_params(), so the without-chunk_length case had never been measured. New variants: G_PROD_CL30 — v1.8.13 production aggressive preset values verbatim (faster_whisper.py:304-343), with chunk_length=30. Acts as the baseline for the isolation test. H_PROD_NOCL — IDENTICAL to G_PROD_CL30 except chunk_length=None. Tests whether removing chunk_length helps or hurts. Both use the documented v1.8.13 production aggressive params: beam_size=3, best_of=2, patience=2.0 temperature=[0.0, 0.17] compression_ratio_threshold=2.6 log_prob_threshold=-1.0 no_speech_threshold=0.84 repetition_penalty=1.3, no_repeat_ngram_size=3 Empirical result (whisperseg + large-v2, same audio): G_PROD_CL30 (chunk_length=30): 33 segments / 12 of 21 groups (42.86% empty) H_PROD_NOCL (chunk_length=None): 0 segments / 0 of 21 groups (100% empty) Conclusion: chunk_length=30 is NOT a bug. Removing it produces 100% empty output. The v1.8.10 ctranslate2 crash fix value is correct as-is. This empirical result is preserved in this diagnostic infrastructure so future investigations can re-run quickly. Side benefit: G_PROD_CL30's success (33 segments) at large-v2 led directly to the discovery that the actual v1.8.13 regression was the model version (large-v3 default), not chunk_length. See fix(asr): revert default model commit (ad22a6e). Test artifacts: test_media/1813 acceptance/F4/DIAG_FW/chunk_length_test/ File: tools/fw_diagnostic_suite.py (PARAM_VARIANTS dict additions after Run F) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 42e7415 commit 745f970

1 file changed

Lines changed: 35 additions & 0 deletions

File tree

tools/fw_diagnostic_suite.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -394,6 +394,41 @@ def _base_params(language: str = DEFAULT_LANGUAGE) -> Dict[str, Any]:
394394
"no_speech_threshold": 0.6,
395395
"compression_ratio_threshold": 2.4,
396396
},
397+
# Run G_PROD_CL30 — v1.8.13 production aggressive preset EXACTLY,
398+
# with chunk_length=30 (current production value). This is the baseline
399+
# for the chunk_length isolation test (compare against H_PROD_NOCL).
400+
# Source: whisperjav/config/components/asr/faster_whisper.py:304-343
401+
# (FasterWhisperOptions["aggressive"]).
402+
"G_PROD_CL30": {
403+
**_base_params(),
404+
"beam_size": 3, # v1.8.12 retune
405+
"best_of": 2, # v1.8.12.post1 fix
406+
"patience": 2.0,
407+
"temperature": [0.0, 0.17], # v1.8.10-hf3 light fallback
408+
"compression_ratio_threshold": 2.6,
409+
"log_prob_threshold": -1.0,
410+
"no_speech_threshold": 0.84, # v1.8.12 retune
411+
"repetition_penalty": 1.3,
412+
"no_repeat_ngram_size": 3,
413+
"chunk_length": 30, # v1.8.10 ctranslate2 crash fix (this variant)
414+
},
415+
# Run H_PROD_NOCL — IDENTICAL to G_PROD_CL30 except chunk_length=None.
416+
# Tests the user's hypothesis that chunk_length=30 contributes to the
417+
# empty-output pathology. If H produces meaningfully more output than G,
418+
# chunk_length is implicated.
419+
"H_PROD_NOCL": {
420+
**_base_params(),
421+
"beam_size": 3,
422+
"best_of": 2,
423+
"patience": 2.0,
424+
"temperature": [0.0, 0.17],
425+
"compression_ratio_threshold": 2.6,
426+
"log_prob_threshold": -1.0,
427+
"no_speech_threshold": 0.84,
428+
"repetition_penalty": 1.3,
429+
"no_repeat_ngram_size": 3,
430+
"chunk_length": None, # ← THE TEST: remove chunk_length
431+
},
397432
}
398433

399434

0 commit comments

Comments
 (0)