Karaoke playback (Transcript viewer)¶
Theme D provides full-file karaoke reading on the Transcript page via the
CCv2 reader workspace (default-on). The legacy clip-scoped iframe player
remains available when TX_READER_WORKSPACE_COMPONENT=0.
Behaviour (reader workspace, default)¶
Open a transcript with a resolved audio file. The reader mounts above the turns/segments tabs and plays the source recording (not a 60s extract).
Word-by-word highlight and click-a-word → seek use absolute
words[]timings when coverage is honest (same rules as clip karaoke).When timings are missing, incomplete, or nulled by corrections, the reader uses segment-level highlight only and shows an honesty caption — timings are never invented.
Follow-along scroll keeps the active turn in view while audio plays.
Chapter Jump / Play still work; Play seeks the reader and starts playback when the workspace is mounted.
Correct mode disables the reader and uses the clip player +
viewer_editword selection (editing does not depend on the loopback media route).
Rollback (clip player)¶
Set TX_READER_WORKSPACE_COMPONENT=0 (or false / off) to restore the
previous clip-scoped player:
Press ▶ on a Turns/Segments line (or chapter Play).
The sticky player loads that segment clip (ffmpeg extract, 60s cap).
Karaoke rules match the reader; words beyond the clip window are not timed.
Honesty / limits¶
Playhead stays browser-local; it is not streamed into Streamlit session state.
Full-file audio is served from a loopback-only HTTP route (
127.0.0.1, session token). It does not work when Streamlit binds a non-loopback host or over HTTPS without a matching media URL.Very large transcripts may omit per-word timings in the JSON payload (
word_timing_omitted); playback and segment highlight still work.Speaker ID clip extracts are unchanged (ClipService 60s cap).