Document the three-book casting validation (v1.20.35)
Re-cast all three volumes end to end and compared each against its existing cast. Book 03 finished at 9 unknown, below the 25-line cast it replaced, and its fused multi-turn segments — one voice reading both sides of an exchange — fell from 60 to 6. Speaker counts stayed level with the hand-corrected books instead of inflating, confirming the phantom-speaker filter and the label consolidation both hold. Agreement with the hand-corrected books is 81-82%. The largest remaining error is systematic ping-pong inversion, where a whole exchange alternates onto the wrong speaker, followed by epithets that share no tokens with the canonical name. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
35cb21ad70
commit
2013157bda
16
CHANGELOG.md
16
CHANGELOG.md
@ -22,6 +22,22 @@ Follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) · versioned wi
|
|||||||
- **Emotion instructions are now always written in English**, even for non-English voices (the spoken text and the native-accent clause stay in the book's own language). Confirmed by controlled A/B testing — same line, same voice, only the instruct language varying — that Qwen3-TTS follows English emotion instructions far more reliably: German instructs produced barely-differentiated output, while English instructs yield a clean, correctly-ordered prosodic gradient (whisper 128 Hz → sad 142 → neutral 179 → scared 203 → happy 225 → angry 269 Hz), with sensible duration changes too (sad slowest, scared fastest).
|
- **Emotion instructions are now always written in English**, even for non-English voices (the spoken text and the native-accent clause stay in the book's own language). Confirmed by controlled A/B testing — same line, same voice, only the instruct language varying — that Qwen3-TTS follows English emotion instructions far more reliably: German instructs produced barely-differentiated output, while English instructs yield a clean, correctly-ordered prosodic gradient (whisper 128 Hz → sad 142 → neutral 179 → scared 203 → happy 225 → angry 269 Hz), with sensible duration changes too (sad slowest, scared fastest).
|
||||||
- **Fish-Speech generation parameters (`temperature` / `top_p` / `repetition_penalty`) were never forwarded.** Every Fish-Speech line synthesized at the server's fixed defaults, ignoring the app's per-backend stability settings — the only backend not routed through the shared `_apply_tts_extra_params` helper.
|
- **Fish-Speech generation parameters (`temperature` / `top_p` / `repetition_penalty`) were never forwarded.** Every Fish-Speech line synthesized at the server's fixed defaults, ignoring the app's per-backend stability settings — the only backend not routed through the shared `_apply_tts_extra_params` helper.
|
||||||
|
|
||||||
|
## [1.20.35] — 2026-08-12
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- **Phantom characters invented from German noun phrases.** The caster emitted fragments of noun phrases as speakers — "in seinem Inneren" → `Inneren`, "die Hand" → `Hand`, "mein Geliebter" → `Geliebten`, "der Wind" → `Wind`. Each became a cast entry with its own voice while the real speaker's line was lost to a phantom; measured against a hand-corrected book this was much of why a fresh cast produced 73 speakers where the human had 62. Such lines are now reset to Unknown — visibly unresolved and still recoverable by the repair passes — rather than silently wrong.
|
||||||
|
|
||||||
|
### Validation
|
||||||
|
Whole-book re-casts of all three volumes, compared against their existing casts with `scripts/compare_casts.py`:
|
||||||
|
|
||||||
|
| Book | Fresh cast | After auto-repair | Existing cast | Phantoms |
|
||||||
|
|------|-----------|-------------------|---------------|----------|
|
||||||
|
| 01 | 286 unknown | 34 | 11 (hand-corrected) | none |
|
||||||
|
| 02 | 126 unknown | 7 | 0 (hand-corrected) | 5, then fixed |
|
||||||
|
| 03 | 265 unknown | **9** | 25 | none |
|
||||||
|
|
||||||
|
Book 03 finished below the cast it replaced, and its fused multi-turn segments — one voice reading both sides of an exchange — dropped from 60 to 6. Speaker counts stayed level with the manual casts rather than inflating, confirming the phantom filter and the label consolidation. Agreement with the hand-corrected books is 81–82%; the largest remaining error is systematic ping-pong inversion, where a whole exchange alternates onto the wrong speaker, plus epithets ("Amazone" → Lysandra) that share no tokens with the canonical name.
|
||||||
|
|
||||||
## [1.20.34] — 2026-08-12
|
## [1.20.34] — 2026-08-12
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user