Long-file streaming and chunking strategy #8
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Mark/whisper-transcribe#8
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Smoke-tested 3.4-hour Lex Fridman episode fine (60s transcribe). But what about 8-hour files? 24-hour?
Unknowns:
What needs building:
--keep-chunksSmoke test: find or generate a 6+ hour audio file (Lex Fridman #464 is ~6h), verify end-to-end with timestamps that match continuous listening.
Cross-link: composition of this issue's streaming/chunking work with #16's chunk-resume work was audited post-merge (kanban card
t_02afa75b, fixit board). Full integration summary is on #16; follow-up code work is tracked on #21.Relevant to this issue specifically:
chunking.plan_chunksgives stable chunk indices across runs — pure function of(duration_sec, chunk_minutes), no wall clock, norandom. This is what makes #16's resume join safe: the state file matches completed work back to planned chunks by index alone.ffprobeduration jitter is tolerated. A +0.5s difference in the reported duration of the same file shifts only the final chunk'send_sec; every non-final(index, start_sec)pair is byte-identical, so a resume after a re-probe does not mis-join or re-run completed chunks.--chunk-minuteschanging between runs is hard-rejected, not silently mis-joined —state.validate_stateraises onchunk_seconds mismatch.audio_stream.decode_chunkis only tested in isolation (1-second ffmpeg sine intests/test_audio_stream.py). No test drives the streaming decode path and the resume loop together over a long file. #21 item 3 adds a 10h / crash-at-hour-7 (chunk index 14) integration test covering both halves, asserting no duplicate and no missing segments across the full timeline.