v0.2.2
Fix diarization OOM on long audio files
Breaking change: None — drop-in fix.
What changed
diarize()now usesmodel.generate_stream()(chunked streaming) instead ofmodel.generate()(full-file, O(n²) memory)- Added
_merge_diarization_segments()for cross-chunk speaker segment merging - 9 new unit tests + 2 integration tests with 82-min public domain podcast
Before/After
- Before: 48-min file →
[metal::malloc] Attempting to allocate 83404284800 bytes(OOM) - After: 48-min file → 12.6s diarization (289 chunks, 712 segments, 4 speakers)
Other fixes
- Fixed
test_cli.pyhardcoded version string - Updated CLAUDE.md with current line counts