Skip to content

Speech & Voice

Offline transcription, voice activity, text to speech and subtitles. 9 tools. Run any of them from the app, as dogubako speech <tool>, over the HTTP API or as an MCP tool.

Tool Id Needs
Convert Transcript / Subtitles speech.transcript_convert —
Shift Subtitle Timing speech.subtitle_shift —
Transcribe Audio / Video speech.transcribe whisper.cpp, FFmpeg, FFprobe, a Whisper speech model
Detect Spoken Language speech.detect_language whisper.cpp, FFmpeg, FFprobe, a Whisper speech model
Generate Subtitles speech.subtitles whisper.cpp, FFmpeg, FFprobe, a Whisper speech model
Text to Speech speech.tts Piper TTS, a Piper voice
Voice Activity Detection speech.vad FFmpeg, FFprobe
Extract Speech Segments speech.extract_segments FFmpeg, FFprobe
Split at Pauses speech.split_by_speech FFmpeg, FFprobe
nativelive

Convert transcripts and subtitles between SRT, WebVTT, JSON segments, plain text and Markdown.

Terminal window
dogubako speech transcript-convert [text] [options]

Id speech.transcript_convert · MCP speech_transcript_convert · Output: text (text/plain) · Timeout 2 min

Also found by: srt to vtt, vtt to srt, subtitles, captions, transcript, json, convert subtitles

Option CLI Type Default Description
text positional text (multi-line) Paste SRT, WebVTT, JSON segments or plain text.
file --file file …or choose a file. Accepts .srt .vtt .json .txt.
input_format --input-format choice auto One of: auto (Auto-detect), srt, vtt (WebVTT), json (JSON segments / whisper.cpp JSON), txt (Plain text). Advanced.
output_format --output-format choice vtt One of: vtt (WebVTT), srt, json (JSON segments), txt (Plain text), md (Markdown).
nativelive

Fix out-of-sync subtitles: shift SRT/WebVTT cues by an offset, stretch them by a factor or frame-rate ratio, optionally from a given time on.

Terminal window
dogubako speech subtitle-shift [text] [options]

Id speech.subtitle_shift · MCP speech_subtitle_shift · Output: text (text/plain) · Timeout 2 min

Also found by: sync subtitles, delay, offset, subtitle timing, resync, framerate, srt

Option CLI Type Default Description
text positional text (multi-line) Paste SRT, WebVTT, JSON segments or plain text.
file --file file …or choose a file. Accepts .srt .vtt .json .txt.
input_format --input-format choice auto One of: auto (Auto-detect), srt, vtt (WebVTT), json (JSON segments / whisper.cpp JSON), txt (Plain text). Advanced.
offset --offset number -86400–86400 0 Offset (seconds, negative = earlier).
factor --factor number 0.1–10 1 Multiply all times (e.g. 1.001 or 25/23.976). Advanced.
fps_from --fps-from number 1–240 Sets the factor to fps_from / fps_to. Advanced.
fps_to --fps-to number 1–240 …to frame rate. Advanced.
from_time --from-time text Only shift cues starting at or after this time. Advanced.
output_format --output-format choice same One of: same (Same as input), srt, vtt (WebVTT).
local modelwhisper.cppFFmpegFFprobemodel: whisperprogress

Offline speech-to-text with whisper.cpp: transcribe or translate audio and video to text, SRT, WebVTT, JSON or Markdown, with optional word timestamps, speaker turns and VAD.

Terminal window
dogubako speech transcribe <files…> [options]

Id speech.transcribe · MCP speech_transcribe · Output: text (text/plain) · Timeout 360 min

Also found by: speech to text, whisper, transcription, dictation, captions, subtitles, stt, asr, meeting notes, interview

Option CLI Type Default Description
input (required) positional files Audio / video. Accepts audio/*, video/*, .mp3 .m4a .aac .wav .flac .ogg +24 more.
formats --formats list of choices txt,srt Any of: txt (Text), srt, vtt (WebVTT), json, md (Markdown).
model --model choice auto Whisper model (download models in Settings → Models). One of: auto (Best installed), whisper-tiny (Whisper tiny), whisper-tiny.en (Whisper tiny (English)), whisper-base (Whisper base), whisper-base.en (Whisper base (English)), whisper-small (Whisper small), whisper-small.en (Whisper small (English)), whisper-small.en-tdrz (Whisper small + tinydiarize), whisper-large-v3-turbo-q5_0 (Whisper large-v3 turbo (q5)), whisper-large-v3-turbo (Whisper large-v3 turbo).
language --language text auto Spoken language code, or ‘auto’ to detect.
translate --translate boolean false Translate the speech to English.
vad --vad boolean false Skip non-speech with Silero VAD (needs the ‘silero-vad’ model). Advanced.
prompt --prompt text (multi-line) Initial prompt: names, spelling or style hints. Advanced.
threads --threads integer 1–64 4 Advanced.
word_timestamps --word-timestamps boolean false Include per-word timings in the JSON / data. Advanced.
diarize --diarize choice none One of: none (Off), tinydiarize (Speaker turns (tinydiarize model)), stereo (Stereo: one speaker per channel). Advanced.
local modelwhisper.cppFFmpegFFprobemodel: whisperprogress

Identify the language spoken in audio or video with Whisper (analyses 30 seconds from the chosen offset).

Terminal window
dogubako speech detect-language <file> [options]

Id speech.detect_language · MCP speech_detect_language · Output: structured data · Timeout 360 min

Also found by: language identification, what language, whisper, lid, spoken language

Option CLI Type Default Description
input (required) positional file Audio / video. Accepts audio/*, video/*, .mp3 .m4a .aac .wav .flac .ogg +24 more.
model --model choice auto Whisper model (download models in Settings → Models). One of: auto (Best installed), whisper-tiny (Whisper tiny), whisper-tiny.en (Whisper tiny (English)), whisper-base (Whisper base), whisper-base.en (Whisper base (English)), whisper-small (Whisper small), whisper-small.en (Whisper small (English)), whisper-small.en-tdrz (Whisper small + tinydiarize), whisper-large-v3-turbo-q5_0 (Whisper large-v3 turbo (q5)), whisper-large-v3-turbo (Whisper large-v3 turbo).
offset --offset text Where to start listening.
threads --threads integer 1–64 4 Advanced.
local modelwhisper.cppFFmpegFFprobemodel: whisperprogress

Automatically create SRT/WebVTT subtitles from speech with whisper.cpp, optionally adding them to the video as a soft track or burning them in.

Terminal window
dogubako speech subtitles <files…> [options]

Id speech.subtitles · MCP speech_subtitles · Output: files · Timeout 360 min

Also found by: auto subtitles, captions, closed captions, srt, vtt, whisper, accessibility, auto caption

Option CLI Type Default Description
input (required) positional files Video / audio. Accepts audio/*, video/*, .mp3 .m4a .aac .wav .flac .ogg +24 more.
format --format choice srt One of: srt, vtt (WebVTT), both (SRT + WebVTT).
max_chars --max-chars integer 0–200 42 0 = whisper’s natural segments.
embed --embed choice none One of: none (Subtitle file only), soft (Add to video as a track), burn (Burn into the video).
model --model choice auto Whisper model (download models in Settings → Models). One of: auto (Best installed), whisper-tiny (Whisper tiny), whisper-tiny.en (Whisper tiny (English)), whisper-base (Whisper base), whisper-base.en (Whisper base (English)), whisper-small (Whisper small), whisper-small.en (Whisper small (English)), whisper-small.en-tdrz (Whisper small + tinydiarize), whisper-large-v3-turbo-q5_0 (Whisper large-v3 turbo (q5)), whisper-large-v3-turbo (Whisper large-v3 turbo).
language --language text auto Spoken language code, or ‘auto’ to detect.
translate --translate boolean false Translate the speech to English.
vad --vad boolean false Skip non-speech with Silero VAD (needs the ‘silero-vad’ model). Advanced.
prompt --prompt text (multi-line) Initial prompt: names, spelling or style hints. Advanced.
threads --threads integer 1–64 4 Advanced.
font_size --font-size integer 0–200 0 0 = automatic. Only used when embed is burn.
color --color color #ffffff Only used when embed is burn.
outline_color --outline-color color #000000 Only used when embed is burn. Advanced.
position --position choice bottom One of: bottom, top, middle. Only used when embed is burn.
margin --margin integer 0–500 20 Only used when embed is burn. Advanced.
quality --quality choice medium Encoding quality used when the video must be re-encoded. One of: high (High (larger file)), medium (Balanced), low (Low (smaller file)). Advanced.
local modelPiper TTSmodel: piper

Turn text into natural-sounding speech offline with Piper neural voices; save as WAV, MP3, Ogg, Opus, FLAC or M4A.

Terminal window
dogubako speech tts <text> [options]

Id speech.tts · MCP speech_tts · Output: files · Timeout 30 min

Also found by: tts, read aloud, voice, narration, speech synthesis, piper, audiobook

Option CLI Type Default Description
text (required) positional text (multi-line)
voice --voice choice auto One of: auto (First installed voice), piper-en_US-lessac-medium (Piper voice: English (US) Lessac, medium), piper-en_GB-alan-medium (Piper voice: English (UK) Alan, medium), piper-de_DE-thorsten-medium (Piper voice: German Thorsten, medium).
speed --speed number 0.25–4 1
sentence_pause --sentence-pause number 0–5 0.2 Pause between sentences (s). Advanced.
speaker --speaker integer 0–1000 Speaker id for multi-speaker voices. Advanced.
format --format choice wav One of: wav, mp3, ogg (Ogg Vorbis), opus, flac, m4a (AAC (M4A)).
external engineFFmpegFFprobeprogress

Find where people are speaking in audio or video using the WebRTC voice activity detector; returns speech segments and can export JSON, CSV, SRT or Audacity labels.

Terminal window
dogubako speech vad <file> [options]

Id speech.vad · MCP speech_vad · Output: structured data · Timeout 240 min

Also found by: vad, speech detection, voice detection, speech segments, webrtc, talking, non-speech

Option CLI Type Default Description
input (required) positional file Audio file. Accepts audio/*, video/*, .mp3 .m4a .aac .wav .flac .ogg +24 more.
aggressiveness --aggressiveness integer 0–3 2 0 = keep more audio as speech, 3 = strictest filtering of non-speech.
min_speech_ms --min-speech-ms integer 0–10000 250 Minimum speech (ms). Advanced.
min_silence_ms --min-silence-ms integer 0–10000 300 Shorter pauses are merged into the surrounding speech. Advanced.
padding_ms --padding-ms integer 0–5000 200 Extra audio kept around each speech segment. Advanced.
frame_ms --frame-ms choice 30 Analysis frame length (ms). One of: 10, 20, 30. Advanced.
export --export choice none One of: none, json, csv, srt (SRT (one cue per segment)), audacity (Audacity labels).
external engineFFmpegFFprobeprogress

Detect speech with VAD and save each speech segment as its own file, or join all speech into one file (removes non-speech).

Terminal window
dogubako speech extract-segments <file> [options]

Id speech.extract_segments · MCP speech_extract_segments · Output: files · Timeout 240 min

Also found by: remove non-speech, speech only, cut pauses, vad, utterances, dataset, clips

Option CLI Type Default Description
input (required) positional file Audio file. Accepts audio/*, video/*, .mp3 .m4a .aac .wav .flac .ogg +24 more.
mode --mode choice concat One of: concat (One file with speech only), files (One file per segment).
format --format choice wav One of: wav, flac, mp3, m4a (AAC (M4A)), opus.
zip --zip boolean false Return segment files as a ZIP archive. Only used when mode is files.
aggressiveness --aggressiveness integer 0–3 2 0 = keep more audio as speech, 3 = strictest filtering of non-speech.
min_speech_ms --min-speech-ms integer 0–10000 250 Minimum speech (ms). Advanced.
min_silence_ms --min-silence-ms integer 0–10000 300 Shorter pauses are merged into the surrounding speech. Advanced.
padding_ms --padding-ms integer 0–5000 200 Extra audio kept around each speech segment. Advanced.
frame_ms --frame-ms choice 30 Analysis frame length (ms). One of: 10, 20, 30. Advanced.
external engineFFmpegFFprobeprogress

Split long recordings into chunks no longer than a maximum length, cutting in pauses between speech (found by VAD) — ideal before transcription or upload limits.

Terminal window
dogubako speech split-by-speech <file> [options]

Id speech.split_by_speech · MCP speech_split_by_speech · Output: files · Timeout 240 min

Also found by: split long audio, chunk, pauses, vad, podcast, lecture, transcription prep, segment

Option CLI Type Default Description
input (required) positional file Audio file. Accepts audio/*, video/*, .mp3 .m4a .aac .wav .flac .ogg +24 more.
max_seconds --max-seconds number 5–86400 300 Maximum chunk length (s).
min_seconds --min-seconds number 0–3600 10 Minimum chunk length (s). Advanced.
format --format choice same One of: same (Same as input), wav, flac, mp3, m4a (AAC (M4A)), opus.
aggressiveness --aggressiveness integer 0–3 2 0 = keep more audio as speech, 3 = strictest filtering of non-speech.
min_speech_ms --min-speech-ms integer 0–10000 250 Minimum speech (ms). Advanced.
min_silence_ms --min-silence-ms integer 0–10000 300 Shorter pauses are merged into the surrounding speech. Advanced.
padding_ms --padding-ms integer 0–5000 200 Extra audio kept around each speech segment. Advanced.
frame_ms --frame-ms choice 30 Analysis frame length (ms). One of: 10, 20, 30. Advanced.