A 10-minute test to check a dictation app works offline

Steps anyone can follow on a Mac or Windows PC to see whether a dictation app sends anything while you speak, what each result means, and what the test cannot show.

10 min read

In short

  • To check a dictation app yourself, dictate once with the internet switched off and once with a network monitor open, and watch how much the app sends while you speak.
  • Working with the internet off and never connecting are separate claims, because a tool can transcribe on your computer and still download a speech model, check for updates or sign you in.
  • Activity Monitor on a Mac and Resource Monitor on Windows both show what each program sends, and the whole test takes about 10 minutes with no extra software.
  • The test shows what one version of an app did while you watched, so it cannot promise what a later update or a cloud option switched on afterwards will do.
  • Dictate Safe, a dictation app, lists every connection it can make and has one switch, Offline Lock, that refuses every connection leaving the computer, ours included.

What is the 10-minute version of the test?

The whole test takes about 10 minutes, and everything in it uses tools that come with macOS or Windows.

  1. While online, open the app, finish its setup and let it download anything it needs.
  2. Open Activity Monitor (Mac) or Resource Monitor (Windows), go to the Network tab and find the app.
  3. Dictate into TextEdit or Notepad for a minute while you watch what the app sends.
  4. Cut the network and dictate again, then quit the app, reopen it and dictate once more.
  5. Reconnect and keep watching for a couple of minutes, in case anything was saved to send later.

The quicker checks, such as reading a privacy policy, are in Does dictation software send your voice to the cloud? This page is the longer version of its network check.

What is the difference between offline and air-gapped?

These three claims are easy to confuse, and each needs its own check.

ClaimWhat it meansHow to check it
Works offlineSpeech becomes text with no networkSwitch the internet off and dictate
Sends nothing while you dictateNo data leaves while you speak, even onlineWatch a network monitor
Never connectsNo connection ever, including setup and updatesWatch it over days, or block it and see what stops working

Air-gapped is a stricter word from security work: a computer with no connection to any network, whatever its software tries. That describes the machine and how it is set up, so no app can give it to you. The most an app can do is refuse to make connections of its own.

A tool that transcribes on your computer can pass the first two checks and still connect: to download its speech model, once at setup; to ask whether a newer version exists, sometimes at each start; or to sign you in and check your license. None of these needs your voice. Each is still a connection, so if your rules say a machine must make none, look for a tool that lets you switch them off.

How do you run the Wi-Fi test?

Finish the setup and dictate one sentence while online first. A test run before the speech model has downloaded only shows that the download failed.

  1. Cut the network. On a Mac, switch Wi-Fi off from the Wi-Fi menu in the menu bar; on Windows, turn on Airplane mode in Quick Settings. Unplug any network cable too.
  2. Dictate a few ordinary sentences into TextEdit or Notepad.
  3. Quit the app, reopen it while still offline, and dictate once more.

Text at its usual speed means the speech is recognised on your computer. An error, a long wait or no text at all means the app needs a server for the recognition. An app that will not open while offline needs a connection to start, usually for a license check, even if the dictation itself is local.

How do you see what an app sends on a Mac?

Activity Monitor is on every Mac. Open it with Spotlight and click the Network tab, which lists each process with the bytes it has sent and received.

  1. Type the dictation app’s name in the search field. Keep any helper processes with a similar name in view too.
  2. Note how much it has sent, dictate into TextEdit for a full minute, then look again.

For figures that refresh every second, open Terminal and run nettop -P -t external. Each row is a process name cut to about 15 characters, then a dot and the process number; when we ran it, Chrome’s traffic showed up as Google Chrome H. Press q to quit, then watch only the dictation app, with its number in place of 12345: nettop -P -d -t external -p 12345.

-P gives one line per process, -d shows the change since the last refresh (the first line is the total so far), and -t external leaves out traffic the computer sends to itself. For a tool that transcribes on your computer, expect bytes_out to stay at or near 0 B while you dictate. Leave out -m tcp: nettop watches TCP and UDP by default, and that option would hide the UDP part.

How do you see what an app sends on Windows?

Resource Monitor comes with Windows. Open it from the Start menu by typing its name, or run resmon.

  1. Click the Network tab and open the section called Processes with Network Activity.
  2. Find the dictation app in that list.
  3. Dictate into Notepad for a minute and watch the app’s send figure while you speak.

The list shows what each process is sending and receiving. If the tool transcribes on your computer, expect it to send nothing while you dictate, or to drop out of the list altogether. A tool that uploads audio should send steadily for as long as you talk and stop soon after you stop.

What do the results mean?

These are the patterns to expect, reasoned from how each kind of tool works. None of them is a measurement of a particular product.

What you seeWhat it most likely means
Sent data stays flat while you speakThe speech is turned into text on your computer.
Sent data climbs while you speak and stops when you stopYour audio is going to a server as you talk.
A small jump each time a dictation endsSomething is sent once per dictation, probably the text. Text is tiny next to audio, so even a small jump is worth asking the vendor about.
A jump soon after you reconnectThe app kept something while offline and sent it later.
A large download at setup, almost all of it receivedA speech model arriving. For our own app, that is about 150 MB for the default model.
A brief, small exchange when the app startsAn update check or a license check.
Traffic to 127.0.0.1The computer talking to itself. It never leaves the machine.

What can the test not tell you?

The test records how many bytes the app sent while you watched, with no view of what was inside them.

  • An update can change what the app does, so run the test again after updating.
  • A cloud option switched on later, by you or anyone else using the computer, makes the result out of date. Note which mode the app was in when you tested.
  • Other software is outside the test. Your words go to the app you dictate into, and a web page or an AI assistant can send them on. If that assistant is Claude Code, its voice mode is a separate question: where Claude Code’s voice mode sends your audio.
  • An app that hands audio to the operating system’s own speech service sends it from a system process with a different name, which watching the app alone would miss.

For protection that lasts, you need a block that stays in place: a firewall that asks before each new outgoing connection, or a switch in the app that refuses to connect and tells you when it does.

How does Dictate Safe handle its own connections?

This part is about our own product, so read it as the maker describing it. Dictate Safe, a dictation app for macOS and Windows, runs speech recognition on your computer. It needs the internet once, to download a speech model (about 150 MB for Base, the default, or about 490 MB for Small), and works offline after that. Every outbound connection it can make is on this list:

  • 127.0.0.1, which is your computer talking to itself and never leaves the machine.
  • huggingface.co, to download a speech model.
  • Our own website, to sign in, check for a new version, and download the prompt library when you ask for it.
  • api.groq.com or api.openai.com, only if you switch cloud on with your own key. The app talks to the provider directly.

There is no telemetry and no analytics, and a badge always shows whether the app is Local (the default), Hybrid or Cloud.

Offline Lock is one switch that refuses every connection that would leave the computer, ours included, and the app says so in plain words whenever it refuses one. It is in Settings, in the menu bar, and on a row of the privacy card that is visible on every screen. Dictation carries on with the lock on, using the model already downloaded (see how the offline engine works).

We have not published a byte count for our own app, so test it as you would any other. With Offline Lock on, expect a monitor using -t external to show nothing from Dictate Safe. The help article on where your data is stored and the security overview have the rest.

Questions people ask

How can I tell if my dictation app is really offline?

Switch off Wi-Fi, or turn on Airplane mode, and dictate a few sentences into a plain text editor. If the text appears at its normal speed, the dictation app is recognising speech on your computer. Then dictate again with the internet on while Activity Monitor (Mac) or Resource Monitor (Windows) is open, and check that the app sends nothing while you speak.

What is the difference between offline and air-gapped dictation?

An offline dictation app can turn speech into text with no network connection. Air-gapped describes a computer with no connection to any network at all, which is a property of the machine and how it is set up. No app can make a computer air-gapped, though an app can refuse to make connections of its own.

Why does an offline dictation app still connect to the internet?

An offline dictation app may still connect to download its speech model, to check for a newer version, or to sign you in and check your license. None of these needs your voice, but each is a connection. A cloud option, if the app has one and you switch it on, is a further connection that does carry your audio or your text.

How do I see what an app sends on a Mac?

On a Mac, open Activity Monitor and click the Network tab, which shows the bytes each process has sent and received. For figures that refresh every second, run nettop -P -d -t external in Terminal: it shows each process's change since the last refresh and leaves out traffic the computer sends to itself. Press q to quit.

How do I see what an app sends on Windows?

On Windows, open Resource Monitor from the Start menu or by running resmon, click the Network tab and look at Processes with Network Activity, which shows what each process sends and receives. Watch the dictation app while you speak: one that transcribes on the computer should send nothing during dictation.

Does Dictate Safe connect to the internet?

Dictate Safe needs the internet once to download a speech model, and it connects to our website to sign in and check for a new version. It connects to Groq or OpenAI only if you switch cloud on with your own key. It has no telemetry or analytics, and Offline Lock refuses every connection that would leave the computer, ours included.

Keep reading