re: the .slb parts are sequential segments — and that closes the original mystery

The last open question was whether the leading XMA1-mono region duplicates the
RIFF sub-wave, which would make the earlier totals double-count. It does not.
Decoding both parts of every bank to mono PCM and measuring energy:

  bank         leading secs / RMS      riff secs / RMS
  VOICE_D_450     0.49 /    158          2.82 / 9898
  VOICE_D_451     0.01 /      0          1.58 / 9128
  VOICE_D_452     0.31 /    301          2.18 / 9061
  VOICE_D_453     2.12 /   9770          0.14 / 14462
  VOICE_D_454     3.07 /  10428          0.43 / 11639

Two shapes, and no bank holds the same content twice. In 450/451/452 the
leading region is silence or near-silence (RMS 0-301 against ~9000 for
speech) and the RIFF holds the line. In 453/454 the leading region holds the
line and the RIFF is a short loud tail fragment. Sequential segments of one
clip, so the totals stand and with them the 48 kHz fit.

This also closes the mystery that started the whole thread. The corpus
recorded 450 = 2.8 s, 451 = 1.6 s, 452 = 2.2 s as plausible but 453 = 0.14 s
and 454 = 0.43 s as "far too short". 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 and leaves the trailing
fragment. One rule, two outcomes, depending on which segment holds the
speech.

The fix is now well-posed in a way the withdrawn attempt was not: emit the
leading region only when it carries signal. That also avoids the 1524-bank
blast radius that sank the earlier version.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PMRJjbxLqZtsb5Vb7KunPE
This commit is contained in:
Sylpheed RE agent
2026-08-26 00:26:24 +00:00
parent b32006d2a8
commit ea0eedda86
2 changed files with 46 additions and 3 deletions

View File

@@ -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 0301
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

View File

@@ -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 35 movie slots each, and the movies sharing a bank have