- BREAKING: drop support to
Python
< 3.10 - BREAKING: switch to native namespace package
- setup: switch to
uv
- fix: fix return type of Timeline.iter (@domsmrz)
- improve: remove MatplotlibDeprecationWarning (@kimdwkimdw)
- BREAKING: remove support for JSON serialization
- feat: add Annotation.write_lab method (@FrancescoBonzi)
- feat: add Annotation.to_{rttm|lab} and Timeline.to_uem serializers (@juanmc2005)
- setup: exclude tests from package (@kimdwkimdw)
- BREAKING: remove empty segments in Timeline.init
- BREAKING: Timeline.extent() returns Segment(0.0, 0.0) for empty timelines
- feat: add "duration" option to Annotation.discretize
- fix: handle various corner cases in 1D pdist and cdist
- fix: fix documentation of {Timeline | Annotation}.bool
- test: check robustness to Segment.set_precision
- feat: add support for visualizing 3D SlidingWindowFeatures (#66)
- feat: add Annotation.discretize (#65)
- fix: fix automatic deployment of documentation
- feat: add Segment.set_precision to automatically round start/end timestamps (@kimdwkimdw)
- feat: add methods {Timeline|Annotation}.{extrude|get_overlap} (@hadware)
- feat: add support for
Segment
inone_hot_encoding
- feat: make notebook visualization support an optional installation via the [notebook] extra_requires (@hadware)
- setup: add [doc] and [testing] extra_requires (@hadware)
- fix: several type annotation fixes (@kimdwkimdw, @PaulLerner)
- feat: add "must_link_method" option to "pool" clustering
- feat: add support for cannot/must link constraints in "pool" clustering
- BREAKING: make one_hot_encoding return SlidingWindowFeature with labels
- feat: add "labels" optional attribute to SlidingWindowFeature
- fix: fix corner case in pyannote.core.utils.numpy.one_hot_encoding
- feat: add new method SlidingWindowFeature.align
- feat: add collar argument to Timeline.support (@nryant)
- feat: add new method Timeline.covers (@PaulLerner)
- fix: check for spaces before writing with RTTM or UEM format (@PaulLerner)
- improve: speed up Annotation.{from_df | from_json} (@nryant)
- feat: add align_last option to SlidingWindow.call
- feat: add SlidingWindow.call to slide over a specific support
- feat: add pyannote.core.utils.random
- BREAKING: remove pyannote.core.Scores
- fix: fix legend corner case with empty Annotation instances
- fix: fix {Timeline|Annotation}.crop with overlapping segments in support
- fix: fix Segment.bool return type
- feat: add type hints (@hadware)
- chore: Python3-ize code base (@hadware)
- feat: add Annotation.write_rttm and Timeline.write_uem (@PaulLerner)
- feat: add numpy interface to SlidingWindowFeature (experimental)
- feat: setup continuous integration
- improve: speed up SlidingWindowFeature plotting
- doc: update notebooks to Python 3 (@PaulLerner)
- BREAKING: remove deprecated Segment.pretty()
- BREAKING:
Annotation.__mul__
now returnsnp.ndarray
instance - BREAKING: remove
Annotation
methods (that were deprecated version 1.0) - BREAKING:
Scores.retrack
has been renamedrename_tracks
- improve: remove
six
andxarray
dependencies - BREAKING: remove
pyannote.core.time
module
- improve: speed-up several
�Segment
methods - improve: decrease
one_hot_encoding
memory usage - feat: add support for "fixed" option in all cropping modes
- setup: switch to scipy 1.1
- feat: add basic implementation of Chinese Whispers clustering
- feat: add "utils.hierarchy.fcluster_auto" parameter-free "fcluster"
- BREAKING: move pyannote.core.util to pyannote.core.utils.generators
- BREAKING: remove support for Python 2
- feat: add one_hot_{encoding | decoding} functions
- feat: add get_class_by_name utiltiy function
- feat: add custom pdist and cdist
- feat: add custom hierachical clustering "linkage" function
- setup: add scipy dependency
- feat: add unit tests for feature cropping
- fix: fix out-of-bounds feature cropping
- feat: expose
SlidingWindow.closest_frame
- feat: add support for multi-dimensional SlidingWindowFeatures
- setup: switch to sortedcontainers 2.x
- fix: update SWF.crop docstring
- chore: remove support for "segment" option in Annotation.argmax
- feat: add "return_ranges" option to SlidingWindow.crop
- improve: faster SlidingWindowFeature.crop
- fix: fix documentation
- BREAKING: remove all things "Transcription"
- feat: add return_data parameter to SlidingWindowFeature.crop (SWF)
- feat: add support for len(SWF)
- feat: add ylim parameter to plot_feature
- fix: fix corner case where notebook.crop is larger than SWF extent
- feat: make iterators out of SlidingWindowFeature instances
- improve: make Annotation.mul (much) faster
- fix: make iterators out of SlidingWindow instances
- fix: add missing import
- fix: fix corner case in Timeline.crop_iter
- fix: use Timeline.support() instead of .coverage()
- improve: switch from banyan to sortedcontainers
- feat: add Timeline.{remove|discard|overlapping_iter} methods
- BREAKING: Timeline.init now raises ValueError in case of empty segment
- BREAKING: Timeline.crop now raises ValueError for bad mode
- BREAKING: rename "mapping" arguments to "returns_mapping" in Timeline.crop
- test: add more tests
- fix: fix SlidingWindowFeature.iterfeatures()
- setup: add dependencies for notebook visualization
- fix: fix Annotation.rename_labels
- improve: faster Annotation.subset and Annotation.rename_labels
- fix: fix Annotation.uri setter
- feat: add Timeline.to_annotation()
- fix: fix (deprecated) "smooth" method
- feat: add (Sphinx-based) documentation
- chore: move sample notebooks to /notebook
- feat: add unit tests
- BREAKING: rename some Timeline and Annotation methods
- feat: add 'copy' parameter to Annotation.{label|get}_timeline()
- improve: speed-up Timeline.extent()
- chore: move tests at root directory
- chore: remove support for Unknown labels
- improve: speed up Timeline and Annotation
- feat: add "copy" option to Annotation.update
- feat: SlidingWindowFeature notebook display
- feat: new SlidingWindow.{samples|crop} methods
- feat: new 'mode' parameter to SlidingWindowFeature.crop method
- doc: updated notebooks for SlidingWindow and SlidingWindowFeature
- fix: force internal timeline update after copy
- BREAKING: make segmentToRange deterministic wrt. segment duration
- fix: Python 3 support in pyannote.core.features
- setup: versioneer 0.15
- fix: prevent adding empty segments in Annotation and Scores
- BREAKING: pyannote.core.json.{load|dump} expects file handles
- feat: load_from, dump_to
- feat: Annotation * Annotation returns cooccurrence matrix
- fix: Annotation.itertracks would raise a UnicodeDecodeError in some cases
- improve: notebook display
- improve: Annotation.anonymize_{tracks|labels} no longer use Unknown instances
- improve: empty segments are now printed as "[]"
- feat: deterministic order in Annotation.co_iter
- fix: LabelMatrix.argmax corner case
- setup: update dependencies
- feat: Travis continuous integration
- fix: Python 2/3 notebook representations
- fix: bug in Scores with integer-values segments
- fix: update Scores.from_df to pandas 0.17
- feat: Python 3 support
- feat: pytest test suite
- fix: Annotation comparison
- fix: deterministic order in Annotation.itertracks
- feat: LabelMatrix save/load methods
- fix: MAJOR bug in Annotation lazy-update
- fix: Scores IPython display
- feat: new Annotation.update method
- improve: Annotation.subset support for any label iterable
- refactor: rewrote Scores internals
- setup: use pandas 0.15.1+
- setup: use pyannote-banyan 0.1.6
- fix: extent of empty Timeline
- fix: force revert to pandas 0.13.1 for Scores to work again...
- setup: use banyan 0.1.5.1 from GitHub
- feat: pyannote/core Docker image
- feat(Timeline): add from_df constructor
- breaking change: new PyAnnote JSON format
- fix(Transcription): fix potential edge/key conflict during alignment
- feat(SlidingWindow): add durationToSamples (and vice-versa)
- fix(Transcription): fix loading from JSON
- fix(Transcription): fix cropping corner cases
- docs: add installation instruction for IPython display support
- docs(Scores): add IPython documentation for Scores
- feat(Annotation): add 'collar' param to .smooth()
- refactor(Annotation): remove support for >> operator
- maintain(Mapping): remove label mapping data structure
- feat(LabelMatrix): add IPython display
- improve(LabelMatrix): 10x faster cooccurrence matrix
- feat(Scores): add IPython display
- feat(Transcription): add edge timerange prediction
- feat(Transcription): add node temporal sort
- fix(Transcription): make label_timeline return a copy
- fix(Transcription): fix IPython display
- docs(Transcription): add IPython documentation for Transcription
- feat: Transcription data structure (annotation graph)
- first public version