You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit c2c44ca
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: plugins/Wzdhehe/html2video-for-mcode/CHANGELOG.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,6 +7,7 @@
7
7
-**New optional field `clauses[].say`** — the spoken form of that sentence. `text` remains the on-screen/subtitle form and keeps the natural written form (Arabic numerals, original orthography — spelled-out digits like `八十二点三` belong in `say`, never on screen). **TTS input and the ASR checklist expectation are always `say ?? text`**; the burned-in subtitles and `out/subs.srt` always come from `text`. `say` propagates through `plan-timings` into `timings.json` (which is what `build-video --asr` reads); `say` applies to the main line only (`text2` stays display-only).
8
8
-**Year-reading gate (plan-timings, zh/yue):** a clause whose effective spoken text (`say ?? text`) contains a four-digit year followed by 年 gets a warning that names the digit-by-digit broadcast form and hands over the ready-to-paste `say` value (`加 say:"二零二六年…"`). The gate is deliberately narrow — whether a number reads digit-by-digit or as an integer is intent (`2026年` digit-by-digit, `2026点` as an integer), so only the unambiguous year shape is gated and the rest of the number discipline lives in the docs (SKILL.md schema section + tts-and-timing.md, with all three reported examples).
9
9
-**Tests +1 → 274 in fifteen files:** the year gate (no-`say` named with the paste-ready form / with-`say` silent / `en` not over-warned / `say` passed through to timings verbatim and never invented for `say`-less clauses), and the smoke pipeline now runs `build-video --asr` on a `say`-bearing clause and asserts the checklist expects the spoken form while the srt keeps the display form (`say` must not leak into subtitles). Each guard red-proofed: disabling the year gate, dropping the `say` propagation, or reverting the checklist to `c.text` reddens exactly its own case.
10
+
- **Round-24 self-review corrections (same release):** the two-axis review of this increment found four real items in the fix itself, all closed here — ① **clause-start allocation weighted by the display form**: the audio speaks `say` ("82.3%" shows 5 chars, "百分之八十二点三" speaks 8), so time weights, per-clause `chars` and the pacing check now use `say ?? text` (subtitle-wrap geometry still uses `text` — the pill is on screen); the year-gate test now pins the weighted start against both candidate formulas. ② the year gate's regex only matched `19xx/20xx` while the comments claimed "four-digit year" — now any `\d{4}年` (1897 warns too). ③ the zh-guard used the layout metric `emPer===1` as a language proxy — replaced by an explicit `yearGate` flag on `zh`/`yue` (unknown-language fallback stays ungated). ④ two `evals.json` cases still taught the old "write the spoken form into the narration text" move (the EN number-swap line and the ASR-mismatch fix) — both now teach the `say` mechanism. Each correction red-proofed (weight reverted → weighted-start assert red; regex reverted → 1897 red; gate off → warn red).
0 commit comments