What's Changed
- chore(download): remove migration-only characterization scaffolding (#781) #782
- fix(tts/kokoro-ane): smart-apostrophe contractions + hyphenated lexicon lookups (#774, #775) #783
- fix(tts): normalize decade and bare-year forms in English text (#776) https://github.com/FluidInference/FluidAudio/pull/780a
- feat(tts): route English frontends through native NeMo TN when available #784
- Seam-gap repair pass for long-form chunk-merge content drops by @maboa in #761
- feat(asr): add language hint to SlidingWindowAsrConfig by @patlux in #786
- feat(tts/kokoro): byte-exact NeMo text normalization before G2P #790
- fix(download): preserve model cache on transient network errors by @dtopel in #792
- feat(tts): LuxTTS backend 48 kHz zero-shot voice cloning (CoreML) #785
- fix(itn): protect natural-language ambiguous words from native normalization #796
- fix(tts/pocket-tts): enable voice cloning for 24-layer non-English packs (#793) #797
- OfflineDiarizerManager: split process() into prepare()/cluster() for cacheable segmentation+embeddings by @ComicBit in #789
- Remove redundant audio decoding in CLI
transcribepath by @hamzaq2000 in #799 - fix(asr): end-align the final window at the last speech-bearing frame (#747) #800
- feat(asr): expose non-mutating vocabulary candidate evidence by @CiprianSpiridon in #805
- fix(tts): make LuxTTS resources signable on iOS by @CiprianSpiridon in #806
- fix(sortformer): streaming mel emits phantom frames, drifting all timestamps late by @predict-woo in #807
- feat(download): stall watchdog + DownloadConfig plumbing (#810) #811
- feat(cli/process): add --compute-units flag for offline diarization #812
- Expose token timings from the Unified offline batch path by @NylonDiamond in #814
- fix(tts/kokoro-ane): throw instead of trapping on non-finite PostAlbert durations #816
- fix(tts/kokoro-ane): warn on BNNS-crash-prone OS builds (26.4–26.5.x) + document both Apple bug classes #818
- fix(download): include CoreML bundle internals for subPath repos (StyleTTS2 corruptedModel) #821
- feat(tts/kokoro-ane): Japanese variant + MiniMax benchmark support (--phonemes) #820
- fix(asr): preserve merge token order at chunk seams (#825) #830
- fix(download): interrupted first download no longer bricks streaming ASR managers (#819); Unified int8 A16 compat docs (#828) #829
- fix(asr/eou): debounce on wall-clock silence, not consecutive EOU emissions #831
- fix(download): stop downloading never-loaded sibling bundles in subPath repos (#826) #832
- fix: prevent integer overflow in AudioSourceFactory frame count calculation by @jtjones1028 in #813
- docs(asr): clarify vocabulary alias match semantics by @CiprianSpiridon in #834
- fix(tts/kokoro-ane): route noise+tail to CPU by default on OS 27 #849
- fix(tts/kokoro-ane): keep BNNS crash advisory active on iOS 26.6+ #848
- fix(asr/streaming): temporally gate token dedup to stop prefix-collision loss (#787) #788
- fix(audio): tolerate the phantom tail of packetized formats in resampleAudioFile by @maboa in #845
- fix(asr/tdt): scope applyEnglishBlocklist to French only #847
- feat(tts/kokoro-ane): expose predicted token durations by @Bbrizly in #854
- Exclude Parakeet benchmark documentation from target by @aindaco1 in #837
- feat(speaker): CAM++ speaker-embedding backend (CoreML) [beta] #652
- feat(vad): FSMN-VAD backend (CoreML) [beta] #653
- feat(asr/canary): Canary-1B-v2 AED engine + CTC-spotter custom vocab [beta] #709
- feat(tts): add NeuTTS-2E backend (emotional English TTS, Qwen3 + NeuCodec) [beta] #822
- perf: improve performance by @yanxxl in #804
- feat(tts): Inflect v2 (Micro/Nano) CoreML backend [beta] #823
- fix(asr): post-#804 cleanup — format CI, pointer lifetimes, shared argmax, timestamp tail #857
- Add ModelRegistry.repoOverrides so mirrored repos can be resolved by @omachala in #824
- style(tests): wrap over-long ModelRegistryTests lines from #824 #859
- fix(offline-diarizer): pyannote-parity clustering — threshold semantics, constraint count, constrained assignment #802
- fix(tts): repair legacy Kokoro ANE caches on OS 27 #858
- fix(asr/streaming): re-decode final window from frame 0 — stops #855 trailing-word loss #861
- perf(download): skip unused PocketTTS variants + concurrent subdirectory fetches #863
- feat(asr/unified): vocabulary boosting on the unified Parakeet path #862
- fix(download): latch pre-attach cancellation so cancelled downloads never start #864
New Contributors
- @maboa made their first contribution in #761
- @patlux made their first contribution in #786
- @dtopel made their first contribution in #792
- @ertra made their first contribution in #795
- @drkpxl made their first contribution in #798
- @CiprianSpiridon made their first contribution in #805
- @predict-woo made their first contribution in #807
- @NylonDiamond made their first contribution in #814
- @shanforge made their first contribution in #815
- @jtjones1028 made their first contribution in #813
- @Bbrizly made their first contribution in #854
- @aindaco1 made their first contribution in #837
- @yanxxl made their first contribution in #804
- @omachala made their first contribution in #824
Full Changelog: v0.15.5...v0.15.6