Introducing AnySpeechRecognizer and AnyDecisionModel: Open Models for Speech and Decisions on Apple Platforms
Apple Platforms now feature AnySpeechRecognizer and AnyDecisionModel, open models for speech and decisions. These models expand beyond traditional language model capabilities like writing and translation. They include various Parakeet models such as Parakeet TDT 0.6B v3 and Parakeet Ultra, alongside Qwen3-ASR 0.6B and 1.7B, and Streaming Sortformer 4spk v2 and v2.1. The model-and-session pattern, similar to Foundation Models, uses a DecisionSession to manage state, allowing independent questions to be processed, potentially in batches.
Unlike earlier models focused on text, these new open models for Apple platforms expand into speech recognition and decision-making, marking a broader application of machine learning beyond traditional language tasks.
Time & source
Times shown in UTC
Display time zone: UTC
Local time zone unavailable; showing UTC.
PublishedOffset at this time: UTC+0Oct 29, 2026, 00:00 UTC
IngestedOffset at this time: UTC+0Oct 29, 2026, 13:00 UTC
- Published
- Oct 29, 2026, 00:00
- Ingested
- Oct 29, 2026, 13:00
- Source type
- Official
- Tier
- First-party
- Source status
- Healthy
Tier is a per-source editorial setting, not a per-item score.
Discussion trend
The percentage is based on collected discussion signal, not new comments or independent people. The curve only compares the same topic across time.
Language models can do a lot. They write, summarize, translate, and call tools. But they're only a small part of what machine learning can do.
Say a customer calls your support line. First, you want to know what they said (speech recognition). Then, you want to decide where to send them (decision). You could hand both to a language model, but there are models built for each that are better, faster, and less expensive.
In our AnyLanguageModel 1.0 recap , we looked at a year of local and hosted models in Swift. With AnyLanguageModel and swift-huggingface now on their 1.x releases, we're extending the same approach to speech and decisions: familiar Swift APIs with a choice of model.
Today we're announcing two packages:
- AnySpeechRecognizer implements Apple's new speech-to-text API with a choice of recognition engine, including NVIDIA's Parakeet and Alibaba's Qwen3-ASR running locally on Core ML, and adds speaker diarization to track who speaks when.
- AnyDecisionModel answers yes-or-no, multiple-choice, and rating-scale questions with typed results and probabilities. It derives each answer from the model's probabilities instead of generating text, using a model on your device with MLX, Core AI, or llama.cpp, or a decision model from Jev or Ollama.
Both packages can download open models from the Hugging Face Hub and run them on device.
AnySpeechRecognizer
Computers have been transcribing speech for decades, and in the past few years, they've gotten very good at it. Apple platforms already have an API for it. macOS 26 and iOS 26 introduced SpeechAnalyzer, Apple's new speech-to-text API. You add modules such as SpeechTranscriber and SpeechDetector to an analyzer, give it a file or a stream of audio buffers, and read results from async sequences as they arrive. AssetInventory installs the models, so your app decides when downloads happen.
It's a well-designed API, but the only engine behind it is Apple's. AnySpeechRecognizer keeps the API and lets you choose the engine:
- import Speech + import AnySpeechRecognizer
The package mirrors SpeechAnalyzer, SpeechTranscriber, DictationTranscriber, SpeechDetector, and AssetInventory, with Apple's Speech framework as the default engine. If your code uses that shared API, changing the import is enough. To use Parakeet instead, change only how you create the transcriber:
let transcriber = SpeechTranscriber ( model: ParakeetSpeechModel (variant: .v3), transcriptionOptions: [], reportingOptions: [.volatileResults], attributeOptions: [.audioTimeRange] )
The steps for installing assets, running the analyzer, and reading results stay the same. The README has a complete example and lists the differences from Apple's framework.
Meet the models
Parakeet v3 is NVIDIA's Parakeet TDT 0.6B v3 . It's a polyglot: it recognizes 25 European languages and works out which one it's hearing, so you don't pass a locale.
Parakeet Ultra is Moondream's post-trained take on v3 . It was more accurate in most of our measurements.
Parakeet Unified is NVIDIA's English-only Parakeet .
All three Parakeets run on the package's own Core ML runtime, which supports file and live input, volatile results, word timing, and word confidence.
Qwen3-ASR is Alibaba's speech model, in 0.6B and 1.7B sizes. It recognizes 30 languages and 22 Chinese dialects, including Mandarin, Cantonese, Japanese, and Korean, which Parakeet doesn't cover. It detects the language automatically, or you can set one:
let transcriber = SpeechTranscriber ( model: QwenSpeechModel (variant: .large, language: Locale . Language (identifier: "yue" )), transcriptionOptions: [], reportingOptions: [], attributeOptions: [] )
Qwen3-ASR gives one final result for each segment of up to 40 seconds, without volatile results, word timing, or confidence. It runs on the GPU and is slower than Parakeet, so it's better suited to transcribing files than live input.
To add another engine, implement SpeechRecognitionModel for its configuration and SpeechRecognitionExecutor for one module's session. The README includes a small provider that reports placeholder text to help you get started.
Core ML models on the Hub