diff --git a/docs/re/BACKLOG.md b/docs/re/BACKLOG.md index 119bb3a1..d599a1ed 100644 --- a/docs/re/BACKLOG.md +++ b/docs/re/BACKLOG.md @@ -1048,9 +1048,18 @@ premise was wrong.** are cleared for take-off!", the same for s02A/s07A/s08A/s13A. Someone expecting a stage-13-specific line would call the generic one wrong while the binding is right. - ❔ Still open: whether the leading XMA1-mono region is *additional* audio or an - alternate take of the same line — the totals above add it to the RIFF sub-waves - and would double-count if it is a duplicate. + ✅ **(same day) The two parts are SEQUENTIAL SEGMENTS, not duplicates** — so the + totals do not double-count and the 48 kHz fit stands. Measured by RMS: + `450`/`451`/`452` have a **silent or near-silent** leading region (RMS 0–301 + against ~9 000 for speech) with the line in the RIFF; `453`/`454` have the line + in the **leading** region with a short loud tail in the RIFF. + 🎯 **That closes the original mystery.** The decoder skips everything before the + first `RIFF`. For the first three that discards only silence, so they looked + fine (2.8 / 1.6 / 2.2 s); for the last two it discards **the line itself**, + leaving 0.14 s and 0.43 s. One rule, two outcomes, depending on which segment + holds the speech. ▶️ The fix is now well-posed: emit the leading region **only + when it carries signal**, which also avoids the 1524-bank blast radius that + sank the earlier attempt. * ❌ **(2026-08-25) The `.slb` "multi-subwave" guess is REFUTED, and the voice decoder is discarding up to 87 % of a bank.** The record table gives a **direct** binding `hokyu_DS_s13A -> VOICE_D_452` where the corpus records the diff --git a/docs/re/voice-bank-leading-region.md b/docs/re/voice-bank-leading-region.md index 20779825..85c3f4e9 100644 --- a/docs/re/voice-bank-leading-region.md +++ b/docs/re/voice-bank-leading-region.md @@ -178,6 +178,40 @@ Three of the five are decisive; the other two have their only cue at 0.0 s, whic tells us nothing in either direction. So **something is genuinely missing from these banks** — independent of anything above, and now measured rather than felt. +## ✅ The two parts are SEQUENTIAL SEGMENTS — and that closes the original mystery + +The last open question was whether the leading mono region duplicates the RIFF +sub-wave (in which case adding them would double-count). It does not. Decoding +both parts of each bank to mono PCM and measuring energy: + +| bank | leading | | RIFF | | +|---|---|---|---|---| +| | secs | RMS | secs | RMS | +| `VOICE_D_450` | 0.49 | **158** | 2.82 | 9 898 | +| `VOICE_D_451` | 0.01 | **0** | 1.58 | 9 128 | +| `VOICE_D_452` | 0.31 | **301** | 2.18 | 9 061 | +| `VOICE_D_453` | 2.12 | 9 770 | 0.14 | 14 462 | +| `VOICE_D_454` | 3.07 | 10 428 | 0.43 | 11 639 | + +Two shapes, and no bank has the same content twice: + +* in `450`/`451`/`452` the leading region is **silence or near-silence** (RMS 0 to + 301 against ~9 000 for speech) — a lead-in — and the **RIFF holds the line**; +* in `453`/`454` the **leading region holds the line** and the RIFF is a short + loud tail fragment. + +So the parts are sequential segments of one clip. The totals used above do not +double-count, and the 48 kHz fit stands. + +### 🎯 Why `453` and `454` looked broken and the others did not + +This is exactly the original symptom. The corpus recorded `450` = 2.8 s, +`451` = 1.6 s, `452` = 2.2 s — plausible — but `453` = **0.14 s** and +`454` = **0.43 s**. The decoder skips everything before the first `RIFF`. For the +first three that discards only silence, so they looked fine; for the last two it +discards **the line itself**, leaving the trailing fragment. One rule, two +outcomes, depending on which segment happens to hold the speech. + ## ✅ Each shared bank is ONE generic line The banks are bound to 3–5 movie slots each, and the movies sharing a bank have