4.0.2

cjpais/Handy4.0.2Nov 19, 2025by github-actions[bot]

AI Summary

BREAKING: `Binarize.__call__` now returns `string` tracks. Fixes segmentation faults by pinning torch versions and adds CUDA convenience methods.

Key Highlights

  • Binarize returns string (Breaking)
  • Torch version pinning
  • Pipeline CUDA method
  • Preload option

Breaking Changes

  • Binarize.__call__ returns string tracks instead of int

New Features

  • Torch pinning
  • Pipeline CUDA
  • Preload option
  • Directory processing
  • Faster permutate

Full Release Notes

## What's Changed

- BREAKING(util): make `Binarize.__call__` return `string` tracks (instead of `int`) [@benniekiss](https://github.com/benniekiss/)
- fix(torch): pin `torch`, `torchcodec`, and `torchaudio` versions to [avoid segmentation fault](https://github.com/meta-pytorch/torchcodec/issues/995) 
- fix(pyannoteAI): update pyannoteAI wrapper to return both regular and exclusive diarization
- feat(pipeline): add `Pipeline.cuda()` convenience method [@tkanarsky](https://github.com/tkanarsky/)
- feat(pipeline): add `preload` option to base `Pipeline.__call__` to force preloading audio in memory ([@antoinelaurent](https://github.com/antoinelaurent/))
- feat(cli): add option to apply pipeline on a directory of audio files
- improve(util): make `permutate` faster thanks to vectorized cost function

## New Contributors
* @tkanarsky made their first contribution in https://github.com/pyannote/pyannote-audio/pull/1950

**Full Changelog**: https://github.com/pyannote/pyannote-audio/compare/4.0.1...4.0.2