Skip to content

chore(deps): bump FluidAudio to 0.18.2 - #6

Merged
moifort merged 1 commit into
mainfrom
chore/fluidaudio-0.18.2
Nov 2, 2026
Merged

moifort merged 1 commit into
mainfrom
chore/fluidaudio-0.18.2

Conversation

@moifort

@moifort moifort commented Nov 2, 2026

Copy link
Copy Markdown
Owner

Bumps FluidAudio from 0.17.7 to 0.18.2 (0.18.0, 0.18.1, 0.18.2). The Parakeet model does not change.

Please review: the <unk> workaround

Since 0.18.0, AsrManager.processTranscriptionResult removes <unk> from text and timings with no option. That silently loses Dictate's guillemets and symbols. It is still unconditional in 0.18.2 and on upstream main.

The only public access to raw tokens is SlidingWindowAsrManager.tokenUpdates (0.18.1), which would mean leaving the batch path. Instead, ParakeetEngine rebuilds AsrModels with the token spelled <unk_> in the vocabulary, and restores <unk> after decoding.

  • Upside: small change, same decoder path.
  • Downside: it relies on an implementation detail. A later FluidAudio change could break it, which the new real-decoder test would catch on a Mac with a corpus (see Tests).
  • Long dictations: AsrManager also skips <unk> by spelling in two places in its multi-window seam logic. Those no longer recognize the renamed token. Not measured separately.

Relevant to Dictate

  • #1079: the CTC mel spectrogram runs on the CPU, fixing all-blank CTC on M1/M4 with macOS 27.0.1. Reported on an M1 Pro, so vocabulary boosting may be affected on this kind of Mac today.
  • Vocabulary boosting: #1041 keeps names, possessives and neighbouring words, #1088 keeps punctuation around replacements, #1100 stops the boost against a word TDT heard confidently.
  • CTC performance: #993, #1034, #1039 (extraction about 3× faster).
  • Long-form decoding: #975 seam timing, #1056 recovers dropped opening speech, #1061 seam-gap repair.
  • Downloads: #1090 resumes an interrupted model download instead of deleting the folder.

Skipped

  • Models: Phonon-2.5 is multilingual but worse in French on FLEURS (9.0% vs 6.6% WER for v3), slower on first load and heavier (~480 MB vs ~47 MB). Nemotron Unified, Bark 3.0, Canary, LFM3-Audio and Nemotron 3.5 Lite were not evaluated: none is a clear upgrade published on the FLEURS multilingual WER for the v3 family. No new files in parakeet-ultra-coreml since 2026-09-24.
  • Unrelated: TTS, diarization, streaming, SenseVoice, Japanese.
  • Not adopted: hasCTCRescoringCandidates and the new VocabularyBoostingSession.Thresholds. Dictate keeps the defaults.

API changes

None needed: Dictate builds against 0.18.2 unchanged. Package.resolved changes only the FluidAudio pin.

Tests

  • xcodebuild build: succeeded.
  • xcodebuild test: 395 tests in 51 suites passed, none skipped.
  • ParakeetTranscriberTests ran on the real model. The real-model vocabulary boosting tests ran too, since both models are installed.
  • New keepsTheUnknownTokensOfTheDecoder runs the real decoder on real dictations from this Mac's corpus that contain <unk>, and prints only counts. Kept in 8 of 8 dictations, against 0 of 8 with the workaround removed. It is skipped on machines without such a corpus.

Not verified: whether #1079 changes vocabulary boosting results here, and overall accuracy on the evaluation corpus. Neither was measured before and after the bump.

Releasing means merging this PR, then tagging.

🤖 Generated with Claude Code

Brings the CTC mel spectrogram fix for M1/M4 on macOS 27 (all-blank CTC
made vocabulary boosting unreliable), the vocabulary rescoring fixes, and
resumable model downloads.

0.18.0 started dropping `<unk>` from text and timings with no option,
which loses Dictate's guillemets and symbols. Spell the token differently
in the vocabulary Parakeet loads and restore it after decoding. A test on
real corpus dictations covers it with the real decoder: 0 of 8 kept
without the workaround, 8 of 8 with it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@moifort
moifort merged commit 44cf3ea into main Nov 2, 2026
2 checks passed
@moifort
moifort deleted the chore/fluidaudio-0.18.2 branch November 2, 2026 10:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant