Skip to content
michael-L-iPublic

Repository files navigation

VoiceType

VoiceType

Dictation in 33 languages. Clean text instantly. All on-device.

A fast, private, open-source voice-dictation app for macOS. Hold a key, talk — in English, 中文, Español, 日本語, العربية, हिन्दी, Tiếng Việt, or 26 more — and your words land as clean, punctuated text in whatever app you're using.

Multilingual end to end: the speech model is matched to your language, the cleanup pass knows your language's punctuation and filler words, and the app's own interface ships in 16 languages. Every one of them runs on-device — your audio never leaves your Mac, in any language.

Download

Latest release  Platform  Swift  Privacy  Dictation languages  Interface languages  License

English · 简体中文 · Deutsch · Español · Français · Italiano · 日本語 · 한국어 · Nederlands · Polski · Português · Русский · Svenska · Türkçe · Українська · Tiếng Việt


North star: Speak anywhere, get clean text instantly, with your audio never leaving your Mac.

Why VoiceType

  • 🌍 Multilingual end to end, not English-with-subtitles. Dictate in 33 languages. VoiceType picks a speech model that actually supports your language, cleans up using that language's conventions — full-width 中文 punctuation, spoken 句号, French's space before « ! », Turkish's dotted İ, language-aware fillers — and ships its own interface in 16 languages.
  • 🔒 Private in every language. Audio and transcripts stay on your Mac. No account, no telemetry, no cloud — there's no "send the hard languages to a server" path to opt out of.
  • ⚡ Latency is the feature. Native Swift with on-device speech models — time-to-text is what we optimize.
  • 🎙️ Press-to-talk anywhere. A global hotkey works in any app; the cleaned text is inserted right where your cursor is.
  • ✨ Smart cleanup. Punctuation, capitalization, and filler removal — without ever changing your words.
  • 📊 Your voice, visualized. A calm Home dashboard tracks your words, pace, and day streaks, with a full activity heatmap and a friendly, on-device usage summary — all computed on your Mac.
  • 🧩 Pluggable engines. Apple's built-in model by default, with optional on-device upgrades — NVIDIA Parakeet, NVIDIA Nemotron, OpenAI Whisper — you can download and switch between, one at a time.

Download

Download VoiceType for macOS. Requires macOS 14 or later on Apple silicon.

Open the DMG, move VoiceType to Applications, and follow the prompts on first launch.

How it works

Press and hold your chosen shortcut, speak, then release to insert the text into the current app. Configure your shortcut, language, and models in Settings.

Engines

Everything runs on-device. Apple's model is built into macOS and selected by default; you can download other local engines from the Models page in the sidebar and switch between them (one is active at a time).

Engine Languages Notes
Apple Speech (default) Varies by macOS Built in, no download. SpeechTranscriber on macOS 26+, on-device SFSpeechRecognizer on macOS 14–15
Parakeet TDT 0.6B V3 25 — European only NVIDIA, via FluidAudio. Fastest; no CJK
Nemotron 3.5 ASR 0.6B 40 locales incl. CJK, Arabic, Hindi NVIDIA, via FluidAudio. The multilingual workhorse
Whisper Base 99 OpenAI, via WhisperKit. Broadest coverage

For cleanup, built-in rules (instant, deterministic) are the default; Apple Intelligence (FoundationModels, macOS 26+) is an optional upgrade built into macOS with nothing to download. See docs/LANGUAGES.md for the full per-language engine matrix.

Downloadable models are fetched once on demand (no cloud at inference time — your audio still never leaves the Mac) and run as CoreML on the Apple Neural Engine. VoiceType automatically falls back to an available engine if your choice can't run, and always degrades to plain text rather than failing.

The Parakeet speech model is © NVIDIA, licensed under CC-BY-4.0. FluidAudio is Apache-2.0. Whisper is OpenAI (MIT); WhisperKit is MIT.

Languages

Most dictation apps are built for English and translated afterwards. VoiceType treats every language as a first-class case — this is the thing we care most about getting right.

33 languages for dictation · all 33 with hand-written cleanup rules · 16 with a translated interface · 0 that need the cloud.

Arabic · Bulgarian · 简体中文 · Croatian · Czech · Danish · Nederlands · English · Estonian · Finnish · Français · Deutsch · Greek · हिन्दी · Hungarian · Italiano · 日本語 · 한국어 · Latvian · Lithuanian · Maltese · Norsk · Polski · Português · Romanian · Русский · Slovak · Slovenian · Español · Svenska · Türkçe · Українська · Tiếng Việt

What "multilingual" actually means here:

  • You pick the language; VoiceType never guesses. Auto-detection produces confident nonsense when it's wrong, so it isn't offered.
  • Engines are matched to your language. Each speech model declares what it supports (Parakeet is European-only; Nemotron covers 40 locales including Chinese; Whisper covers 99; Apple's list comes from macOS). Models that can't handle your language gray out, and VoiceType switches to one that can.
  • Cleanup knows the language. Every one of the 33 languages ships a small, reviewable "language pack": its filler words (嗯/呃, ähm, euh — never words that carry meaning), its punctuation conventions (full-width 。,? for Chinese and Japanese, a narrow no-break space before !? in French, ¿ in Spanish, the danda । in Hindi, ؟ in Arabic), its question heuristics, and its own deterministic rules for anything those don't cover. Each has its own eval battery — 915 cases in total.
  • The interface is localized into 16 languages, following your macOS system language — independent of your dictation language, so a Japanese interface can dictate Portuguese.
  • Curated, not padded. We could list Whisper's 99 languages tomorrow; we offer the ones an engine is genuinely good at, and a test enforces it.

📖 Full language matrix, quality tiers, and known gaps →

Your language missing, or a translation off? Adding a language is deliberately small — a UI translation needs no Swift at all — see docs/LOCALIZATION.md. The machine-authored packs especially need native-speaker eyes.

Privacy

Audio and transcripts stay on your Mac, full stop — there is no cloud path. Nothing is logged off-device, and audio is never written to disk. Even the friendly usage summary is built from aggregate counts only — never your transcript text. This is a constitutional invariant of the project, not a setting we might change later.

Build from source

swift test              # run the VoiceTypeKit unit tests
./Scripts/build-app.sh  # build VoiceType.app (ad-hoc signed)
./Scripts/make-dmg.sh   # package a drag-to-install VoiceType.dmg
open VoiceType.app

Contributing

Contributions are welcome. Please read the contribution guide for development requirements, privacy expectations, and pull-request guidance. Want VoiceType in your language? docs/LOCALIZATION.md has the checklist — a UI translation needs no Swift at all, and dictation quality for a new language is one well-documented file. All participants are expected to follow the Code of Conduct. For vulnerabilities, follow the private reporting process in our Security Policy.

Architecture

Native Swift 6 / SwiftUI Dock app (macOS 14+) with a Home dashboard. Global push-to-talk hotkey · AVAudioEngine mic capture · pluggable on-device transcription · pluggable cleanup · paste/Accessibility text injection · a floating recording HUD. The core (VoiceTypeKit) is pure and unit-tested; the app target holds the system engines and UI. Details live in CLAUDE.md and evolve via specs/.

License

MIT © 2026 Michael Li.

Third-party components and on-device models bundled with the app retain their own licenses — see THIRD_PARTY_LICENSES.md (also shipped inside the app bundle).

How this repo is run

VoiceType is a standalone product repo run day-to-day by an agent (the outer loop: triage → review → merge/escalate), with a human supplying taste by editing specs/. It links the @aros/* framework during local dev. See CLAUDE.md for the operating rules.

Repo layout

VoiceType/
├── CLAUDE.md          # operating rules for the agent
├── Package.swift      # SwiftPM: VoiceTypeKit (core) + VoiceType (app)
├── Sources/
│   ├── VoiceTypeKit/  # pure, tested core: protocols, pipeline, cleanup, resolver
│   └── VoiceType/     # app: hotkey, audio, engines, injection, dashboard UI
├── Tests/             # VoiceTypeKit unit tests
├── Scripts/           # build-app.sh · make-dmg.sh · make-icon.swift · release.sh
├── Resources/         # Info.plist · entitlements · AppIcon
├── docs/              # LANGUAGES.md (coverage matrix) · LOCALIZATION.md · readme/
├── specs/             # the human's surface — product direction (agent doesn't edit)
└── README.md

Releases

Packages

Used by

Contributors

Languages