CineScribe
CineScribe generates subtitles while a movie plays. It sends Pixel Brite’s read-ahead audio to Apple’s on-device speech models, resolves their revisions, and schedules timestamped words through the existing subtitle renderer.
Read-ahead playback audio
Pixel Brite already decodes ahead to keep playback fed. CineScribe sends those same timestamped PCM buffers to SpeechTranscriber before the audio renderer plays them. The track is read and decoded once; transcription reuses the playback pipeline without a second pass.
Recognition runs ahead of the playhead, giving the model time to revise a phrase before it appears. Each buffer retains its movie timestamp; the subtitle clock follows the source audio rather than the time a recognition result arrives.
Volatile transcription
SpeechTranscriber emits a volatile draft, then revises the same audio range as more context becomes available. CineScribe keeps the stable words on screen and replaces the changed tail. It stops revising the text when SpeechTranscriber marks a result final.
The recognizer’s audio-time attributes locate words within the source. Pauses and punctuation divide them into readable cues; the renderer uses those ranges instead of spreading words evenly across a guessed duration.
Seek without carrying old words forward
A seek starts a new analysis generation at the destination’s movie timestamp. CineScribe drops queued cues from the previous generation and ignores its late recognition results. Playback, read-ahead audio, and subtitles move to the new position together.