Mac Dictation Shows Nothing? Check the Language Download

The orb moves but no text lands. On macOS 14–15, on-device dictation needs a downloaded language and has no cloud fallback. The fix for each macOS version.

You tap fn, the orb ripples with your voice, you tap again, and nothing lands. No error, no text. Or a card you did not expect: Dictation language unavailable.

On macOS 14 and 15 the usual cause is not the microphone. It is that the on-device speech model for your language was never downloaded, and ListenIn will not route around that by sending audio to a server. Here is why that is deliberate, and how to fix it version by version.

The symptom: the orb moves, no text appears

Audio is being captured; the level reacts when you speak. What is missing is recognition. The card is Dictation language unavailable, with an Open Dictation Settings button on macOS 14–15, or a Download speech model button on macOS 26 when the new recognition engine is switched on (Settings › Dictation › Recognition). Under the headline is one of two detail lines:

  • Recognition keeps failing — make sure the language you speak is downloaded in System Settings › Keyboard › Dictation Languages: the classic engine gave up after three consecutive recognition errors.
  • Speech recognizer unavailable (en-US), or the zh-CN variant: macOS could not create a recognizer for that language at all.

Both mean the same thing: macOS has no local model for the language ListenIn asked for.

A different card, No speech detected with a Retry button, is the silence case, not the language case. If you spoke and still got it, keep reading.

Why on-device recognition needs a downloaded pack

ListenIn does not do speech recognition itself. It hands microphone audio to Apple’s speech engine and asks for on-device recognition only, on both engines it can use: the newer one on macOS 26 and the classic one everywhere else. The classic engine is capable of sending audio to Apple’s speech service. ListenIn does not allow it to. The full boundary is on the security page.

That one decision creates the trade-off this article is about. An on-device model has to be on the disk before it can run, and the model for a language is fetched when you add that language under Dictation; it is not preinstalled with macOS. If the model for your language is not there, a dictation app has two options: quietly upload the audio and let a server recognize it, or fail. ListenIn fails, retries a few times in case the error was transient, then shows the card.

Allowing the cloud path would make the failure disappear. An audio boundary only means something if it holds when it is inconvenient. The card you are looking at is the proof that no audio left the Mac.

macOS 14 (Sonoma) and 15 (Sequoia): where the download lives

Apple’s “Dictate messages and documents on Mac” support page (macOS 14 guide, checked 2026-09-18) puts it under System Settings › Keyboard › Dictation: click Edit next to Languages, then pick a language and region. Clicking Open Dictation Settings on ListenIn’s card opens that Keyboard pane for you.

Download the language ListenIn is actually asking for. In ListenIn, Settings › Dictation › Recognition › Recognition language has two choices: Chinese (with mixed English) and English. The first asks Apple for zh-CN (Chinese, mainland China); the second asks for en-US. Mixed Chinese–English sentences are handled inside the Chinese model, so you do not need both packs for that.

Adding a language can kick off a download that is still running when you go back to dictate. The reliable check on an Apple silicon Mac: turn Wi-Fi off, open Notes, and use Apple’s own Dictation. Apple’s Sonoma page says that on Apple silicon, Dictation for supported languages is processed on the device with no internet connection required. So if Apple’s Dictation produces text with the network off, the language pack is on the disk, which is what ListenIn’s on-device request needs. If it does not, the download has not finished, or that language is not offered on-device, and no third-party app can fix either. Once it works, go back to ListenIn and dictate again. No restart is needed; each session checks for the recognizer fresh.

Apple silicon vs Intel on macOS 14–15

Apple’s own Dictation behaves differently on the two. The same Sonoma page says that on an Intel-based Mac “your dictated utterances are sent to Apple” (Apple Support, as of 2026-09-18), while Apple silicon processes supported languages on the device.

ListenIn does not use Apple’s Dictation feature. It uses the speech recognition API and asks for on-device recognition on every Mac, Intel included; the build is universal, and Intel Macs on macOS 14 or later are supported (see the FAQ). The fix path is identical: download the language under Dictation settings, then dictate again. What differs is what “still failing” means. On Apple silicon it almost always means the download has not finished. On Intel, if the card keeps returning after the language is installed, Apple may not be offering an on-device model for that language on that hardware. ListenIn will not fall back to uploading. Tell us on the feedback page with your macOS version and language, and we will say what we know.

macOS 26: the new engine and system-managed downloads

On macOS 26, ListenIn uses Apple’s newer speech engine when it is available and the classic engine otherwise. The switch is under Settings › Dictation › Recognition, on by default. The newer engine has its own per-language model, installed through the system’s asset store rather than the Dictation pane. ListenIn asks macOS to install the model for your recognition language on launch, when you change the language, and when you switch the new engine on; the download runs in the background. Until it completes, dictation runs on the classic engine, which brings back the rule above: the classic engine still needs the Dictation language downloaded.

If the language is missing on macOS 26 with the new engine on, the card offers Download speech model instead of sending you to System Settings. Click it and the card stays where it is and counts up, Downloading speech model… with a percentage, because a silent wait is indistinguishable from a hang. When the install finishes and the card is still open, ListenIn re-runs the dictation you were attempting. If you have moved on, the next dictation simply uses the new engine. If the install fails, including when the new engine does not support your language, the card says why and switches to Open Dictation Settings.

Still nothing? Rule these out, in order

  1. Recognition language mismatch. If you speak English with Recognition language set to Chinese (with mixed English), the pack that has to be present is the Chinese one, and your English will be recognized by a Chinese model. Match the setting to what you will actually say, then check that language’s download.
  2. Voice Control. Apple’s page says standard Dictation is not available while Voice Control is on. ListenIn takes a different path than Apple’s Dictation, but turn Voice Control off while you diagnose so you are testing one thing at a time.
  3. Microphone permission and input device. ListenIn’s first-run step is ① Microphone + Speech Recognition. If either was denied, grant both under System Settings › Privacy & Security. If the orb reacts to your voice at all, permission is not the problem. A card reading Microphone unavailable — check your input device means the input device changed or reported a format ListenIn could not use; reselect the mic and dictate again.

What ListenIn does with no network

Once the pack is installed, recognition needs no connection. What needs one is cleanup: the text-only pass that removes fillers and repairs sound-alike errors, when it runs on ListenIn’s service or on your own cloud key. With the network down:

  • Recognition still runs on the Mac and produces the raw transcript.
  • Cloud cleanup fails, the raw transcript still lands at your cursor, and the HUD labels it: Cleanup failed — raw transcript inserted (check network or key).
  • If you have a local Ollama model set as the backup, the text is cleaned by it instead and labeled Cloud unreachable — cleaned by your local model. With Offline Mode on, cleanup never tries the cloud at all. The zero-cloud setup is covered in fully local dictation on a Mac with Ollama.

So “works offline” is true with a caveat that this whole article is about: the language model has to be on the disk first, and the cleanup step is either skipped with a label or run locally. That is the trade-off of forcing recognition to stay on the Mac. If you want the boundary, the Mac dictation page covers the rest of what happens between fn and your cursor.

Try it on your own Mac

Free tier, no account. Audio never leaves your Mac.

Download for Mac

← All posts