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 |
Convert Transcript / Subtitles
Section titled “Convert Transcript / Subtitles”Convert transcripts and subtitles between SRT, WebVTT, JSON segments, plain text and Markdown.
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). |
Shift Subtitle Timing
Section titled “Shift Subtitle Timing”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.
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). |
Transcribe Audio / Video
Section titled “Transcribe Audio / Video”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.
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. |
Detect Spoken Language
Section titled “Detect Spoken Language”Identify the language spoken in audio or video with Whisper (analyses 30 seconds from the chosen offset).
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. |
Generate Subtitles
Section titled “Generate Subtitles”Automatically create SRT/WebVTT subtitles from speech with whisper.cpp, optionally adding them to the video as a soft track or burning them in.
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. |
Text to Speech
Section titled “Text to Speech”Turn text into natural-sounding speech offline with Piper neural voices; save as WAV, MP3, Ogg, Opus, FLAC or M4A.
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)). |
Voice Activity Detection
Section titled “Voice Activity Detection”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.
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). |
Extract Speech Segments
Section titled “Extract Speech Segments”Detect speech with VAD and save each speech segment as its own file, or join all speech into one file (removes non-speech).
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. |
Split at Pauses
Section titled “Split at Pauses”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.
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. |