Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 12 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -96,8 +96,17 @@ jobs:
- name: Setup Hugo
uses: peaceiris/actions-hugo@v3
with:
hugo-version: 'latest'
hugo-version: '0.165.0'
extended: true

- name: Build Hugo site
run: cd web && hugo --minify
- name: Build and test website
working-directory: web
run: npm run check

- name: Validate rendered HTML
working-directory: web
run: npx --yes html-validate 'public/**/*.html'

- name: Validate CSS
working-directory: web
run: npx --yes stylelint static/style.css
30 changes: 28 additions & 2 deletions .github/workflows/deploy-website.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,34 @@ concurrency:
cancel-in-progress: false

jobs:
verify:
name: Verify Website
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6

- name: Setup Hugo
uses: peaceiris/actions-hugo@v3
with:
hugo-version: '0.165.0'
extended: true

- name: Build and test website
working-directory: web
run: npm run check

- name: Validate rendered HTML
working-directory: web
run: npx --yes html-validate 'public/**/*.html'

- name: Validate CSS
working-directory: web
run: npx --yes stylelint static/style.css

deploy:
name: Deploy to GitHub Pages
needs: verify
runs-on: ubuntu-latest
environment:
name: github-pages
Expand All @@ -32,11 +58,11 @@ jobs:
- name: Setup Hugo
uses: peaceiris/actions-hugo@v3
with:
hugo-version: 'latest'
hugo-version: '0.165.0'
extended: true

- name: Build Hugo site
run: cd web && hugo --minify
run: cd web && hugo --cleanDestinationDir --minify

- name: Configure Pages
uses: actions/configure-pages@v5
Expand Down
3 changes: 3 additions & 0 deletions web/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,6 @@
public/
resources/
.hugo_build.lock

# Netlify CLI local site link (machine-specific, created by `netlify deploy`)
.netlify/
7 changes: 7 additions & 0 deletions web/.htmlvalidate.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"extends": ["html-validate:recommended"],
"rules": {
"doctype-style": "off",
"no-trailing-whitespace": "off"
}
}
6 changes: 3 additions & 3 deletions web/content/_index.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: "VocaMac - 100% Local Voice-to-Text for macOS"
description: "Free, 100% offline voice-to-text for macOS. Hold a hotkey, speak, and text appears at your cursor — private, fast, and powered by WhisperKit on Apple Silicon."
keywords: "voice to text macOS, offline dictation, speech to text mac, whisperkit, coreml speech recognition, push to talk mac, open source dictation, privacy voice typing, apple silicon voice recognition"
title: "VocaMac — native voice typing for macOS"
description: "Native voice typing for macOS. Hold a hotkey, speak, and text appears at your cursor — transcribed by a Whisper model running on your own Mac. Free and open source."
keywords: "voice to text macOS, on-device dictation, speech to text mac, whisperkit, coreml speech recognition, push to talk mac, open source dictation, privacy voice typing, apple silicon voice recognition"
---
2 changes: 1 addition & 1 deletion web/content/features/_index.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: "Features"
description: "Explore every VocaMac feature — push-to-talk dictation, 99+ languages, custom vocabulary, usage stats, and more. 100% local voice-to-text for macOS."
description: "Every VocaMac feature — push-to-talk dictation, language support, custom vocabulary, usage stats, and more. On-device voice typing for macOS."
keywords: "vocamac features, voice to text features macOS, dictation app features, custom vocabulary, usage statistics, hotkey dictation"
---
48 changes: 14 additions & 34 deletions web/content/features/apple-silicon-native.md
Original file line number Diff line number Diff line change
@@ -1,53 +1,33 @@
---
title: "Apple Silicon Native"
subtitle: "CoreML + Metal + Neural Engine acceleration via WhisperKit. Blazing fast on M1/M2/M3/M4."
description: "VocaMac runs natively on Apple Silicon using CoreML and the Neural Engine for hardware-accelerated speech recognition. No cloud, no CPU bottleneck."
keywords: "apple silicon speech recognition, coreml voice to text, neural engine dictation, whisperkit macOS, M1 M2 M3 M4 voice typing, hardware accelerated transcription mac"
subtitle: "A native macOS app with local WhisperKit/CoreML transcription on Apple Silicon."
description: "VocaMac's stable release is built for Apple Silicon Macs and runs its WhisperKit speech-processing path locally after the model is available."
keywords: "apple silicon speech recognition, coreml voice to text, whisperkit macOS, local dictation mac, hardware accelerated transcription mac"
icon: "⚡"
---

## Designed for Modern Mac Hardware
## Built for Apple Silicon

VocaMac is built from the ground up for Apple Silicon Macs. Using CoreML and WhisperKit, the app harnesses the dedicated Neural Engine in your M1, M2, M3, or M4 chip for speech recognition that's faster and more efficient than anything running on the CPU alone.

This isn't just optimization. It's a fundamental architectural advantage. While cloud-based dictation apps send your voice across the internet and wait for responses, VocaMac processes everything locally on your Mac in milliseconds.

## Neural Engine Acceleration
VocaMac's stable release targets Apple Silicon Macs running macOS 13 Ventura or later. The app is a native SwiftUI menu-bar client, with WhisperKit and CoreML providing the stable release's speech-processing path.

![VocaMac Settings showing model management on Apple Silicon](/screenshots/settings-models.png)

Apple Silicon's Neural Engine is a specialized processor designed for machine learning tasks. When VocaMac transcribes your voice, it offloads the heavy computational work to this dedicated hardware.

The result is remarkable. Transcription happens in real time. You finish speaking, and your words appear before you've had time to take your next breath. This responsiveness creates a natural, uninterrupted flow that makes dictation feel less like using an app and more like a natural extension of how you type.

The Neural Engine operates independently from your Mac's CPU and GPU. This means transcription doesn't compete with your other work. You can continue editing documents, reviewing emails, or running complex applications while VocaMac transcribes in the background without any performance impact.

## CoreML and Metal Integration
The exact speed and memory profile depends on the selected model, recording length, available memory, and what else your Mac is doing. VocaMac exposes model sizes and resource guidance in Settings so you can choose an appropriate trade-off.

CoreML is Apple's framework for on-device machine learning. VocaMac uses CoreML to run the Whisper speech recognition model locally, with zero reliance on cloud services. Your voice never leaves your Mac.
## Local Processing Boundary

Metal, Apple's graphics API, provides additional acceleration for certain computational tasks. Together, CoreML and Metal ensure maximum efficiency while keeping your data private and your Mac responsive.
After the selected model is downloaded, the Whisper processing path runs on your Mac. Dictation audio is not sent to a Voca cloud endpoint. The first model download, release downloads, and update checks are separate network actions.

WhisperKit, the framework powering VocaMac, was specifically engineered to take full advantage of Apple Silicon. It automatically detects your hardware and uses the optimal execution path. CoreML for neural processing. Metal for graphics-related computation. The CPU for coordination. All working in concert.
This boundary makes VocaMac useful when you want local speech processing or need to work with sensitive notes. It does not make transcription instantaneous or set a fixed accuracy or latency across every Mac.

## Unmatched Performance
## Model Choices

Benchmark after benchmark shows the same pattern. On an M1 Mac, medium-sized Whisper models transcribe audio roughly 3 to 5 times faster than real time. A 30-second audio clip finishes transcribing in 6 to 10 seconds. CPU-only inference on machines without a Neural Engine can take 90 seconds or more for the same task — which is exactly why VocaMac ships for Apple Silicon only.
The stable catalog includes Tiny, Base, Small, compact Large v3, Distil Large, and Large v3 variants. Smaller models generally need less disk space and memory; larger models may improve accuracy while taking longer to download and process.

This performance gap only widens with larger, more accurate Whisper models. The base model runs instantly. The small model takes a few seconds. The medium model, which offers near-human accuracy, completes in under a minute on Apple Silicon. Cloud-based services may offer similar speed, but they require internet, demand subscription fees, and raise privacy concerns.

## Battery Efficiency and Thermal Design

Because the Neural Engine is purpose-built for machine learning, it's remarkably power efficient. A task that would consume significant battery power if handled by the CPU uses a fraction of the energy when offloaded to the Neural Engine.

This efficiency translates to cooler operation. Your Mac's fan rarely needs to spin up. The app runs silently, without adding heat or noise to your workspace.

On M-series Macs, you can use VocaMac all day without noticing any battery drain. The app is designed to be always available, always responsive, and always respectful of your hardware's resources.
Start with a smaller model if you are checking the workflow or have limited disk space. Move up the catalog when accuracy matters and your Mac has enough headroom. The Settings screen shows the current download state and lets you switch the selected model.

## Why It Matters

Apple Silicon isn't just faster. It represents a different philosophy. Apple designed these chips to handle the tasks people actually care about with remarkable efficiency.

For dictation, this philosophy makes a difference. Faster transcription means less waiting. Local processing means your voice stays private. Efficient hardware means your Mac stays cool and responsive. Taken together, these advantages make VocaMac the most natural voice-to-text experience on Mac.
Apple Silicon gives the native app a consistent local hardware target and lets CoreML use Apple's on-device execution stack. You keep control over model downloads, microphone permissions, Accessibility access, and the text insertion destination.

Whether you have an M1, M2, M3, or M4 Mac, you're getting the full benefit of your hardware's capabilities. VocaMac is native. It's fast. It's efficient. And it's built specifically for your Mac.
For the stable release's complete version, download links, supported language hints, and permissions, see the [installation guide](/#install) and [model catalog](/#models). For newer engines and experiments on `main`, see the [nightly boundary](/#models).
4 changes: 2 additions & 2 deletions web/content/features/custom-vocabulary.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: "Custom Vocabulary"
subtitle: "Teach VocaMac the names, brands, and jargon you use so they're transcribed right, every time."
description: "Add names, technical terms, and jargon to VocaMac's custom vocabulary so Whisper spells them correctly. Processed 100% locally, like everything else in VocaMac."
description: "Add names, technical terms, and jargon to VocaMac's custom vocabulary so the Whisper path can use your preferred spellings locally."
keywords: "custom vocabulary dictation, whisper glossary, proper noun transcription, technical jargon speech to text, fix misspelled names dictation macOS"
icon: "📝"
---
Expand All @@ -23,7 +23,7 @@ Open **Settings → General → Custom Vocabulary** and type the terms you care
kubectl, PostgreSQL, nginx, Grafana
```

VocaMac passes these to Whisper as a transcription hint, biasing it toward your spelling. Keep the list focused: the model uses roughly the first 50–100 words, so put your most-mistranscribed terms at the top. There's no training step and no delay. Add a term, and your very next dictation already knows it.
VocaMac passes these to Whisper as a transcription hint, biasing it toward your spelling. Keep the list focused and put your most-mistranscribed terms near the top; WhisperKit applies its own prompt-token budget. There is no training step. The updated list is used on the next transcription attempt, although it remains a hint rather than a promise.

For best results, enter terms in the language you dictate and set a matching transcription language above. In Auto-detect, your vocabulary can even nudge VocaMac toward the right language.

Expand Down
2 changes: 1 addition & 1 deletion web/content/features/double-tap-toggle.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ Configure your hotkey and set VocaMac to Toggle mode. When recording begins:
4. Speak your message, question, email, code comment, or anything else
5. Double-tap your hotkey again to stop recording and transcribe

The transcription happens instantly. Your text appears at your cursor position. If you double-tap again, VocaMac starts a new recording session.
After you stop, VocaMac processes the recording and inserts the result at your cursor. Processing time varies with recording length, selected model, and Mac hardware.

## Configurable Double-Tap Threshold

Expand Down
12 changes: 6 additions & 6 deletions web/content/features/fully-configurable.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,23 +20,23 @@ Your hotkey is how you activate VocaMac. The app respects how you work and lets

Start from a preset — Right Option, Left Option, Right Command, Right Shift, Right Control, Fn, or a function key (F5–F12). Prefer something else? Click **Record**, press any key, and VocaMac captures it (press Escape to cancel). Your choice shows up as a "Custom" key, and while VocaMac is running that key is reserved for activation.

The hotkey works from anywhere on your Mac. Launch VocaMac from Mail, from Slack, from a web browser, or from any application. As long as VocaMac is running, your hotkey is active and ready.
The hotkey is global while VocaMac is running, so you can trigger it while working in Mail, Slack, a browser, or another app. The target app still needs to expose a text field for insertion.

## Model Management

VocaMac includes multiple Whisper models, each offering different tradeoffs between speed and accuracy. The settings window gives you full control over which models are available on your Mac.
VocaMac includes multiple Whisper models, each offering different tradeoffs between speed, memory, and accuracy. The settings window gives you control over which models are available on your Mac.

The base model is tiny (just 140 megabytes) and transcribes nearly as fast as you can speak. It's perfect for quick notes or when speed matters more than perfect accuracy.
The Base model is a small download and transcribes quickly. It is useful for quick notes or when speed and disk space matter more than maximum accuracy.

The small and medium models offer progressively better accuracy at the cost of slightly longer transcription times. They're ideal for important documents, interviews, or situations where every word needs to be perfect.
Small, compact Large, and Distil variants offer different accuracy and speed trade-offs. Choose among the models shown in Settings rather than assuming every legacy Whisper size is part of the stable catalog.

The model management interface shows how much disk space each model uses. Download the models you want. Delete the ones you don't need. Switch between models instantly. You're always in control of what's installed on your Mac.
The model management interface shows how much disk space each model uses. Download the models you want and switch the selected model from Settings. Model deletion is available in newer nightly/source builds, not the v0.7.2 stable catalog.

## Audio Settings

Audio behavior can make or break the dictation experience. VocaMac includes granular controls for how it handles microphone input and silence detection.

Set the silence detection threshold to match your environment. In a quiet office, a sensitive threshold works well. In a noisier space, you might want to increase it to avoid accidental transcriptions. Adjust the threshold, speak a few test words, and instantly see how the app responds.
Set the silence detection threshold to match your environment. In a quiet office, a lower threshold may work well; in a noisier space, a higher threshold can help avoid accidental stops. Test the setting with your microphone and speaking style.

Configure the maximum recording duration. If you prefer shorter bursts of dictation, set a reasonable limit. The app will automatically stop recording when you reach it, preventing accidental marathon recording sessions.

Expand Down
Loading
Loading