Local speech-to-text apps

A local speech-to-text app you can check, not just trust.

“Local” is easy to print on a download page and easy to test on your own computer. This is the practical half of the local-versus-cloud question: how to size a speech model to your hardware, which cross-platform apps run one, and how to watch an app’s network traffic on macOS, Windows, and Linux so you know what leaves the machine and when.

Source-reviewed

1. Know what a local app still downloads and sends

In a local app the speech model is a file on your disk and recognition runs on your processor. That file has to arrive somehow, so almost every local app downloads a model on first run or from a model picker, often several hundred megabytes. After that, the dictation itself should need no connection.

Other traffic is normal as long as it is disclosed: update checks, license or trial activation, crash reports, and any optional cloud mode the same app offers. Many apps mix modes. Spokenly, for example, runs local Whisper and Parakeet models for free, also supports cloud engines through your own API keys or its Pro plan, and documents a local-only mode that blocks every network request. For any app, the question is which mode is active when you press the key.

  • Once: the installer and the model file.
  • Periodically: update checks and license check-ins.
  • Per dictation: nothing, in a local mode.
  • Only if you turn it on: cloud recognition, AI clean-up, or sync.

2. Size the model to your hardware and language

Two model families dominate local dictation. NVIDIA’s Parakeet TDT 0.6B v3 has 600 million parameters, transcribes 25 European languages with automatic language detection, outputs punctuation and capitalization, and is released under CC BY 4.0. OpenAI’s Whisper is a multilingual family whose reference table runs from tiny (39 million parameters, about 1 GB of GPU memory in OpenAI’s implementation) through base, small, and medium to large (1,550 million, about 10 GB), plus turbo (809 million, about 6 GB), an optimized large-v3 that OpenAI says is faster with minimal accuracy loss.

Desktop apps usually ship quantized builds that are smaller than those reference figures. Handy’s download list shows the practical range: Whisper Small at 487 MB, a quantized Whisper Large at 1,100 MB, Whisper Turbo at 1,600 MB, and Parakeet Unified EN 0.6B at 731 MB.

For live dictation, a bigger model is not automatically better: one that is slow on your machine adds a pause after every sentence. Start with the app’s default, dictate a realistic paragraph with your own names and numbers, and move up a size only if it fails. If your language is outside Parakeet v3’s list, choose a multilingual Whisper model and confirm the app offers it.

3. Check a Mac app with LuLu or Little Snitch

LuLu, from Objective-See, is a free, open-source firewall for macOS 10.15 and later that alerts you whenever a process makes a new outgoing connection, shows the process and its destination, and saves your allow or block decision as a rule. Little Snitch, from Objective Development, is a network monitor and application firewall that shows where your Mac connects, with connection alerts, connections grouped by app, domain, or country, and a traffic history.

Use either the same way. Let the dictation app download its model with alerts on. Then block its outgoing connections, quit and reopen it, and dictate several sentences: a local app keeps typing, while one that depends on a server fails or waits. Finally, review which hosts it tried to reach and when. A request at launch is usually an update or license check; a connection that coincides with every dictation means audio or text is leaving.

  • Allow the first-run model download, then block.
  • Restart the app after blocking so an open session does not hide a dependency.
  • Line up connection times against the moments you dictated.

4. Check a Windows or Linux app from the command line

On Windows, find the app’s process ID in Task Manager’s Details tab, then run Get-NetTCPConnection -OwningProcess followed by that ID in PowerShell. Microsoft documents the cmdlet as listing TCP connections with their local and remote addresses, ports, and state, and -State Established narrows the output to live connections. Run it while the app is idle, again during a dictation, and again after, and compare the remote addresses.

On Linux, ss from iproute2 dumps socket statistics; its manual documents -t for TCP sockets, -u for UDP sockets, and -p to show the process using each socket. Run ss -tup while the app is idle and again while you speak, and look for new remote addresses owned by the dictation process. Then take the network down entirely, start the app, and dictate: the runtime result is the evidence that counts.

5. Cross-platform local apps and what to read before trusting one

If you use more than one operating system, one app on all of them keeps the hotkey, vocabulary, and habits the same. Handy is free and MIT-licensed, runs on Windows, macOS, and Linux, transcribes locally with Whisper or Parakeet, and documents a manual model install for networks that block downloads. Spokenly runs on Mac, Windows, Linux, and iPhone with free local Whisper and Parakeet models, optional cloud engines, and the local-only mode described above.

Before dictating anything sensitive, read three things in the app you choose: which model is active by default, whether any formatting, clean-up, or rewriting step calls a cloud model, and what the license or account system sends home. Then run the check for your operating system above, because a settings screen tells you what should happen and a connection log tells you what did.

6. IraVoice: what runs locally and what connects

IraVoice 1.2.2 runs on macOS 13+ on Apple silicon, Windows 10 or 11 (64-bit), and Linux (beta). Recognition runs on the computer with NVIDIA Parakeet; the default Parakeet Unified EN model is about 700 MB and downloads once on first run, and Parakeet v3 (25 European languages) and Whisper models are optional offline alternatives. On IraVoice Local, audio and text never leave the computer.

The connections it does make are the ones you should expect to see in a monitor: the one-time model download, plus trial and license check-ins and update checks to api.iravoice.com, which carry a salted hash of a hardware ID rather than the raw ID. There are no accounts and no product telemetry. The license checks in weekly and keeps working for 30 days without a connection, so an offline test lasts well beyond one session.

IraVoice Local costs $79 once for one computer, $109 for two, or $149 for three, after a 3-day free trial that starts with the first dictation and needs no email, card, or account. A separate IraVoice Cloud plan is listed as coming soon and is not on sale.

  • Hold Right Command on a Mac, Right Ctrl on Windows, or Ctrl+Space on Linux.
  • Corrections you teach it are kept as word pairs on the computer.
  • Code names in developer tools come from the local Git project on Mac and Windows, never from source text.

Decision guide

Which local setup fits your machine?

Choose the app and model for your hardware and language, then check it with the tool for your operating system.

If you needChooseWhy
One free app across Mac, Windows, and LinuxHandy or Spokenly with local modelsBoth run Whisper and Parakeet on the device; Handy is open source, Spokenly adds optional cloud engines.
One of 25 European languages on a modest laptopA Parakeet TDT 0.6B v3 model600 million parameters, automatic language detection, punctuation and capitalization built in.
A language outside Parakeet v3’s listA multilingual Whisper modelPick the smallest size that handles your names and accent at a speed you can live with.
Evidence of what a Mac app sendsLuLu or Little SnitchAlerts name the process and destination of each new outgoing connection.
Evidence on Windows or Linux without installing anythingGet-NetTCPConnection or ss -tupBoth list connections by owning process, before, during, and after a dictation.
On-device held-key dictation that spells code namesIraVoice Local — from $79 onceParakeet on the computer; it connects only for the model download, license check-ins, and update checks.

Primary sources

Use the current documentation.

This guide was reviewed October 2, 2026. Product versions, settings, policies, and availability can change.

  1. NVIDIA parakeet-tdt-0.6b-v3 model card ↗

    600 million parameters, 25 European languages, automatic language detection, punctuation, and the CC BY 4.0 license.

  2. OpenAI Whisper on GitHub ↗

    Multilingual model family, parameter counts, approximate GPU memory, and the turbo model.

  3. Handy on GitHub ↗

    Free MIT-licensed local dictation on Windows, macOS, and Linux, model download sizes, and manual model installation.

  4. Spokenly ↗

    Platforms, free local Whisper and Parakeet models, optional cloud engines, and the local-only mode.

  5. Objective-See: LuLu ↗

    Free, open-source macOS firewall, outgoing-connection alerts, and rules.

  6. Objective Development: Little Snitch ↗

    macOS network monitor and application firewall with connection alerts and traffic history.

  7. Microsoft Learn: Get-NetTCPConnection ↗

    PowerShell cmdlet that lists TCP connections, filterable by owning process and state.

  8. ss(8) Linux manual page ↗

    Socket statistics, including the -t, -u, and -p options.

Questions

What readers usually ask next.

What does on-device speech to text mean in practice?

The recognition model is a file on your computer and runs on its processor, so speech becomes text without an upload. The app may still connect to download that model, check for updates, or verify a license; on-device describes the recognition step, not every byte the app sends.

How can I tell whether a dictation app is really local?

Download the model, then dictate with the network off after restarting the app. While online, watch the app’s connections with LuLu or Little Snitch on a Mac, Get-NetTCPConnection on Windows, or ss on Linux, and check whether any connection lines up with each dictation.

Parakeet or Whisper: which model should I use?

Neither wins everywhere. Parakeet TDT 0.6B v3 is a 600-million-parameter model for 25 European languages with automatic language detection. Whisper offers multilingual models from 39 million to 1,550 million parameters, plus turbo. If an app offers both, dictate the same paragraph with each and keep the one that is fast and correct on your machine.

How much disk space does a local speech model need?

From a few hundred megabytes to more than a gigabyte for the sizes most dictation apps offer. Handy lists Whisper Small at 487 MB, Parakeet Unified EN 0.6B at 731 MB, and Whisper Turbo at 1,600 MB; IraVoice’s default model is about 700 MB.

Is a local dictation app private by default?

Its recognition step is, if the local model is the active one. Check optional features separately: AI rewriting, cloud fallbacks, history sync, and crash reporting can each send data even when transcription is local.

Mac, Windows, and Linux

Try private, on-device dictation for yourself.

Hold one key, speak, and the words are typed where your cursor is. The 3-day free trial starts with your first dictation.