github FluidInference/FluidAudio v0.18.2
v0.18.2 — CAM++ v2, Pocket TTS 2026-10, long-form ASR repairs

2 hours ago

Models

  • Pocket TTS english_2026-10 is now the English pack (#1089). It uses Kyutai's default temperature of 0.3; .english2026Apr keeps the previous pack.
  • CAM++ _v2 speaker embeddings (#1094, #1099) now match 3D-Speaker's reference at every length: AMI EER 4.67% → 2.85%, equal to PyTorch.

Default changes

  • The offline diarizer keeps overlapping speech (exclusiveSegments: false) (#1081). AMI overlap-scored DER goes from 24.2% to 20.3%.
  • Japanese long-form (tdtJa) defaults to no mel context (#1098): 31-min CER 10.37% → 8.49%.
  • Sortformer processComplete and finalizeSession predict every frame, including audio under 30 s and the tail (#1091).
  • Vocabulary boosting no longer gives the context-bias boost against a word TDT heard confidently (#1100).

Long-form and streaming ASR

  • Dropped opening speech is recovered (#1056).
  • Seam-gap repair probes short gaps with a short window, and its probe budget scales with file length (#1061, #1059).
  • A streaming window that opens mid-word joins onto the previous text (#1097).

Vocabulary boosting: punctuation around replacements is kept (#1088), CTC probability extraction is about 3× faster (#1039), and the rescue floors are documented as an opt-in (#1101).

SenseVoice: emotion, event and language confidence (#1082), and the fp32 encoder now runs (#1096).

Reliability

  • An interrupted model download resumes instead of deleting the repo folder (#1090).
  • AudioConverter handles files over 4 GiB and converts as it reads (#1021).
  • LFM3-Audio's Core AI types are kept out of class metadata, so XCTest no longer crashes on macOS 26 (#1083).
  • Kokoro Mandarin keeps word order around a custom-lexicon hit (#1055).
  • The Pocket TTS session-lifetime guard has tests (#1058).

Docs: v3 language hints are script-level (#1092), and when to choose mel context for v3 long-form audio (#1095).

What's Changed

  • fix(diarizer): Keep overlapping speech in offline output by default by @Alex-Wengg in #1081
  • feat(tts/pocket): Make Kyutai's english_2026-10 the English pack by @Alex-Wengg in #1089
  • feat(sensevoice): emotion, event and language confidence from the query logits by @benchen216 in #1082
  • fix(lfm3-audio): keep Core AI types out of class metadata on older systems by @benchen216 in #1083
  • test(tts/pocket): guard the one-shot session-lifetime hang and document session ownership (#1057) by @donpark in #1058
  • Add Character Agent for iOS to README by @memgrafter in #1062
  • fix(asr): keep punctuation around vocabulary replacements by @kiranjd in #1088
  • fix(tts/kokoro-ane/zh): keep word order around a custom-lexicon hit by @pumclong in #1055
  • perf(asr): Remove boxed scalar reads from CTC probability extraction by @achembarpu in #1039
  • fix(audio): resample long files without the 4 GiB buffer cap, converting files as they are read by @maboa in #1021
  • fix(asr): recover dropped opening speech in long-form v3 decoding by @quartzjer in #1056
  • fix(asr): seam-gap repair probes a short window around every inter-word gap by @maboa in #1061
  • fix(download): resume an interrupted model download instead of purging the repo folder by @Alex-Wengg in #1090
  • fix(diarizer/sortformer): predict every frame of complete audio by @Alex-Wengg in #1091
  • docs(asr): document that a v3 language hint is script-scoped by @Alex-Wengg in #1092
  • fix(speaker/campplus): subtract the per-utterance fbank mean before CAM++ by @Alex-Wengg in #1094
  • docs(asr): when to choose mel context for v3 long-form audio by @Alex-Wengg in #1095
  • fix(sensevoice): pad to the lengths the loaded encoder accepts, so fp32 runs by @Alex-Wengg in #1096
  • fix(asr/streaming): join a window that opens mid-word onto the previous text by @Alex-Wengg in #1097
  • fix(asr/tdtJa): long-form Japanese defaults to no mel context and probes only long seam gaps by @Alex-Wengg in #1098
  • fix(asr/vocab): no context bias against a word TDT heard confidently by @Alex-Wengg in #1100
  • fix(speaker/campplus): load the _v2 CAM++ models that match 3D-Speaker by @Alex-Wengg in #1099
  • docs(asr/vocab): document the rescue floors as an opt-in, with the measured trade-off by @Alex-Wengg in #1101

New Contributors

Full Changelog: v0.18.1...v0.18.2

Don't miss a new FluidAudio release

NewReleases is sending notifications on new releases.