Kurdish text to speech
synthesize_speechConvert Kurdish text (Sorani or Kurmanji) to speech audio. Requires a TTS API key; characters are billed against your plan. Get speaker_id from list_voices called with the SAME model_version you pass here (default "v3") — ids are not shared between catalogs. Returns one complete clip: MCP cannot stream, so for a live voice agent call POST https://www.kurdishtts.com/api/tts-stream directly instead (SSE, first audio in ~1s). Max 4000 characters per call in the default mp3 container, 600 with format "wav"; free plans are capped at 500 server-side. Note: speed is caller-facing (higher = faster).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Kurdish text to synthesize. Max 4000 characters (only 600 if you set format "wav"); free plans are capped at 500. | |
| speed | No | Playback speed, higher = faster. Default 1. | |
| format | No | Audio container. Default "mp3". Audio is returned base64-encoded inside the tool result, so the container decides how much of your context it costs: for identical speech, mp3 is ~7.5x smaller than wav and opus ~11.5x. Choose "wav" only when you need uncompressed audio, and keep the text under 600 characters if you do. | |
| dialect | No | Language the text is in. Normally inferred from the speaker_id prefix and safe to omit. REQUIRED to get a correct Kurmanji read from a Cast or Studio voice (cast_*, studio_*): those are tagged sorani after their reference clip but read Sorani and Kurmanji, so without this they pronounce Kurmanji with Sorani phonetics. "badini" is valid only with one of the six badini_ voices — pairing it with any other voice is refused with a 400. | |
| speaker_id | Yes | Voice id from list_voices, e.g. "sorani_85" or "kurmanji_6" on the default "v3" catalog. Dialect is derived from the prefix. Must come from the same model_version you pass below. | |
| model_version | No | Voice catalog and plan entitlement. Default "v3". Explicit "v5" and the Cast/Studio voices require a paid API plan. | |
| include_timestamps | No | Return JSON with word-level timestamps instead of an audio block. NOTE: the audio in that JSON is headerless raw PCM16 (24kHz mono), not a WAV file — add a WAV header before saving it, or it will not play. |