S3DAT NEWS
· 14 stories RSS s3dat.com

New Swift packages add open-model choices for speech and decisions

Developer Mattt introduced AnySpeechRecognizer and AnyDecisionModel on October 29, giving Swift applications new interfaces for speech recognition and model decisions. The packages let developers separate application logic from some model choices, while keeping responsibility for testing the resulting behavior.

Spec sheet

Developer
Mattt; independent Swift packages
Announced
29 Oct 2026
Speech requirements
Swift 6.2; macOS 26 or iOS 26
Speech engines
Apple, Parakeet and Qwen3-ASR
Decision output
Typed probabilities, choices and scores

Apple supplies the starting interface

Apple's SpeechAnalyzer processes audio through modules and returns results asynchronously, with timestamps connecting text to the original recording. Its SpeechTranscriber runs on the device. Apple manages downloaded model assets in system storage and installs updates without adding those assets to the application's own bundle. AnySpeechRecognizer follows this interface while allowing additional recognition engines. The immediate change is a new choice behind familiar application code. Apple's implementation remains available as the package's default backend, so adopting the library does not itself require switching the recognizer.

The engines return different results

The package's capability table gives Parakeet live transcription with word timing, while Qwen3-ASR produces completed segments without individual word timestamps. Its Qwen implementation cuts long audio into segments of up to 40 seconds. Results therefore arrive after a segment completes, including when input ends or a gap appears. That timing difference changes what an application can display during a conversation. A completed segment suits a different interaction from a caption that updates while someone is speaking. The same transcriber interface exposes distinct output behavior.

Speaker attribution adds another module

Mattt's announcement describes a speaker diarization module using NVIDIA's Streaming Sortformer, operating alongside Apple or Parakeet transcription. It tracks up to four speakers and links speaker activity to the transcript's timeline. The launch post describes open-model downloads from the Hugging Face Hub, with fixed revisions and file checksums. This combines recognition and speaker attribution within one analysis session. A conversation transcript can consequently identify turns as well as words, while the application continues to receive results through the package's shared interface.

Compatibility stops at the module boundary

The repository gives the library its own analyzer and module types. Package modules and Apple's native module instances are not interchangeable inside the package analyzer. The library also leaves audio capture to the application, which supplies buffers for analysis. Its command-line tool can transcribe recordings and report elapsed time, memory use and recognition errors. These details explain the scope of the abstraction: it standardizes the recognition workflow while retaining separate responsibilities for input capture, engine selection and the application's handling of results.

Decisions use a different output contract

AnyDecisionModel returns probabilities, typed choices and rating scores. Its repository describes local MLX inference that maps permitted answers to labels and reads their probabilities in one model pass. That path supports up to 26 choices or 10 score levels. A separate trained decision-head backend reads outputs directly from the head and has no equivalent option-count limit. The distinction affects the questions an application can express. A finite set of destinations fits a typed choice, whereas a free-form response belongs to a different interface.

Backend choice also changes execution

The decision README describes local GGUF execution through llama.cpp and remote calls through the System One API. Its Jev and Ollama integrations return the server's probability and confidence values. Local backends support calibration parameters that adjust answer probabilities. The launch post also describes Swift package traits: applications select the integrations they build instead of taking every dependency. Without optional traits, the core types and hosted backends can build on Linux. The two packages therefore share a model-selection approach while serving different tasks and exposing different deployment choices.

ChoiceApple SpeechTranscriberParakeet via packageQwen3-ASR via package
ExecutionOn deviceLocal Core MLLocal Core ML
Live outputVolatile and final resultsLive output supportedSegment-final output
Word timingTiming in attributed resultsSupportedNot provided
Speaker attributionNo Speech framework diarizerSortformer alongside transcriberNot the documented pairing
Closest speech alternatives: Apple documentation and the package documentation describe different output contracts.

Claim check

  • Confirmed The two independent packages were announced on October 29, 2026 [1]
  • Confirmed The speech package documents Swift 6.2 and macOS 26 or iOS 26 requirements [2]
  • Company claim The creator reports speech results from a Mac; the post does not establish iPhone performance [1]
  • Unclear Typed decisions establish that an automated routing threshold is reliable [3]
  • Unclear Hosted compatibility is tested with fixtures; calibration transfer beyond the tested tasks is unestablished [3]

Our read Opinion

We favor these packages as a way to compare application behavior without rewriting every integration. The strongest case is a specific missing feature, such as speaker attribution or typed routing output. We would keep the native speech path in the evaluation and avoid a blanket migration. Repeated target-device tests showing lower maintenance effort and fewer application-level errors would change our mind about making the new path the default.

What we're watching

  • On November 7, 2026, we will revisit the speech repository for iPhone evaluations and any changes to documented engine capabilities.
  • On November 7, 2026, we will check whether the decision repository adds live hosted-service tests or new calibration evidence.

Sources