SpeechAnalyzer for dictation on macOS 26
Notes from adding Apple's SpeechAnalyzer to a macOS dictation app. What it does and what it cannot do.
macOS 26 includes a new speech recognition API called SpeechAnalyzer. Apple did not make much noise about it. For anyone building a dictation app, it changed the ground rules.
What is new
SpeechAnalyzer is a new API for live and long form transcription. You stream audio in and text comes back while you are still talking. The model runs on the Mac and never touches the network.
The language model downloads once, the first time you use it. After that it works in airplane mode. Yubi shows a preparing state during that single download. Once it is done, dictation is fully offline.
Japanese and English
Japanese and English are separate models. In automatic mode, Yubi chooses Japanese or English from the Mac's current language setting. You can also pin one of the two in settings.
Proper nouns are the weak spot, and that is true of every speech engine, not just this one. A company name or a person's name is an unfamiliar sequence of sounds, so the engine replaces it with something that sounds similar. SpeechAnalyzer accepts hints about words that are likely to come up. Yubi supplies the names of the apps you have running and any words you have typed into its vocabulary box. A hint makes a word more likely to be recognised. It does not guarantee the spelling.
Where Whisper fits
Yubi also supports Whisper, the model OpenAI released, running locally through whisper.cpp. It also keeps audio on the Mac. The difference is that Whisper transcribes after you stop talking rather than while you talk, so you wait a moment. On my Mac, long notes taken in noisy places tend to hold together better with Whisper.
My own habit is SpeechAnalyzer for everyday use and Whisper for long notes in a cafe. Neither has a fee.
What it cannot do
It does not run on anything before macOS 26. That is an Apple constraint and there is no way around it, which is why Yubi requires macOS 26 or later. Intel Macs are out too. Yubi is built for Apple Silicon only.
SpeechAnalyzer returns text and stops there. It does not clean up the text. Your ums and your restarts land as spoken. Yubi has a tone feature that adjusts wording for the app you are typing into, but that is a set of plain rules running on the Mac, separate from the speech engine.
From the builder's side
The biggest change was that the bill for cloud transcription went away. Because Yubi does not upload audio, I do not run a transcription server or keep recordings. Everything dictation needs is already inside the Mac.