API Documentation
Kubatanidza TTS.ai mukushandisa kwako neiyo REST API. OpenAI-inowirirana fomati yekufambisa nyore.
Overview
The TTS.ai API inopa programmatic kuwanikwa kune ese maficha eplatform: chinyorwa-ku-kutaura kuumbwa, chinyorwa-ku-kutaura transcription, mashoko cloning, audio kusimudzira, uye zvakawanda. The API inoshandisa standard REST conventions ne JSON request / mhedzisiro muviri.
API Key
Tora yako API kiyi kubva Mifananidzo. Available on Pro uye Enterprise zvirongwa.
Base URL
https://api.tts.ai/v1/
Authentication
Bearer token via Authorization peji repamusoro
Authentication
/v1/tts/ basa pasina chero auth, kusvika 5,000 characters / zuva per IP, usinga shandisa chero imwe yedu yemahara mamodheru (piper, vits, melotts, kokoro). Sign up for a free account to get 15,000 bonus characters and access to premium models.
Pazvigadzirwa zvemhando yepamusoro uye nemamiriro emitengo akanyanya, ratidza kuti uri mushandisi neBearer token Authorization peji repamusoro.
Authorization: Bearer sk-tts-your-api-key-here
SDKs
Official SDKs kuita nyore kubatanidza TTS.ai muapplication yako. Vaviri ndivo open source uye zviripo pa GitHub.
Python
pip install ttsai
from tts_ai import TTSClient
client = TTSClient(api_key="sk-tts-...")
audio = client.generate(
text="Hello world!",
model="kokoro"
)
client.save(audio, "output.wav")
JavaScript / Node.js
npm install @ttsainpm/ttsai
const { TTSClient } = require('@ttsainpm/ttsai');
const client = new TTSClient({
apiKey: 'sk-tts-...'
});
const audio = await client.generate({
input: 'Hello world!',
model: 'kokoro'
});
await client.saveToFile(audio, 'output.wav');
Base URL
All endpoints are relative to this base URL. For example, the TTS endpoint is:
Kuwedzera
API rate limits zvinosiyana nechirongwa:
| Plan | Zvikumbiro/min | Kusangana | Max Text Length |
|---|---|---|---|
| Free | 10 | 2 | 500 characters |
| Starter | 30 | 3 | 1,000,000 chars |
| Pro | 60 | 5 | 1,000,000 chars |
| Enterprise | 300 | 20 | 50,000 chars |
Rate limit headers zvinosanganisirwa mune yega yega mhinduro: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.
Mitengo yechikwereti
| Service | Mutengo | Unit |
|---|---|---|
| TTS (Free mamodheru: Piper, VITS, MeloTTS) | 1,000 characters | per 1,000 characters |
| TTS (Standard mamodheru: Kokoro, CosyVoice 2, etc.) | 2,000 characters | per 1,000 characters |
| TTS (Premium mamodheru: Tortoise, Chatterbox, etc.) | 4,000 characters | per 1,000 characters |
| Kutaura-Ku-TekisiName | 2,000 characters | per minute of audio |
| Voice Cloning | 4,000 characters | per 1,000 characters |
| Voice ChangerName | 3,000 characters | per minute of audio |
| Kuvandudzwa kweSound | 2,000 characters | per minute of audio |
| Vocal Kubvisa / Stem Kuparadzana | 3,000-4,000 characters | per minute of audio |
| Kushandura Kutaura | 5,000 characters | per minute of audio |
| Kutaura nezwi | 3,000 characters | per turn |
| Key & BPM Finder | Free | -- |
| Audio Converter | Free | -- |
Tevere:
Kushandura tebhu kuita mashoko emitauro. Inodzosera faira remitauro mufomati yaunoda.
Kukumbira muviri
| Parameter | Type | Inodiwa | Kutaura |
|---|---|---|---|
| model | string | Hapana | Model ID (e.g., kokoro, chatterbox, piper). Kana ichiitwa, isu tinosarudza otomatiki model iyo inotsigira yaunoda language — kokoro ye en/ja/zh/ko/fr/de/it/pt/es/hi/ru, piper ye mamwe malanguage anotsigirwa (ar/pl/nl/cs/da/fi/el/hu/tr/uk/vi/etc.). |
| text | string | Yes | Tenzi kuti ashandure kutaura. Per-request cap: 500 chars (anonymize), 5,000 (free account), 1,000,000 (paid plan). Long inputs are auto-chunked server-side. |
| voice | string | Yes | Voice ID (use /v1/voices/ to list available voices) |
| format | string | Hapana | Output format: mp3 (yakajairika), wav, flac, ogg |
| speed | float | Hapana | Kutaura-nguva multiplier. Default: 1.0. Range: 0.5 to 2.0 |
| language | string | Hapana | Kodhi yechitauro (e.g., en, es). Inoonekwa otomatiki kana yakadzimwa. |
| instructions | string | Hapana | Kuita / kutumira zviratidzo (≤500 chars). e.g. \ |
| pronunciations | object | array | Hapana | {\ |
| stream | boolean | Hapana | Kuita kuti kuendeswa kwemashoko kuite. Zviri pachena: false |
Muenzaniso wechikumbiro
curl -X POST https://api.tts.ai/v1/tts/ \
-H "Authorization: Bearer sk-tts-your-key" \
-H "Content-Type: application/json" \
-d '{
"model": "kokoro",
"text": "Hello from TTS.ai! This is a test.",
"voice": "af_bella",
"format": "mp3"
}' \
--output output.mp3
SSML tags
Wrap nhamba, mazuva, mari, nhamba dzefoni, uye acronyms mu Date format defaults to The TTS endpoint queues your request and returns a JSON response with a job UUID. You then poll for the result. Poll this endpoint every 1-2 seconds until Fetch the Streaming alternative: For supported models (Kokoro, MeloTTS), use
interpret-as Input Inotaurwa se cardinal1234one thousand two hundred thirty-four ordinal21twenty-first date1999-12-31December thirty-one, nineteen ninety-nine time14:30two thirty PM telephone+1-555-867-5309plus one five five five eight six seven… currency$1,234.56one thousand two hundred thirty-four dollars and fifty-six cents spell-outNASAN A S A mdy for English and dmy elsewhere; override with format=\{
"model": "kokoro",
"voice": "af_bella",
"text": "Your appointment is on <say-as interpret-as=\"date\">2026-04-26</say-as> at <say-as interpret-as=\"time\">14:30</say-as>. Please call <say-as interpret-as=\"telephone\">+1-555-867-5309</say-as> if you need to reschedule."
}Kubvunzana
Step 1: Submit request
{
"uuid": "77b71db532874ce98e84a69a2d740d4c",
"job_id": "f21316bb-aefa-480d-8523-701d1e3184ce",
"status": "queued",
"credits_used": 11,
"credits_remaining": 15000
}Step 2: Poll for result
status is completed or failed.{
"status": "completed",
"result_url": "https://api.tts.ai/static/downloads/77b71db5.../output.mp3"
}{
"status": "processing"
}Step 3: Download audio
result_url from the completed response to download the audio file.Full example
import requests, time
API_KEY = "sk-tts-your-key"
BASE = "https://api.tts.ai"
# 1. Submit TTS request
resp = requests.post(f"{BASE}/v1/tts/", json={
"model": "kokoro",
"text": "Hello from TTS.ai!",
"voice": "af_bella"
}, headers={"Authorization": f"Bearer {API_KEY}"})
data = resp.json()
uuid = data["uuid"]
# 2. Poll for result
while True:
result = requests.get(f"{BASE}/v1/speech/results/",
params={"uuid": uuid}).json()
if result["status"] == "completed":
# 3. Download audio
audio = requests.get(result["result_url"])
with open("output.mp3", "wb") as f:
f.write(audio.content)
break
elif result["status"] == "failed":
raise Exception(result.get("error", "Generation failed"))
time.sleep(1.5)POST /v1/tts/stream/ for real-time Server-Sent Events (SSE) streaming — no polling needed.
Kutaura-Ku-TekisiName
Transcribe audio to text. Supports 99 languages with auto-detection.
Kukumbira muviri (multipart/form-data)
| Parameter | Type | Inodiwa | Kutaura |
|---|---|---|---|
| file | file | Yes | Audio faira (MP3, WAV, FLAC, OGG, M4A, MP4, WebM). Max 100MB. |
| model | string | Hapana | STT model: whisper (default), faster-whisper, sensevoice
|
| language | string | Hapana | Kodhi yechitauro. auto yekuwana otomatiki (yakajairika). |
| timestamps | boolean | Hapana | Kusanganisira timestamps paword-level. Default: false |
| diarize | boolean | Hapana | Kuita kuti mutauro uite diarization. Zviri pachena: false |
Kubvunzana
{
"text": "Hello, this is a transcription test.",
"language": "en",
"duration": 3.5,
"segments": [
{
"start": 0.0,
"end": 1.8,
"text": "Hello, this is",
"speaker": "SPEAKER_00"
},
{
"start": 1.8,
"end": 3.5,
"text": "a transcription test.",
"speaker": "SPEAKER_00"
}
]
}
Voice Cloning
Create speech in a cloned voice. Upload a reference audio and text.
Kukumbira muviri (multipart/form-data)
| Parameter | Type | Inodiwa | Kutaura |
|---|---|---|---|
| reference_audio | file | Yes | Reference voice audio (10-30 masekondi anokurudzira). Max 20MB. |
| text | string | Yes | Tevere, sarudza mashoko aunoda kutaura nezwi rako. |
| model | string | Hapana | Clone model: chatterbox (default), cosyvoice2, gpt-sovits |
| format | string | Hapana | Output format: mp3 (yakajairika), wav, flac |
| language | string | Hapana | Nhamba yechinangwa chemitauro. Inofanira kutsigirwa nechigadzirwa chakasarudzwa. |
Kubvunzana
Inodzosera faira rezwi se binary data, sezvakaitika ne TTS endpoint.
Voice ChangerName
Convert audio to sound like a different voice. Upload source audio and choose a target voice.
Kukumbira muviri (multipart/form-data)
| Parameter | Type | Inodiwa | Kutaura |
|---|---|---|---|
| file | file | Yes | Source audio file (MP3, WAV, FLAC). Max 50MB. |
| target_voice | string | Yes | Target voice ID to convert to (use /v1/voices/ to list available voices) |
| model | string | Hapana | Mufananidzo wekushandurwa kwezwi: openvoice (yakajairika), knn-vc |
| format | string | Hapana | Output format: wav (default), mp3, flac |
Muenzaniso wechikumbiro
curl -X POST https://api.tts.ai/v1/voice-convert/ \
-H "Authorization: Bearer sk-tts-your-key" \
-F "file=@source_audio.mp3" \
-F "target_voice=af_bella" \
-F "model=openvoice" \
-o converted.wav
Kubvunzana
Inodzosera yakashandurwa audio faira se binary data.
Kushandura Kutaura
Kushandura zvakataurwa audio kubva mutauro mumwe kune mumwe. Kubatanidza mashoko-ku-tebhu, kushandura, uye mashoko-ku-mashoko mu mumwe kufona.
Kukumbira muviri (multipart/form-data)
| Parameter | Type | Inodiwa | Kutaura |
|---|---|---|---|
| file | file | Yes | Audio file yemutauro wekutanga. Max 100MB. |
| target_language | string | Yes | Nhamba yechinangwa chemitauro (e.g., es, fr, de, ja) |
| voice | string | Hapana | Mutauro wezvakashandurwa. Ichasarudza otomatiki kana ichitsiva. |
| preserve_voice | boolean | Hapana | Sarudza kuti uchengete sei hunhu hwemutauro wemutaura. Default: false |
Kubvunzana
{
"original_text": "Hello, how are you?",
"translated_text": "Hola, como estas?",
"source_language": "en",
"target_language": "es",
"audio_url": "https://api.tts.ai/v1/results/translate_abc123.mp3",
"credits_used": 5
}
Kutaura-Kutaura
Kushandura pfungwa, pfungwa, kana kutumira panguva yekuchengeta zvinhu. Zvakanakira kudzora toni, pacing, uye expressionality.
Kukumbira muviri (multipart/form-data)
| Parameter | Type | Inodiwa | Kutaura |
|---|---|---|---|
| file | file | Yes | Source speech audio file. Max 50MB. |
| voice | string | Yes | Target voice ID ye output speech |
| model | string | Hapana | Model: openvoice (yakajairika), chatterbox |
| emotion | string | Hapana | Target emotional: neutral, happy, sad, angry, excited
|
| speed | float | Hapana | Kugadzirisa kwesimba. Zviri pachena: 1.0. Kusiyana: 0.5 kusvika 2.0 |
Kubvunzana
Inodzosera yakashandurwa audio faira se binary data.
Zvishandiso zveSound
Audio processing endpoints for enhancement, vocal removal, stem splitting, and more.
Kuvandudza audio mhando: denoise, kuvandudza kujeka, super resolution.
| file file | Audio file to enhance |
| denoise boolean | Kubvumira kubvisa ruzha (default: true) |
| enhance_clarity boolean | Kuwedzera kujeka kwemashoko (yakajairika: true) |
| super_resolution boolean | Kuwedzera mhando yezwi (yakajairika: fake) |
| strength integer | 1-3 (yakajeka, yakaderera, yakakwira). Default: 2 |
Kuparadzanisa vowels kubva instrumentals (vowel kubvisa) kana kuparadzana muzvipfuyo.
| file file | Audio faira rinofanira kuparadzanisa |
| model string | demucs (default) kana spleeter |
| stems integer | Nhamba yezvipfuyo: 2, 4, 5, kana 6 (yakajairika: 2) |
| format string | Output format: wav, mp3, flac |
Remove echo uye reverb kubva audio recordings.
| file file | Audio faira rinofanira kugadziriswa |
| type string | echo or reverb (default: both) |
| intensity integer | 1-5 (default: 3) |
Analyze audio kuongorora key, BPM, uye nguva saini.
| file file | Audio faira rinofanira kuongororwa |
{
"key": "C",
"scale": "Major",
"bpm": 120.0,
"time_signature": "4/4",
"camelot": "8B",
"compatible_keys": ["C Major", "G Major", "F Major", "A Minor"]
}
Kushandura audio pakati formats.
| file file | Audio faira rinofanira kushandurwa |
| format string | Mufananidzo wemufananidzo |
| bitrate integer | Output bitrate in kbps: 64, 128, 192, 256, 320 |
| sample_rate integer | Sampu rate: 22050, 44100, 48000 |
| channels string | mono kana stereo |
Kutaura nezwi
Kutumira audio kana meseji uye kugamuchira AI mhinduro ne synthesized mashoko.
Kukumbira muviri (multipart/form-data kana JSON)
| Parameter | Type | Inodiwa | Kutaura |
|---|---|---|---|
| audio | file | Hapana* | Audio input (audio kana text zvinodiwa) |
| text | string | Hapana* | Kunyora (audio kana text zvinodiwa) |
| voice | string | Hapana | Voice for AI response. Default: af_bella |
| tts_model | string | Hapana | TTS model yekudzosera. Yakavanzika: kokoro |
| system_prompt | string | Hapana | Custom system prompt for the AI |
| conversation_id | string | Hapana | Kuenderera mberi nekutaura kwazvino |
Kubvunzana
{
"conversation_id": "conv_abc123",
"user_text": "What is the capital of France?",
"ai_text": "The capital of France is Paris.",
"audio_url": "https://api.tts.ai/v1/audio/tmp/resp_xyz.mp3",
"credits_used": 3
}
Batch TTS
Kutumira akawanda mapepa ekunyora kune imwe TTS kuumbwa. Kana uchida, unogonawo kugamuchira webhook callback kana zvese mabasa zvapera.
Parameter
| Parameter | Type | Kutaura |
|---|---|---|
| texts | array | Array of objects: {text, model, voice}. Max 50 items. |
| webhook_url | string | Zviri nyore URL kuti POST zvinoratidza kana batch inosvika. |
Kubvunzana
{
"batch_id": "abc123",
"total": 3,
"completed": 0,
"status": "processing"
}
Poll progress with GET /v1/tts/batch/result/?batch_id=abc123
Kuisa Mutauro
Kuisa mutauro kubva kune zvinongedzo zvemitauro. Usashandisa embed_id yakadzoserwa mumashoko anotevera ezvokuzviisa mutauro kuti uite zvinongedzo zvinongoitika nguva pfupi.
Parameter
| Parameter | Type | Kutaura |
|---|---|---|
| file | file | Reference audio file (WAV, MP3, FLAC). |
| model | string | Cloning model (default: chatterbox). Supported: chatterbox, cosyvoice2, openvoice, gpt-sovits, spark, indextts2, qwen3-tts. |
Kubvunzana
{
"embed_id": "emb_abc123",
"model": "chatterbox",
"duration_ms": 450
}
Cheka hutano
Ona GPU server status, loaded models, uye queue size. Hapana kubvumidzwa kunoda. Yakachengetwa mubhokisi rekuchengetedza kwe 30 masekondi.
Kubvunzana
{
"status": "online",
"latency_ms": 45,
"queue_size": 3,
"models_loaded": ["kokoro", "chatterbox", "cosyvoice2"]
}
List Models
Returns a list of all available models with their capabilities.
Kubvunzana
{
"models": [
{
"id": "kokoro",
"name": "Kokoro",
"type": "tts",
"tier": "standard",
"languages": ["en", "ja", "ko", "zh", "fr"],
"supports_cloning": false,
"supports_streaming": true,
"credits_per_1k_chars": 2
},
{
"id": "chatterbox",
"name": "Chatterbox",
"type": "tts",
"tier": "premium",
"languages": ["en"],
"supports_cloning": true,
"supports_streaming": true,
"credits_per_1k_chars": 4
}
]
}
List Voices
Inodzosera runyorwa rwese rwemazwi anowanikwa, kana zvichidikanwa, akachena nemodeli kana rurimi.
Parameter
| Parameter | Type | Kutaura |
|---|---|---|
| model | string | Filter by model ID (e.g., kokoro) |
| language | string | Kuchenesa nekodzero yechitauro (e.g., en) |
| gender | string | Sarudza nezera: murume, mukadzi, chaiyo |
Kubvunzana
{
"voices": [
{
"id": "af_bella",
"name": "Bella",
"model": "kokoro",
"language": "en",
"gender": "female",
"preview_url": "https://api.tts.ai/v1/voices/preview/af_bella.mp3"
}
],
"total": 142
}
Subtitles (SRT / VTT) new
Kugadzira zvinyorwa zvakaenzana nenguva kune chero yakamisikidzwa TTS basa. Inoita Whisper alignment pamusoro pezvokutaura uye inodzosera SRT kana WebVTT. Muenzaniso unochengetwa mudhiski kuitira kuti kufona kwekupedzisira kweiyo uuid imwe chete iite kuverenga kwedhiski.
Parameter
| Parameter | Inodiwa | Kutaura |
|---|---|---|
| uuid | Yes | Job UUID yakadzoserwa ne /v1/tts/ kana /v1/voice-clone/. |
| format | Hapana | srt (yakajairika) kana vtt. |
| download | Hapana | 1 kuti uendese Content-Disposition: attachment kuitira kuti mushandisi achengete peji peji risina kuratidzwa. |
| language | Hapana | Kukurudzira kunzvimbo yemufananidzo (inoonekwa otomatiki kana yasara pasi). |
curl "https://api.tts.ai/v1/speech/subtitles/?uuid=$UUID&format=srt&download=1" -o subtitles.srt
Chikamu chekutaura new
Chiti TTS engine sei kutaura mazwi akazvimirira. Kuchengetwa entries otomatiki-kushandiswa kune chero TTS chikumbiro iwe kuita. 200-entry per-account limit.
Kukumbira muviri (POST)
| Parameter | Type | Kutaura |
|---|---|---|
| word | string | Chinyorwa chaungashandure (e.g. GIF, Anthropic). Chinyorwa chinoenzana nezita. |
| replacement | string | Kuita kuti zvive nyore kuisa mazita ezvinyorwa (e.g. jiff, ann THROP ick). |
| language | string | ISO code. Empty = applies to all languages. |
| case_sensitive | boolean | false yakajairika. Iva nechokwadi chekuti true inoenderana necase. |
# Save an entry
curl -X POST https://tts.ai/api/v1/pronunciations/ \
-H "Authorization: Bearer sk-tts-..." \
-H "Content-Type: application/json" \
-d '{"word": "GIF", "replacement": "jiff"}'
# List your entries
curl https://tts.ai/api/v1/pronunciations/ -H "Authorization: Bearer sk-tts-..."
# Delete entry by id
curl -X DELETE "https://tts.ai/api/v1/pronunciations/?id=42" -H "Authorization: Bearer sk-tts-..."
Iwe unogonawo kutumira kukumbira-ne-kukumbira kuchinja-chinja pasina kuchengeta iwo — sanganisira pronunciations pane chero /v1/tts/ kufona sechigadzirwa kana searray (ona TTS endpoint params).
Chinyorwa Narrator new
Kusiya imwe < code>< script> code> tag pa chero nyaya peji uye vashanyi kuwana a fixed muverengi bar kuti narrates peji pa click. Auto- inowana nyaya muviri, inotsigira custom voice / model / nzvimbo / accent color.
<script src="https://tts.ai/narrator.js"
data-pk="pk-tts-your-publishable-key"
data-voice="af_bella"
data-model="kokoro"
data-extract="auto"
data-position="bottom"
data-color="#e60000"
data-locale="en"></script>
Options
| Parameter | Kutaura |
|---|---|
data-pk | Chiratidzo chinoburitswa (pk-tts-…). Kurambidzwa kwedomain kunoitwa kuburikidza ne allowed_domains field chechiratidzo. |
data-voice | Voice ID. Default af_bella. |
data-model | TTS model ID. Default kokoro. |
data-extract | auto (default) — inoedza zvisarudzo zvearticle/main/.post-content/.entry-content, inodzokera kumaparagraph cluster ane hukuru hwakawanda. Kana kuti inotumira chero CSS selector kuti iite chinangwa chechimwe chinhu. |
data-position | bottom (yakajairika) kana top. |
data-color | Kutaura kwevara (isina CSS). #e60000. |
data-min-chars / data-max-chars | Kunyangwe chinyorwa chiri chidiki, shandisa 200 (default) kana kuti 50,000 (max) mavara. |
Widget yeKunzwa Button
Inline button-style embed. Renders next to its tag and plays a button-triggered short snippet. Different shape from the Article Narrator above (which auto-injects a page-spanning bar and narrates the entire article).
<script src="https://tts.ai/widget.js"
data-voice="af_bella"
data-model="kokoro"
data-style="full"
data-theme="light"></script>
Kuchengeta Mazwi (Persistent Clones)
Upload a reference audio once, get back a persistent voice_id, then reference that id in TTS requests instead of re-uploading audio every call. Ideal for high-volume integrations.
Kuisa mutauro
POST
https://tts.ai/api/v1/user-voices/
Kubvumidzwa kunoda
Zvinyorwa: faira (inodiwa, 5-30s audio), zita (inodiwa), rurimi (zviri pachena, default en), model (zviri pachena — auto-picks cosyvoice2 for zh/ja/ko else openvoice), consent_confirmed (inodiwa, chero truethy kunaka).
curl -X POST https://tts.ai/api/v1/user-voices/ \
-H "Authorization: Bearer sk-tts-your-key" \
-F "file=@reference.wav" \
-F "name=My Narrator" \
-F "language=en" \
-F "consent_confirmed=true"
# Response:
{
"public_id": "uv_a1b2c3d4e5f6",
"id": 42,
"name": "My Narrator",
"model_name": "openvoice",
"language": "en",
"reference_audio_url": "https://tts.ai/media/user-voices/....wav",
"storage_status": "active",
"created_at": "2026-04-17T03:45:00+00:00"
}
Use the saved voice in TTS
POST to /api/v1/tts/ (NOTE: web VPS host, kwete api.tts.ai) with user_voice_id. We load your stored audio and route to the cloning pipeline.
curl -X POST https://tts.ai/api/v1/tts/ \
-H "Authorization: Bearer sk-tts-your-key" \
-H "Content-Type: application/json" \
-d '{"text":"Hello from my saved voice","user_voice_id":"uv_a1b2c3d4e5f6"}'
# Returns a queued job — poll /v1/speech/results/?uuid=... for the audio URL.
List / delete
GET https://tts.ai/api/v1/user-voices/ # list your saved voices + quota info
DELETE https://tts.ai/api/v1/user-voices/?public_id=uv_a1b2c3d4e5f6
Archive / reactivate (free)
Zvinyorwa zvemazwi zvinogara muaccount yako asi hazvigone kushandiswa muTTS. Zvinobatsira kune vasingaite vanoshandisa kuti bhokisi rako rirambe rakachena.
POST https://tts.ai/api/v1/user-voices/uv_a1b2c3d4e5f6/archive/
POST https://tts.ai/api/v1/user-voices/uv_a1b2c3d4e5f6/reactivate/
Code Mifananidzo
Tevere:
import requests
API_KEY = "sk-tts-your-key"
# Text to Speech
response = requests.post(
"https://api.tts.ai/v1/tts/",
headers={"Authorization": f"Bearer {API_KEY}"},
json={
"model": "kokoro",
"text": "Hello from TTS.ai!",
"voice": "af_bella",
"format": "mp3"
}
)
with open("output.mp3", "wb") as f:
f.write(response.content)
print(f"Credits used: {response.headers.get('X-Credits-Used')}")
Kutaura-Ku-TekisiName
# Speech to Text
with open("recording.mp3", "rb") as f:
response = requests.post(
"https://api.tts.ai/v1/stt/",
headers={"Authorization": f"Bearer {API_KEY}"},
files={"file": f},
data={"model": "faster-whisper", "timestamps": "true"}
)
result = response.json()
print(result["text"])
Voice Cloning
# Voice Cloning
with open("reference.wav", "rb") as ref:
response = requests.post(
"https://api.tts.ai/v1/tts/clone/",
headers={"Authorization": f"Bearer {API_KEY}"},
files={"reference_audio": ref},
data={
"text": "This speech uses a cloned voice.",
"model": "chatterbox"
}
)
with open("cloned_output.mp3", "wb") as f:
f.write(response.content)
Tevere:
const API_KEY = 'sk-tts-your-key';
// Text to Speech
const response = await fetch('https://api.tts.ai/v1/tts/', {
method: 'POST',
headers: {
'Authorization': `Bearer ${API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
model: 'kokoro',
text: 'Hello from TTS.ai!',
voice: 'af_bella',
format: 'mp3'
})
});
const audioBlob = await response.blob();
const audioUrl = URL.createObjectURL(audioBlob);
const audio = new Audio(audioUrl);
audio.play();
Kutaura-Ku-TekisiName
// Speech to Text
const formData = new FormData();
formData.append('file', audioFile);
formData.append('model', 'faster-whisper');
const response = await fetch('https://api.tts.ai/v1/stt/', {
method: 'POST',
headers: { 'Authorization': `Bearer ${API_KEY}` },
body: formData
});
const result = await response.json();
console.log(result.text);
Tevere:
# Text to Speech
curl -X POST https://api.tts.ai/v1/tts/ \
-H "Authorization: Bearer sk-tts-your-key" \
-H "Content-Type: application/json" \
-d '{"model":"kokoro","text":"Hello!","voice":"af_bella","format":"mp3"}' \
-o output.mp3
Kutaura-Ku-TekisiName
# Speech to Text
curl -X POST https://api.tts.ai/v1/stt/ \
-H "Authorization: Bearer sk-tts-your-key" \
-F "file=@recording.mp3" \
-F "model=faster-whisper" \
-F "timestamps=true"
Voice Cloning
# Voice Cloning
curl -X POST https://api.tts.ai/v1/tts/clone/ \
-H "Authorization: Bearer sk-tts-your-key" \
-F "reference_audio=@reference.wav" \
-F "text=This uses a cloned voice." \
-F "model=chatterbox" \
-o cloned.mp3
Kuvandudzwa kweSound
# Audio Enhancement
curl -X POST https://api.tts.ai/v1/audio/enhance/ \
-H "Authorization: Bearer sk-tts-your-key" \
-F "file=@noisy_audio.mp3" \
-F "denoise=true" \
-F "enhance_clarity=true" \
-o enhanced.mp3
Kodhi dzematambudziko
All matambudziko anodzokera JSON mhinduro ne error field.
{
"error": {
"code": "insufficient_credits",
"message": "You do not have enough characters for this request.",
"characters_required": 4000,
"characters_available": 2000
}
}
| HTTP Status | Kodhi yematambudziko | Kutaura |
|---|---|---|
| 400 | bad_request |
Hapana parameters dzakarurama. Ona meseji yematambudziko kuti uwane zvakawanda. |
| 401 | unauthorized |
Isina kana API key. |
| 402 | insufficient_credits |
Hapana zvinyorwa zvakakwana. Unogona kutenga zvakawanda pa /pricing/. |
| 403 | forbidden |
Iwe hauna mvumo yekuwana iyi nzvimbo (e.g. polling mumwe munhu's job). API kuwanikwa pachayo inosanganisira pazvose zvirongwa. |
| 404 | not_found |
Mufananidzo kana mutauro hauna kuwanikwa. |
| 413 | file_too_large |
Iyo yakakwira faira inosvika pakudarika huwandu hwekusvika. |
| 429 | rate_limited |
Kukumbira kwakawanda kwazvo. Ona kurambidzwa kwesimba. |
| 500 | internal_error |
Server error. Try again later. |
| 503 | model_loading |
Model is loading. Try again in a few seconds. |
Webhooks
Kuti uite basa rinotora nguva yakareba (kuparadzanisa zvikamu, batch TTS), unogona kupa webhook_url parameter. Kana basa rapera, isu tichatumira mhinduro kune yako URL.
{
"event": "task.completed",
"task_id": "task_abc123",
"status": "success",
"result_url": "https://api.tts.ai/v1/results/task_abc123",
"credits_used": 12,
"created_at": "2025-01-15T10:30:00Z",
"completed_at": "2025-01-15T10:30:45Z"
}
Ready to Build?
Get your API key and start integrating TTS.ai into your applications.