Hugging Face's AnySpeechRecognizer and AnyDecisionModel Bring Open Speech and Decision Models to Swift Apps on Apple Devices
Source: Hugging Face blog

Oct 30, 2026: Apple's new speech API has only ever used one engine: Apple's own. A new open-source Swift package from Hugging Face changes that. AnySpeechRecognizer keeps Apple's SpeechAnalyzer API but lets developers swap in NVIDIA's Parakeet or Alibaba's Qwen3-ASR, running locally on Core ML. A companion package, AnyDecisionModel, answers yes/no, multiple-choice and rating questions with real probabilities instead of generated text.
Both were announced on the Hugging Face blog on Oct. 29 by Mattt, extending the approach of his earlier AnyLanguageModel package.
The short version
- AnySpeechRecognizer mirrors Apple's
SpeechAnalyzer,SpeechTranscriber,DictationTranscriber,SpeechDetectorandAssetInventory. According to the post, if your code uses that shared API, "changing the import is enough." - It adds speaker diarization (who spoke when), which Apple's Speech framework doesn't offer.
- AnyDecisionModel returns typed results with probabilities and confidence values for classification-style questions.
- Both packages can pull open models from the Hugging Face Hub and run them on device.
- Requirements: Swift 6.2+ and macOS 26 / iOS 26 or later. The Parakeet, Sortformer and MLX paths require Apple silicon.
- License: both GitHub repos list Apache 2.0. AnySpeechRecognizer's first release, 0.1.0, is tagged Oct. 28 on GitHub. The models carry their own licenses.
AnySpeechRecognizer: pick your engine
The blog lists the supported engines:
- Parakeet v3 (NVIDIA Parakeet TDT 0.6B v3): 25 European languages, with automatic language detection
- Parakeet Ultra: Moondream's post-trained version of v3
- Parakeet Unified: NVIDIA's English-only Parakeet
- Qwen3-ASR (0.6B and 1.7B): 30 languages and 22 Chinese dialects, including Mandarin, Cantonese, Japanese and Korean. It runs on the GPU, returns one final result per segment of up to 40 seconds, and is slower than Parakeet, so the post recommends it for files rather than live audio.
Hugging Face converted the models to Core ML and published them on the Hub. The original checkpoints' licenses vary: CC BY 4.0 for Parakeet v3, Parakeet Ultra and Sortformer v2; the NVIDIA Open Model License for Parakeet Unified and Sortformer v2.1; and Apache 2.0 for Qwen3-ASR. Downloads happen only on request: about 600 MB per Parakeet, 0.9 to 2.4 GB for Qwen3-ASR and about 250 MB for the diarizer.
Diarization
A SpeakerDiarizer runs NVIDIA's Streaming Sortformer alongside an Apple or Parakeet transcriber. It tracks up to four speakers, including when they talk over each other, and assigns each timed word to a speaker.
The numbers (self-reported)
Hugging Face tested on an M4 Max Mac Studio running macOS 27.0.1, using LibriSpeech files. These are the author's own measurements, not independent benchmarks:
- Parakeet Unified (file): 1.43% word error rate on test-clean and 2.19% on test-other
- Apple's built-in transcriber (file): 2.12% and 3.97%
- Parakeet transcribes an hour of audio from a file in roughly 20 to 40 seconds, using about 100 MB of memory once compiled
The post is upfront about limits. On AMI meeting recordings, "every engine we tested had a word error rate above 23%." It also says testing has been "only on macOS 27, not on an iPhone."
AnyDecisionModel: probabilities, not prose
Rather than prompting a language model and parsing its reply, AnyDecisionModel derives answers from the model's probabilities. The post's example routes a support ticket: it asks whether the ticket is urgent (a probability), which team should handle it (a typed Swift enum choice) and how frustrated the customer is (a score across levels).
The post lists six backends: MLX, MLX decision heads (such as Cloudflare's Clef-Flash, a 9B model), Core AI on OS 27, llama.cpp, Jev (TypeSafe's hosted API) and Ollama. Built without optional traits, the package has no third-party dependencies, and the Jev and Ollama backends also build on Linux.
A demo app, Emoji Magnet, uses yes/no questions to pick matching emoji from a pile of 343; the post says a full local pass takes about 10 seconds on an M4 Max with Qwen3 4B.
Why it matters
For Apple-platform developers, it's a low-friction way to try open speech models without rewriting Apple-API code, plus more inspectable classification than text generation. The open question is iPhone performance, which hasn't been tested yet.
What's confirmed / not confirmed
Confirmed (official sources): - Both packages, their engines, backends and requirements (Hugging Face blog, Oct. 29) - Apache 2.0 repo licenses; AnySpeechRecognizer 0.1.0 tagged Oct. 28; AnyDecisionModel at 0.6.0 (GitHub)
Not confirmed / third-party or self-reported: - All accuracy and speed figures are the author's measurements on one Mac - iPhone performance (untested, per the post) - Any Apple involvement or endorsement (none is claimed)
Sources
- Hugging Face blog, "Introducing AnySpeechRecognizer and AnyDecisionModel" (Oct. 29, 2026): https://huggingface.co/blog/anydecisionmodel
- GitHub: https://github.com/mattt/AnySpeechRecognizer
- GitHub: https://github.com/mattt/AnyDecisionModel
Related
Up: AI