Skip to content
Catalog

cn8/tts

Turn text into high-quality speech through a single API that gives you three voice providers to choose from:

Learn more about Text to Speech
Audio & VoicesyncInstant previewvoiceaudiotext-to-speech

Text to speech

91 characters

Provider
Voice
Speed1.00×

Result

Your audio shows up here

Pick a provider and voice, then hit Speak.

Overview

Turn text into high-quality speech through a single API that gives you three voice providers to choose from: ElevenLabs (the default, with the widest language and gender coverage), MiniMax (many languages with descriptive voice names), and OpenAI (six ready-made, language-agnostic voices). Pick a voice by language + gender from the shared catalog (the same one the Dubbing service uses), or pass an explicit voice_id for precise control. Optional voice_settings (stability, similarity_boost, and more) and an hd_quality flag let you fine-tune the result. Each request returns a URL to the generated audio file.

Key capabilities

Three providers behind one API

ElevenLabs (named voices plus a language/gender catalog and voice cloning), MiniMax (descriptive voice names per language), and OpenAI (six fixed voices: alloy, echo, fable, onyx, nova, shimmer). Switch between them with the provider field.

Language + gender voice selection

Pass language + gender and we pick the best matching voice from the provider's catalog. ElevenLabs and MiniMax cover 13+ languages; OpenAI's voices are fixed and language-agnostic.

Voice cloning

Pass clone_from_audio (a URL) or clone_from_video to clone a voice from a sample for the request. Available on ElevenLabs and MiniMax — check the supports_voice_cloning flag in the catalog.

Configurable voice settings

Tune stability (0-1), similarity_boost (0-1), speed, pitch (-12 to +12 semitones), volume (0.1-10), and emotion. Supported settings vary by provider — see supports_voice_settings in the catalog response.

HD quality

Set hd_quality:true to use a higher-fidelity model where the provider supports it. Same per-second pricing.

When to use it

Video narration

Generate voiceovers for tutorials, product demos, explainers without hiring a voice actor.

Accessibility

Convert articles, e-books, or documentation to audio for visually impaired users.

IVR / phone systems

Generate dynamic voice prompts in 13+ languages.

E-learning

Audio lessons and lecture narrations across languages for online courses.

Input & output

input

Text + provider + (language + gender) OR voice_id; optional voice_settings, speed, hd_quality, clone_from_audio/video

JSON body

output

A URL to the generated audio plus its duration. You're billed on usage.units, which equals the audio length in seconds.

JSON (url field)

Guides & tips

Choose a provider

  • ElevenLabs: the widest language coverage and the highest voice quality, with full voice settings and cloning. Also offers named voices (rachel, adam…) as a handy shorthand.
  • MiniMax: descriptive voice names (English_Trustworth_Man, Turkish_CalmWoman) across 13 languages.
  • OpenAI: six fixed voices (alloy/echo/fable/onyx/nova/shimmer), language-agnostic, with no settings or cloning.

How a voice is chosen

For each request, the voice is chosen in this order:

  1. 1If you set voice_id, that voice is used directly (it takes precedence over everything else). It is the only voice field, and every provider accepts it — an ElevenLabs id or friendly name, a MiniMax descriptive name, or an OpenAI voice name.
  2. 2Otherwise, language + gender selects a voice from the catalog (ElevenLabs and MiniMax).
  3. 3If that exact language + gender combination isn't available, the provider falls back to the opposite gender or English.
  4. 4OpenAI has no language/gender catalog — without voice_id it speaks with alloy.

Voice cloning per call

Pass clone_from_audio (a URL) to clone a voice from an audio sample just for that request. Set keep_source_file: true (with an optional auto_delete_after_hours) to keep the uploaded sample around longer. Per-call cloning isn't stored — for a reusable custom voice, use the Voice Clone service (voice-clone-tts).

Voice settings reference

  • stability (0-1): how consistent the voice stays across the output.
  • similarity_boost (0-1): how closely the output matches the target voice.
  • speed: speed multiplier (doesn't change billing).
  • pitch (-12 to 12): semitones up or down.
  • volume (0.1-10): output volume multiplier.
  • emotion: an emotional tone hint (provider-specific).

Settings a provider doesn't support are ignored.

Specs

Latency
~1-5s depending on text length and provider
Async
false
Rate Limit
60 req/min per API key
Max Input
~5000 characters per request

Schema

Request body

textrequiredstring

Text to convert to speech (max ~5000 characters)

providerstring · default: elevenlabs

Synthesis provider

enum: elevenlabs, minimax, openai

languagestring

Language name from the provider's catalog (e.g. 'english', 'turkish'). Ignored when voice_id is set OR provider is openai (language-agnostic).

genderstring

Voice gender. Ignored when voice_id is set OR provider is openai.

enum: male, female

voice_idstring

The voice to speak with — the one field every provider accepts. ElevenLabs: a voice ID (e.g. '21m00Tcm4TlvDq8ikWAM') or one of the friendly names (rachel, adam, antoni, arnold, bella, domi, elli, josh, nicole, sam). MiniMax: a descriptive voice name (e.g. 'English_CalmWoman'). OpenAI: a voice name (alloy, echo, fable, onyx, nova, shimmer). Takes precedence over language/gender. Call core-tts-voices for the full per-provider catalog.

speednumber · default: 1

Speech speed multiplier (typical 0.5-2.0; provider-specific)

hd_qualityboolean · default: false

Switch to a higher-fidelity model when the provider supports it

voice_settingsobject

Fine-tuning. Supported keys (provider-dependent): stability (0-1), similarity_boost (0-1), speed, volume (0.1-10), pitch (-12 to 12), emotion.

clone_from_audiostring

URL to an audio file. When set, the voice is cloned from this sample for this request before synthesis. Available on ElevenLabs and MiniMax.

clone_from_videostring

URL to a video file. The audio track is extracted, then cloned.

keep_source_fileboolean · default: false

Keep your uploaded clone source after processing. By default it's deleted once the request completes.

auto_delete_after_hoursinteger · default: 24

When keep_source_file is true, delete the source automatically after this many hours.

cinema8_envstring

Cinema8 environment hint (PROD or STAGING) — only relevant for Cinema8 media URLs.

Response

data.urlstring

URL to the generated .mp3 file — download or stream from here.

data.keystring

Storage object key for the audio file.

data.folder_idstring

Identifier for the storage folder the audio was saved under.

data.providerstring

The provider that produced the audio.

data.voice_idstring

The voice ID that was actually used.

data.cloned_voice_idstring

When you used clone_from_audio or clone_from_video, the cloned voice's ID. null otherwise.

data.duration_secondsnumber

Audio duration in seconds — this is what you're billed on.

usage.unitsnumber

Same as data.duration_seconds. cost.units mirrors this value.

Pricing

Per-second billing on synthesized audio. Browsing voices is free.

ServiceUnitPrice
Text to Speechsecond4 credits/second
List VoicesitemFree

Billing is based on generated audio duration (usage.units = duration_seconds), not input text length.

A typical 1-minute narration costs approximately 60 credits.

Voice cloning via clone_from_audio/clone_from_video is included — no separate cloning charge.

FAQ

Related models