speech-analyzer
SpeechAnalyzer
On-device speech-to-text on Apple platforms via the iOS 26 Speech framework (SpeechAnalyzer + SpeechTranscriber), the modular async/await successor to SFSpeechRecognizer built for long-form and live transcription. The deep API reference — architecture, every module, file and live pipelines, asset/locale management, result handling, SwiftUI integration, SFSpeechRecognizer migration — lives in references/guide.md. This file is the decision and discipline layer: read it first, open the guide for specifics.
This skill covers turning audio into text. It does not cover capturing that audio — the mic tap, AVAudioEngine, session category, and format wiring belong to avfoundation-audio. SpeechAnalyzer consumes AVAudioPCMBuffers; getting them is that skill's job.
Dials
Set these explicitly at the start; they change what "correct" means.
SOURCE—file(pre-recordedAVAudioFile; prefer the structuredanalyzeSequence(from:)and.offlineTranscriptionpreset) ·live(mic buffers fed through anAsyncStream<AnalyzerInput>; autonomousstart(inputSequence:)+.progressiveLiveTranscription).RESULTS—final-only(commit onlyresult.isFinal; simplest, no flicker) ·volatile(enable.volatileResults, show interim guesses as a replaceable preview, commit on final). AddattributeOptions: [.audioTimeRange]only if you need word/segment timing.LOCALE_STRATEGY—current-only(resolvesupportedLocale(equivalentTo: .current), download on demand) ·reserved(pin specific languages withAssetInventory.reserve(locale:)so the system won't reclaim the model; bounded bymaximumReservedLocales).
When to use
Building or reviewing any transcription, dictation, live-caption, or audio-to-text feature on an iOS 26+ target. If the target must support iOS 25 or earlier, or watchOS, SpeechAnalyzer is unavailable — fall back to SFSpeechRecognizer. If you only need to capture audio (not transcribe it), use avfoundation-audio.