VoiceStudioVoiceStudio
Esc

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:

  1. 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.
  2. 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.
  3. 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:

  1. Set up a Hugging Face account and obtain a User Access Token.
  2. Enter your token in Settings → API Keys.
  3. Visit the Hugging Face model pages in your browser and click Agree and access repository on both of the following pages:
  4. 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.
Documentation written with Docup