tts
Generate MP3 or OGG/Opus audio from text via Edge speech synthesis, with optional SRT/VTT subtitles, word timings, and local output paths for captioned or timed audio workflows.
Instructions
Generate MP3 or OGG/Opus (requires FFmpeg) and return a local file path.
Rate/volume: signed percentage, e.g. +10%. Pitch: signed Hz, e.g. -5Hz. Ordinary speech/Telegram: leave subtitles=none and word_timings=false. Request srt/vtt only for captions; request word_timings only for per-word highlighting/editing. Missing boundary events return audio with warnings, never estimated timings. Explicit voice/rate/volume/pitch override server defaults. Choose rate directly for the task, e.g. +15% or -10%. Optional target_duration_seconds fits audio duration with FFmpeg, verified by FFprobe. Omitted parameters inherit config.py ENV defaults (built-in tempo 0.5–2.0). Set tempo_min/tempo_max for the task (immutable technical limits 0.5–2.0). Bounds are never widened automatically; retry explicitly to change them. Unreachable targets return target_duration_unreachable with required tempo and bounds, not original audio. Without a target, tempo bounds do not change audio. Check duration_fitting.target_met and warnings; precise sync/natural speech are not guaranteed. Timings are rescaled using the applied tempo. Successful requests create audio; subtitles and word timings are optional sidecar files. Timeout includes queue wait, retries, synthesis, conversion and sidecars. Up to 100000 characters; max_audio_duration_seconds limits audio duration independently of the operation timeout. Targets must not exceed that duration limit; oversized output is not trimmed or published. for long jobs increase timeout and client's deadline or shorten text. Check success/warnings before using audio_path, subtitle_path or word_timings_path. Paths are local to the MCP host, not uploaded.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"text": "<text>"
},
"name": "tts"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| rate | No | ||
| text | Yes | ||
| pitch | No | ||
| voice | No | ||
| volume | No | ||
| timeout | No | ||
| subtitles | No | none | |
| tempo_max | No | ||
| tempo_min | No | ||
| audio_format | No | mp3 | |
| word_timings | No | ||
| target_duration_seconds | No | ||
| max_audio_duration_seconds | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||