Recipes
New corpora
* VoxCeleb and RIR recipes by desh2608 in https://github.com/lhotse-speech/lhotse/pull/475
* Add WenetSpeech recipe by pkufool in https://github.com/lhotse-speech/lhotse/pull/487
* ICSI meeting corpus by desh2608 in https://github.com/lhotse-speech/lhotse/pull/526
* ASpIRE data preparation recipe by desh2608 in https://github.com/lhotse-speech/lhotse/pull/528
* The People's Speech recipe by pzelasko in https://github.com/lhotse-speech/lhotse/pull/529
* bvcc/VoiceMOS challange data recipe by oplatek in https://github.com/lhotse-speech/lhotse/pull/578
* Add recipe for aidatatang_200zh. by csukuangfj in https://github.com/lhotse-speech/lhotse/pull/593
* SPGISpeech recipe by desh2608 in https://github.com/lhotse-speech/lhotse/pull/600
* [recipe] AliMeeting by desh2608 in https://github.com/lhotse-speech/lhotse/pull/608
Existing recipes improvements
* A change for tedlium.py by luomingshuang in https://github.com/lhotse-speech/lhotse/pull/479
* improve adept preparation: adds text interpretation by oplatek in https://github.com/lhotse-speech/lhotse/pull/474
* Reduce memory usage when writing GigaSpeech manifests by pzelasko in https://github.com/lhotse-speech/lhotse/pull/494
* adding previous utterance for libritts supervisions by oplatek in https://github.com/lhotse-speech/lhotse/pull/510
* bugfix for prepare_librispeech command by rosrad in https://github.com/lhotse-speech/lhotse/pull/516
* Improving Fisher recipe by pzelasko in https://github.com/lhotse-speech/lhotse/pull/539
* Some Fisher fixes and manifest validation fixes by pzelasko in https://github.com/lhotse-speech/lhotse/pull/541
* ICSI Recipe - Minor Doc correction by LasseWolter in https://github.com/lhotse-speech/lhotse/pull/544
* Minor updates for AMI and ICSI by desh2608 in https://github.com/lhotse-speech/lhotse/pull/545
* [AMI] Added missing IHM channels by LasseWolter in https://github.com/lhotse-speech/lhotse/pull/555
* Minor changes to LibriCSS and AISHELL-4 recipes by desh2608 in https://github.com/lhotse-speech/lhotse/pull/580
* Updated ICSI download structure/args for clarity by LasseWolter in https://github.com/lhotse-speech/lhotse/pull/583
* Fix(icsi-recipe): Use new directory structure in prepare_icsi by LasseWolter in https://github.com/lhotse-speech/lhotse/pull/592
* Babel recipe fix by m-wiesner in https://github.com/lhotse-speech/lhotse/pull/647
New features
Support for custom attributes in Cuts
This feature allows attaching arbitrary type of data to cuts: alignments, multiple feature sets, etc.
* Array and TemporalArray manifests (generalization of Features for arbitrary data) by pzelasko in https://github.com/lhotse-speech/lhotse/pull/458
* Support custom MonoCut attrs (with special support for loading Arrays) by pzelasko in https://github.com/lhotse-speech/lhotse/pull/459
* Collation of custom cut fields into PyTorch tensors by pzelasko in https://github.com/lhotse-speech/lhotse/pull/476
* `custom_collate_field` pads to the longest read array instead of using `CutSet.pad()` by pzelasko in https://github.com/lhotse-speech/lhotse/pull/482
* Add `with_path_prefix` to `Array` and `TemporalArray` by pzelasko in https://github.com/lhotse-speech/lhotse/pull/499
* Collation promotes custom field int sequences to int64 by pzelasko in https://github.com/lhotse-speech/lhotse/pull/507
* More flexibility in mixing cuts with custom attributes by pzelasko in https://github.com/lhotse-speech/lhotse/pull/642
Data augmentation
* Reverberation using room impulse response by desh2608 in https://github.com/lhotse-speech/lhotse/pull/477
* Add early reverb option for RIR-based augmentation by desh2608 in https://github.com/lhotse-speech/lhotse/pull/524
* Options for handling multi-channel RIR by desh2608 in https://github.com/lhotse-speech/lhotse/pull/621
"Lazy cuts" (less memory / faster execution)
* Option to create a CutSet lazily when everything is sorted on recording IDs by pzelasko in https://github.com/lhotse-speech/lhotse/pull/493
* Enable adding/combining of lazy manifests by pzelasko in https://github.com/lhotse-speech/lhotse/pull/495
* Resumable batch feature extraction with reduced memory usage by pzelasko in https://github.com/lhotse-speech/lhotse/pull/508
* `DynamicBucketingSampler`: on-the-fly bucketing with restricted memory usage by pzelasko in https://github.com/lhotse-speech/lhotse/pull/517
* `DynamicCutSampler` (like `DynamicBucketingSampler` but without bucketing) by pzelasko in https://github.com/lhotse-speech/lhotse/pull/579
* Custom binary feature storage format by pzelasko in https://github.com/lhotse-speech/lhotse/pull/522
* `lhotse split-lazy` and `CutSet.split_lazy()` for memory-efficient splits by pzelasko in https://github.com/lhotse-speech/lhotse/pull/558
* Optional dependency `orjson` for up to 50% JSONL reading by pzelasko in https://github.com/lhotse-speech/lhotse/pull/563
* CutSet multiplexing by pzelasko in https://github.com/lhotse-speech/lhotse/pull/565
* `stop_early` arg for `CutSet.mux` by pzelasko in https://github.com/lhotse-speech/lhotse/pull/585
* Option to set shuffle buffer size in dynamic samplers by pzelasko in https://github.com/lhotse-speech/lhotse/pull/587
* WebDataset integration for optimized sequential I/O by pzelasko in https://github.com/lhotse-speech/lhotse/pull/582
* Add WebDataset export CLI and a `fault_tolerant` option by pzelasko in https://github.com/lhotse-speech/lhotse/pull/599
* Add `WebdatasetWriter` for iterative cut writing by pzelasko in https://github.com/lhotse-speech/lhotse/pull/602
* More lazily evaluated methods: `map`, `filter`, `repeat`, `shuffle` by pzelasko in https://github.com/lhotse-speech/lhotse/pull/626
New and refreshed APIs
* Deprecate compute_and_store_recording, add save_audio by desh2608 in https://github.com/lhotse-speech/lhotse/pull/486
* CutSet.decompose() with CLI and streaming read/write enhancements by pzelasko in https://github.com/lhotse-speech/lhotse/pull/496
* Opensmile wrapper by marcinwitkowski in https://github.com/lhotse-speech/lhotse/pull/504
* `fill_supervision` method for cuts and cut sets by pzelasko in https://github.com/lhotse-speech/lhotse/pull/505
* ``merge_supervisions`` method for cuts and cut sets by pzelasko in https://github.com/lhotse-speech/lhotse/pull/503
* Add CLI for `lhotse cut trim-to-supervision <in> <out>` by pzelasko in https://github.com/lhotse-speech/lhotse/pull/514
* CLI for validating recordings+supervisions and extra supervision check by pzelasko in https://github.com/lhotse-speech/lhotse/pull/515
* `rng` arg for `CutSet.truncate()` by pzelasko in https://github.com/lhotse-speech/lhotse/pull/557
* Add cut extend method by desh2608 in https://github.com/lhotse-speech/lhotse/pull/571
* Output more information from CutSet.describe. by csukuangfj in https://github.com/lhotse-speech/lhotse/pull/606
* Cut into windows with hop by marcinwitkowski in https://github.com/lhotse-speech/lhotse/pull/651
Improved Kaldi import/export
* KaldiWriter for exporting features to feats.scp by pzelasko in https://github.com/lhotse-speech/lhotse/pull/473
* Support multi-channel wavs in Kaldi export by pzelasko in https://github.com/lhotse-speech/lhotse/pull/480
* Make speaker_id prefix of utt_id for Kaldi by desh2608 in https://github.com/lhotse-speech/lhotse/pull/530
* Fix bug in export to kaldi function by HuangZiliAndy in https://github.com/lhotse-speech/lhotse/pull/531
* Add method to create SupervisionSet from RTTM files by desh2608 in https://github.com/lhotse-speech/lhotse/pull/566
* Replace kaldiio with kaldi_native_io. by csukuangfj in https://github.com/lhotse-speech/lhotse/pull/584
PyTorch API
* Add SpecAugment state dict by janvainer in https://github.com/lhotse-speech/lhotse/pull/472
* Enable threaded batch IO by pzelasko in https://github.com/lhotse-speech/lhotse/pull/520
* GlobalMVN and Wav2LogFilterBank torchscriptable by janvainer in https://github.com/lhotse-speech/lhotse/pull/521
* Streaming Kaldi feature extractors by pzelasko in https://github.com/lhotse-speech/lhotse/pull/523
* Skipping problematic audios during dataloading - continued by pzelasko in https://github.com/lhotse-speech/lhotse/pull/533
* Make samplers picklable by pzelasko in https://github.com/lhotse-speech/lhotse/pull/542
* Rename `SingleCutSampler` -> `SimpleCutSampler` by pzelasko in https://github.com/lhotse-speech/lhotse/pull/546
* Sampler reports for how much padding is typically used by pzelasko in https://github.com/lhotse-speech/lhotse/pull/560
* Modified SpecAugment by luomingshuang in https://github.com/lhotse-speech/lhotse/pull/598
* optimization for specaugment by luomingshuang in https://github.com/lhotse-speech/lhotse/pull/604
* Return `audio_lens` in multi channel audio collater by desh2608 in https://github.com/lhotse-speech/lhotse/pull/616
* Add sampling statistics report to dynamic samplers by pzelasko in https://github.com/lhotse-speech/lhotse/pull/628
* New parameter: `OnTheFlyFeatures(..., return_audio=True)` by pzelasko in https://github.com/lhotse-speech/lhotse/pull/629
* RoundRobinSampler: samples mini-batches in turn from each sub-sampler by pzelasko in https://github.com/lhotse-speech/lhotse/pull/649
* Sampler diagnostics updates: preserved across epochs, fixes for various samplers, extended unit tests by pzelasko in https://github.com/lhotse-speech/lhotse/pull/639
* Stricter batch constraint exceeding checks by pzelasko in https://github.com/lhotse-speech/lhotse/pull/653
Documentation
* Refresh tutorials in examples + quality of life improvements in code by pzelasko in https://github.com/lhotse-speech/lhotse/pull/617
* Tutorial for Lhotse's WebDataset integration by pzelasko in https://github.com/lhotse-speech/lhotse/pull/619
* Add links in tutorials, fix some issues with lazy manifests by pzelasko in https://github.com/lhotse-speech/lhotse/pull/620
* Diagrams illustrating the architectures of dataloading solutions by pzelasko in https://github.com/lhotse-speech/lhotse/pull/622
* Tutorial about combining multiple datasets by pzelasko in https://github.com/lhotse-speech/lhotse/pull/624
Random/Other
* lhotse split produces digit aligned names by oplatek in https://github.com/lhotse-speech/lhotse/pull/483
* More user-friendly default settings by pzelasko in https://github.com/lhotse-speech/lhotse/pull/519
* Change the default Fbank and Mfcc feature extractors implementation by pzelasko in https://github.com/lhotse-speech/lhotse/pull/525
* citation file for the project by pzelasko in https://github.com/lhotse-speech/lhotse/pull/581
* Improve `__repr__` of manifests with binary data by pzelasko in https://github.com/lhotse-speech/lhotse/pull/596
* CI cache for pip dependencies by pzelasko in https://github.com/lhotse-speech/lhotse/pull/633
* Update black, pytest, speed up some tests by pzelasko in https://github.com/lhotse-speech/lhotse/pull/650
* Use faster resampling transform by pzelasko in https://github.com/lhotse-speech/lhotse/pull/652
* Further resampling speedup by pzelasko in https://github.com/lhotse-speech/lhotse/pull/657
Bug fixes
* Force single-threaded execution for ffmpeg by pzelasko in https://github.com/lhotse-speech/lhotse/pull/481
* Minor change in Reverb serialization by desh2608 in https://github.com/lhotse-speech/lhotse/pull/484
* Fixes and tests for OnTheFlyFeatures with some non-default feature extractors by pzelasko in https://github.com/lhotse-speech/lhotse/pull/492
* Audio duration mismatch tolerance API by pzelasko in https://github.com/lhotse-speech/lhotse/pull/491
* Let kaldifeat handle the device of input waves. by csukuangfj in https://github.com/lhotse-speech/lhotse/pull/498
* Minor fix for RIR augmentation by desh2608 in https://github.com/lhotse-speech/lhotse/pull/501
* Fix reading resampled OPUS files by pzelasko in https://github.com/lhotse-speech/lhotse/pull/509
* Fix missing `lhotse.testing` package when installing lhotse by pzelasko in https://github.com/lhotse-speech/lhotse/pull/511
* Add assertion for non-negative offset for truncate by desh2608 in https://github.com/lhotse-speech/lhotse/pull/512
* Possible workaround for HDF5 growing memory issue by pzelasko in https://github.com/lhotse-speech/lhotse/pull/527
* addressing etree error under py3.9, resolves 535 by jtrmal in https://github.com/lhotse-speech/lhotse/pull/536
* [kaldi] Fixed wav source for command type by desh2608 in https://github.com/lhotse-speech/lhotse/pull/537
* Fix `collate_audio` after adding fault_tolerant arg by pzelasko in https://github.com/lhotse-speech/lhotse/pull/540
* Fix the official example by pzelasko in https://github.com/lhotse-speech/lhotse/pull/550
* Fix mixing with SNR with PaddingCut as the first track in MixedCut by pzelasko in https://github.com/lhotse-speech/lhotse/pull/547
* Fix `trim_to_supervisions(keep_overlapping=False)` for completely overlapping cuts by pzelasko in https://github.com/lhotse-speech/lhotse/pull/553
* Fix randomness in DynamicBucketingSampler by pzelasko in https://github.com/lhotse-speech/lhotse/pull/562
* Add warning if num_jobs >1 and torch.num_threads >1 by LasseWolter in https://github.com/lhotse-speech/lhotse/pull/561
* Workaround for Python's gzip not handling "trailing garbage" unlike the CLI program by pzelasko in https://github.com/lhotse-speech/lhotse/pull/564
* Account for duration param in extract_from_recording_and_store in lhotse/features/base.py by armusc in https://github.com/lhotse-speech/lhotse/pull/572
* Quick fix for an edge case in CutSet.mix by pzelasko in https://github.com/lhotse-speech/lhotse/pull/570
* Update `.is_lazy` property to account for new types of lazy iterators by pzelasko in https://github.com/lhotse-speech/lhotse/pull/576
* Fix array lengths in custom collation by pzelasko in https://github.com/lhotse-speech/lhotse/pull/577
* Fix CutSet sample, and add mix padding by desh2608 in https://github.com/lhotse-speech/lhotse/pull/589
* Fix for MonoCut from_dict by desh2608 in https://github.com/lhotse-speech/lhotse/pull/591
* Fix start/offset when moving cut/features/array data to memory by pzelasko in https://github.com/lhotse-speech/lhotse/pull/597
* fix resample to work with webdataset i.e. binary audio source by oplatek in https://github.com/lhotse-speech/lhotse/pull/609
* Fix an assertion in torchaudio_load by pzelasko in https://github.com/lhotse-speech/lhotse/pull/613
* Fixes for PyTorch 1.11 by pzelasko in https://github.com/lhotse-speech/lhotse/pull/614
* Fix fault_tolerant audio loading option for mixed cuts with zero energy by pzelasko in https://github.com/lhotse-speech/lhotse/pull/615
* WIP: fix fault tolerant load audio by oplatek in https://github.com/lhotse-speech/lhotse/pull/595
* Add a check for detecting wrong TemporalArray start attribute in long recordings by pzelasko in https://github.com/lhotse-speech/lhotse/pull/623
* Fix `.subset(first=...)` for lazy manifests without `len` by pzelasko in https://github.com/lhotse-speech/lhotse/pull/625
* Fix typos and update doc. by csukuangfj in https://github.com/lhotse-speech/lhotse/pull/630
* Simplify `LazyJsonlIterator` and fix `TimeConstraint` equality by pzelasko in https://github.com/lhotse-speech/lhotse/pull/632
* Avoid re-encoding in move_to_memory by pzelasko in https://github.com/lhotse-speech/lhotse/pull/636
* Fix for deserializing arrays with `storage_path=None` by pzelasko in https://github.com/lhotse-speech/lhotse/pull/637
* Fix tests by pzelasko in https://github.com/lhotse-speech/lhotse/pull/638
* Fix probabilistic decision condition error of cutset input transform. by drawfish in https://github.com/lhotse-speech/lhotse/pull/635
* Suppress any type of exception in fault tolerant audio reading by pzelasko in https://github.com/lhotse-speech/lhotse/pull/641
* Fix padding cuts with custom attrs by pzelasko in https://github.com/lhotse-speech/lhotse/pull/643
* Fix rank/world_size settings for ZipSampler and RoundRobinSampler by pzelasko in https://github.com/lhotse-speech/lhotse/pull/654
New Contributors
* marcinwitkowski made their first contribution in https://github.com/lhotse-speech/lhotse/pull/504
* rosrad made their first contribution in https://github.com/lhotse-speech/lhotse/pull/516
* HuangZiliAndy made their first contribution in https://github.com/lhotse-speech/lhotse/pull/531
* LasseWolter made their first contribution in https://github.com/lhotse-speech/lhotse/pull/544
* armusc made their first contribution in https://github.com/lhotse-speech/lhotse/pull/572
* drawfish made their first contribution in https://github.com/lhotse-speech/lhotse/pull/635
**Full Changelog**: https://github.com/lhotse-speech/lhotse/compare/v0.12...v1.0