File transcription
Path: Settings → File transcription. File transcription in the app requires Trial / Pro, even with Apple or a local recognition engine available on Free. The selected engine’s permissions are also checked separately.
Usage & file limits
Section titled “Usage & file limits”- Open Choose model and prepare the file-specific recognition model and credentials. It can differ from live voice typing, with shared provider credentials.
- Drop audio or video into the drop zone, or choose files to import.
- Watch the queue and progress. When complete, copy plain text or subtitles, or export subtitle files. Results are recorded in local history.
Accepted extensions are mp3, wav, m4a, flac, opus, ogg, aac, aiff, aif, caf, mp4, mov, m4v, mkv, and webm. The source-file limit is 4 GiB, with at most 4 hours of decoded audio. Files must contain an audio track macOS can decode; accepting an extension does not guarantee every codec in that container works. Provider limits and memory conditions can also cause smaller files to fail.
Cancel, retry, or delete jobs from the queue. File transcription refuses to start while live voice typing, commands, or translation occupy recording, recognition, processing, or a result overlay. Finish or cancel that session first.
Subtitles & timestamps
Section titled “Subtitles & timestamps”| Format | Purpose & timecode |
|---|---|
| SRT | Common video subtitles; HH:MM:SS,mmm |
| VTT | Web video subtitles; HH:MM:SS.mmm |
| ASS | Styled subtitles with default 1920×1080 layout; H:MM:SS.cc |
| LRC | Lyrics or audio markers; [mm:ss.cc], hundredths of a second |
| Timestamped TXT | Reading and notes; whole-second time markers |
Export a single format or all five at once. Timecode notation does not determine recognition alignment accuracy: word-level, segment-level, or missing native timestamps depend on the engine, with capability hints shown on the page. Without native cues, the app can generate cues from text. Review the timing and wording before use.
On-device MOSS-0.9B supports speaker diarization and start/end timing. In-app transcription keeps a whole-file pass for diarization-capable engines to reduce speaker-identity breaks between chunks. Actual recognition and speaker labels depend on the recording and model.
Completed jobs also offer AI subtitle optimization and restoration of the original subtitles. Optimization may use your configured text-processing/intent model or a ready local model; cloud models receive subtitle text. Some segmentation falls back to local rules when a model is unavailable. Review optimized results too.
Command-line transcription
Section titled “Command-line transcription”The app also includes a community-mode command-line transcriber that can run without GUI file-transcription activation. This has a separate policy from the in-app Trial / Pro feature gate.
Install and prepare the required local models in the app first; the CLI does not download missing models. These commands use the installed app’s executable:
/Applications/VoiceHotkey.app/Contents/MacOS/VoiceHotkey --transcribe ~/Downloads/interview.mp3 --provider qwen/Applications/VoiceHotkey.app/Contents/MacOS/VoiceHotkey --transcribe ~/Downloads/meeting.m4a --provider mossSyntax: VoiceHotkey --transcribe <file_path> [--provider <name>] [--language <code>]. Adjust the executable path if your app is installed elsewhere. --language affects engines that support language constraints; not every engine uses it.
The app supports downloading and using Fun-ASR-Nano and SenseVoice Small. See Voice models. The aliases below belong to the separate community CLI.
| Model | Accepted provider names |
|---|---|
| Qwen3 0.6B (default) | qwen, qwen3, qwen3-asr, qwen0.6b, qwen3-0.6b |
| Qwen3 1.7B | qwen1.7b, qwen3-1.7b, qwen-1.7b |
| SenseVoice | sensevoice, sensevoice-small |
| Fun-ASR-Nano | funasr, funasr-nano, funasrnano |
| Whisper Turbo | whisper, whisper-turbo, whisper-large-v3-turbo |
| Whisper Small | whisper-small |
| Distil Whisper | whisper-distil, distil-whisper |
| Parakeet | parakeet, parakeet-tdt |
| FireRed | firered, fireredasr |
| Apple SpeechAnalyzer (macOS 26+) | apple, applespeech, apple-speech, apple-analyzer, analyzer |
| Legacy Apple Speech | apple-legacy, legacy |
| MOSS | moss, moss-0.9b, moss0.9b |
Unknown names fall back to Qwen3 0.6B; this argument is not a general cloud-provider selector. The CLI writes same-basename .srt and .vtt files next to the input, overwriting existing files of those names, and saves a job for the app to display.
Local Only Mode
Section titled “Local Only Mode”Under Local Only, use prepared Apple or built-in local models; legacy Apple Speech is forced on-device. Public file-recognition requests are blocked. Loopback self-hosted endpoints still need engine permissions. Model installation and system language preparation may need a network connection beforehand.