IVR text to speech: phone menu prompts in telephony formats
Make IVR prompts and voicemail greetings with text to speech: one request per prompt, returned as 8 kHz μ-law or A-law WAV, or as MP3 or other PCM.

IVR text to speech turns each phone-menu prompt or voicemail greeting from written text into an audio file your phone system can play. Write each prompt as its own short text, synthesize it once, and request the format your system expects. Sume's TTS API returns MP3 by default and can instead return WAV or raw PCM at one of six sample rates from 8,000 to 48,000 Hz, including 8 kHz audio in μ-law or A-law encoding.
The fields come from the TTS schema in the Sume API reference, the OpenAPI document behind the API reference docs, and the Jobs and results docs, read on 2026-09-27. The price is read from the code behind API pricing.
Which audio format does my phone system need?
Check your phone system's documentation for three things: the sample rate, the encoding, and the file type. Classic telephone audio is sampled at 8 kHz, and μ-law and A-law are the two 8-bit encodings of G.711, the codec of the traditional phone network. Then set output_format to match:
wavreturns a WAV file. In the current code,rawreturns the bare PCM samples with no file header, for systems that ask for headerless audio, and arawrequest must name bothsample_rateandencoding.encodingapplies towavandraw.bit_rateapplies tomp3, where it's required when you change the defaults.
| Field | Values |
|---|---|
container | mp3 (default), wav, or raw |
sample_rate | 8000, 16000, 22050, 24000, 44100 (default), or 48000 Hz |
encoding | For wav or raw: pcm_mulaw, pcm_alaw, pcm_s16le, or pcm_f32le |
bit_rate | For mp3: 32000, 64000, 96000, 128000 (default), or 192000 |
How do I generate one prompt?
Send one POST /v1/tts-1.0/generate per prompt, with a voice: the avatar_id or avatar_handle of an avatar whose voice is ready, or a voice.id you already hold. This request returns the main menu as 8 kHz μ-law WAV, slowed a little with a speed multiplier of 0.9:
- The default
asyncmode answers at once with a job id andstatus_url. Poll it untilterminalis true, then readresult_url; the completed result exposes the audio as amedia.sume.comartifact to download and load into your phone system. - Or send a public HTTPS
webhook_urlto be called when the job ends, and keep polling as a backup. - Leave out
timestampsandsegmentation: phone prompts don't need word timings.
curl -X POST https://api.sume.com/v1/tts-1.0/generate \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: ivr-main-menu-v3" \
-d '{
"transcript": "Thank you for calling Acme. For sales, press 1. For support, press 2.",
"avatar_handle": "acme_support",
"language": "en",
"output_format": { "container": "wav", "encoding": "pcm_mulaw", "sample_rate": 8000 },
"generation_config": { "speed": 0.9 }
}'How should I organize a set of prompts?
- One request per prompt: greeting, main menu, each submenu, hold message, after-hours message, voicemail greeting. Changing one prompt is then one new request.
- The same voice,
language,output_format, andgeneration_configfor every prompt in the set. generation_config.speed(0.6–1.5) andvolume(0.5–2.0) are multipliers for pace and level.- A versioned
Idempotency-Keyper prompt text, such asivr-main-menu-v3. The same key with the same body returns the original job; the same key with a changed body answers409 idempotency_conflict, so bump the version when you edit the text. languageon every non-English prompt. Omitted, it defaults to English.
How much does IVR text to speech cost?
Text to speech is billed per transcript character at $0.0475 per 1,000 characters, spaces and punctuation included, plus a 5.5% agent fee by default. Each prompt is its own request, billed on its own characters, and a request takes up to 20,000 characters.
What doesn't Sume's TTS do for an IVR?
- Run the phone system. The API returns audio files; answering calls, reading keypresses, and routing callers stay in your IVR platform.
- Speak live. TTS 1.0 is an async job you poll or get a webhook for, not a stream, so generate prompts ahead of time rather than during a call.
- Check your platform's requirements. Load one prompt into your phone system and test it before you generate the full set.
Sources
Related posts
More in Use cases
- Product logo warping in image-to-video: frames vs references
In Sume's image-to-video API, a packshot in frame_images sets the first frame; input_references only guide. Check the label in extracted stills.
- Logo animation API: from brand mark to ident or end card
Animate a logo with the Sume API: call sume-logo-motion-design with the mark attached, or animate it as a first frame, then add it as an end card.
- How to make a 30 second advertisement with AI
Make a 30-second ad as one 30-second clip, or as shots cut over a voiceover to exactly 30 s. On Sume, seedance-2.5 and wan-3.0 make 30 s in one clip.
- Can AI make a video from a story? Yes, shot by shot
Yes: AI turns a story into video as a series of short shots. Approve a still per shot, animate it, voice the lines, then join the shots in order.
Written by Sume