From 56800dab284149e140510ed9c4786a34aae752b5 Mon Sep 17 00:00:00 2001 From: mARTin-B78 Date: Wed, 12 Aug 2026 10:23:32 +0200 Subject: [PATCH] Document v1.20.21 fixes in changelog --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 247765c..3664283 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,13 @@ 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). - **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.21] — 2026-08-12 + +### Fixed +- **Split quotes with a pronoun inquit stayed Unknown.** German dialogue routinely splits as `»Ja, ungewöhnlich«` + `", antwortete er knapp."`, but every attribution rule required a literal *name* after the speech verb, so this whole class was never resolved. The antecedent is unambiguous, so it now resolves like the colon rule — to the last character named in the narration immediately before the quote. Verified against a real novel: resolves the reported case (→ Alrik) plus another, with no LLM call. +- **The "Repair mislabeled dialogue" pass used the wrong prompt unless launched from the menu.** Called from Auto-repair or programmatically it fell back to the general casting prompt rather than the verification prompt, which is the one written for "is this narration actually speech?". It now defaults to the verification prompt in every entry path. +- **Sentences split apart by quoted terms are rejoined.** German uses `» «` for titles and terms as well as speech ("…um »den gewundenen Weg der Krieger und Häuptlinge« handelte…"), and the casting model read those as a dialogue boundary, cutting the sentence into three fragments that no attribution pass could repair. Consecutive narration segments are now rejoined when the break is grammatically impossible, with a guard so genuine split quotes are not fused into narration. + ## [1.20.18] — 2026-08-12 ### Fixed