Create a voiceover
create_voiceoverConverts a script or subtitle file into a timed voiceover track with per-line audio clips and a manifest for video editing, and can optionally add the narration to a video.
Instructions
Turn a script or a subtitle file into one narration track for video work. Each line is spoken with the same Tapra voice (amal = Mature woman. Warm, grounded, everyday Tunisian.; salma = Younger woman. Lighter and brighter, conversational.; salah = Man with a big, sharp (aigu) voice that carries. Strong presence.; fahmi = Middle-aged man. Normal, natural male voice.; leo = Young man. Light and energetic. The default Tapra voice.; voice cloning is not available) and placed on a timeline: at its subtitle time (from srt_path) or one after another (from script or lines). Lines may use effect tags ([euh] breathy hesitation; [aaa] long filler while thinking; [hmm] closed-mouth "mmm"; [ahem] clears the throat; [ouf] tired sigh; [breath] out-breath, "haah"; [stutter] repeats the first sound of the next word; put it right before that word). Writes a folder with the voiceover track (wav or another format), one WAV clip per line, and manifest.json (text + start/end per clip) that video generation tools can follow. Optionally lays the voiceover onto a video. Reports progress per line. Costs money per character.
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "create_voiceover"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| lines | No | Narration already split into lines, spoken in order. | |
| speed | No | Speaking rate, 0.7-1.3. Default 1.0. | |
| voice | No | Tapra voice: amal = Mature woman. Warm, grounded, everyday Tunisian.; salma = Younger woman. Lighter and brighter, conversational.; salah = Man with a big, sharp (aigu) voice that carries. Strong presence.; fahmi = Middle-aged man. Normal, natural male voice.; leo = Young man. Light and energetic. The default Tapra voice.. Voice cloning is not available. | leo |
| format | No | Audio format: wav (default, lossless), mp3_<rate>_<kbps>, pcm_<rate> (16-bit WAV), ulaw_8000 / alaw_8000 (telephony), opus_48000_<kbps> (Ogg Opus). mp3, opus, ulaw and alaw need ffmpeg. | wav |
| script | No | Plain narration text. Split into lines at line breaks and long sentences. | |
| timing | No | With srt_path: "fit" stretches or squeezes each line to its subtitle slot; "natural" keeps natural length. | fit |
| quality | No | "full" = best quality; "flash" = same voices, about 5x faster and cheaper. | full |
| srt_path | No | SRT/VTT file: each subtitle is spoken at its own time (dubbing). | |
| output_dir | No | Folder to write into. Defaults to a new folder in the output folder. | |
| video_path | No | Also produce a copy of this video with the voiceover as its sound. | |
| gap_seconds | No | Pause between lines when there are no timings. | |
| max_cost_tnd | No | Refuse to run if the estimated cost is above this many TND. Defaults to TAPRA_MAX_COST_TND when set. | |
| convert_arabizi | No | Convert Arabizi (e.g. "3aslema") to Arabic script before speaking, as Voice Studio does. | |
| original_audio_volume | No | With video_path: keep the original sound under the voiceover at this volume (0 = replace it). |