Skip to content

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.

  1. Open Choose model and prepare the file-specific recognition model and credentials. It can differ from live voice typing, with shared provider credentials.
  2. Drop audio or video into the drop zone, or choose files to import.
  3. 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.

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.

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 moss

Syntax: 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.

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.