Guides
Dictation & Transcription
Use the floating widget for system-wide dictation, transcribe pre-recorded audio, and separate speakers.
VoiceStudio provides local, privacy-focused speech-to-text tools. You can dictate system-wide using a floating recording widget, transcribe pre-recorded audio files, and separate multiple speakers using high-accuracy local diarization engines.
System-Wide Dictation#
System-wide dictation allows you to record audio with a global keyboard shortcut and automatically insert the transcribed text into whichever application has focus.
Setup and Hotkeys#
To configure and start using dictation:
- Select a Dictation Model: Go to the Model Catalogue under the ASR tab, or select one from Settings → Voice (or Transcription → Sherpa-ONNX dictation → Dictation model in the top-bar engines menu). The default recommended model is
sherpa-whisper-tiny(an int8 offline model, ~104 MB) because it supports auto-detecting over 90 languages. - Configure the Shortcut: Under Settings → Hotkey, set your preferred key combination and choose the recording behavior:
- Hold: Recording runs while you hold down the hotkey, and stops instantly when you release it.
- Toggle: Recording starts on the first press and stops on the next.
- Trigger Dictation: Put your cursor in any text field, press the shortcut, speak, and stop the recording.
Floating Widget Controls#
When dictation is active, a floating, non-focusing widget appears on your screen containing a multiline, live-scrolling preview of your transcribed text. The widget provides manual controls that let you manage active sessions:
- Pause / Resume: Temporarily disables the microphone track and freezes the elapsed recording timer without destroying your session.
- Stop: Finalizes recording and processes the final transcript.
- Close: Immediately cancels the active session and releases the microphone without outputting text.
Platform Behavior and Insertion#
Once transcription is complete, VoiceStudio attempts to insert the text directly into the target app. If automatic insertion fails, the text is copied to the clipboard instead.
| Platform | Insertion Method | Requirements & Fallbacks |
|---|---|---|
| macOS | Reactivates the captured application and sends Command-V. | Requires Accessibility permissions; otherwise, text stays copied. |
| Windows | Validates the target window/process, requests foreground activation, and sends Ctrl-V. | If Windows OS denies activation, text stays copied. |
| Linux (X11) | Reactivates the captured window using Extended Window Manager Hints (EWMH) and sends Ctrl-V. | Standard desktop focus behavior. |
| Linux (Wayland) | Copies text to the clipboard by default. | Advanced users can enable untargeted insertion with VOICESTUDIO_WAYLAND_UNTARGETED_INSERT=1 using wtype (wlroots) or dotool/ydotool (GNOME/KDE). |
| Browser Mode | Copies text to the clipboard. | Browsers cannot trigger native desktop application insertion. |
To protect your clipboard contents during typing, VoiceStudio takes a temporary snapshot of your clipboard (text, HTML, images, or file lists), pastes the transcription, and then immediately restores your original clipboard once insertion completes.
Vocabulary Prompts#
To improve recognition of unique names, specialized jargon, or technical scripts, you can configure a vocabulary prompt under Settings → Voice (or write to the ASR configuration). This optional prompt supports up to 1,000 characters and is passed directly to the transcription engine as the initial_prompt on the dictation socket.
Transcribing Pre-Recorded Audio#
The Transcriptions page acts as a local workspace where you can upload pre-recorded audio files, playback media, and manage your text output.
Upload and History Management#
You can drag and drop or select an audio file to transcribe it with your selected active ASR engine. The workspace includes several features to review and export transcripts:
- Vidstack Playback: Use the built-in media player to listen to your audio alongside the text.
- History Pane: Lists your transcriptions in a newest-first feed with a 200-entry limit.
- Search and Segments: Search your history and inspect individual timestamps for each recognized text segment.
- Clone Handoff: Send any segment or full transcript directly to the cloning pipeline to use as reference text. For details on voice creation, see Voice Cloning & Gallery.
- Exporting: Export your transcriptions to external files. Exports retain date and language metadata and preserve segment timing bounds.
Text Refinement and LLM Cleanup#
You can enable optional post-processing settings to automatically clean up your transcriptions. These include:
- Filler Word Removal: Deletes conversational fillers like "um", "uh", or "like".
- Self-Corrections: Automatically edits out slips of the tongue and restarts.
- Technical-Term Preservation: Ensures industry jargon is spelled and formatted correctly.
When cleanup is active, raw text remains saved in your history and is used for reference-audio operations, while the polished LLM-refined text is stored in an expandable section with a quick copy button.
Speaker Diarization#
Speaker diarization splits an audio stream into distinct tracks based on who is speaking and when. This is essential for advanced workflows such as multi-speaker Video Dubbing, adding speaker-labeled subtitle styling (SPEAKER_00:, SPEAKER_01:) in exported SRT/VTT files, and editing multi-speaker timelines.
Hugging Face Setup for Pyannote#
VoiceStudio uses the high-accuracy pyannote/speaker-diarization-3.1 model combined with WhisperX. Because Pyannote is a gated model on Hugging Face, you must complete a one-time license acceptance to install it:
- Set up a Hugging Face account and obtain a User Access Token.
- Enter your token in Settings → API Keys.
- Visit the Hugging Face model pages in your browser and click Agree and access repository on both of the following pages:
- Go to Settings → Models → Diarisation and click install to fetch the pipeline weights and embeddings.
Once downloaded, the model runs completely offline and no longer requires an active Hugging Face token.
Fallback Silence Heuristic#
If Pyannote weights are missing or your system cannot load the model, VoiceStudio automatically falls back to a silence-gap heuristic. This heuristic detects gaps in speech to segment the audio. While less accurate than machine-learning diarization (especially for rapid conversations or speakers with similar vocal pitches), it allows audio transcription and video dubbing jobs to finish without failing.
Native Sortformer Adapter#
For a lightweight GGUF-based local alternative, you can install the audio.cpp Sortformer v1 adapter:
- Setup: Go to Settings → Models → Diarisation, download the reviewed GGUF model and its checksummed native runtime, and select Sortformer as your active diarization engine.
- Execution: The adapter downsamples input to mono 16 kHz and processes audio with a 10-minute native timeout. It runs efficiently on both CPU and GPU via Vulkan acceleration.
- Limitations: Sortformer supports up to four speakers and does not support exact speaker count restrictions. It is optimized for audio clips under 120 seconds.
- License: Sortformer model usage is subject to its upstream CC-BY-NC-4.0 restrictive model license.