API Dokumentasie

Integrate TTS.ai in jou programme met ons REST API. OpenAI-vergelykde formaat vir maklike migrasie.

Constellation name (optional) OpenAI Aanpasbaar JSON Reaksies Stroom ondersteuning

Oorsig

Die TTS.ai 'nPI verskaf programmamatiese toegang tot alle platform kenmerke: teks- to-sech sintesis, spraak- to- text transkripsie, stem kloning, oudioverbetering, en nog meer. Die API gebruik standaard REST streekbyeenkomste met JSON-versoek/response liggame.

API-sleutel

Kry jou API-sleutel van Rekeninginstellings. Bevry van Pro - en - ondernemingsplanne.

Basis URL

https://api.tts.ai/v1/

Magtingsgids

Draer - teken deur middel van Authorization kop

Geldigheidsverklaring

FreeCell-sleutel benodig. Anoniem-POS's na /v1/tts/ werk sonder enige klank, tot 5 000 karakters/dag per IP, deur enige van ons gratis modelle te gebruik (piper, vits, melotts, kokoro). Teken op vir'n gratis rekening om 15 000 bonuskarakters en toegang tot premiese modelle te kry.

Vir premiese modelle en hoër tempogrense, met â n Beer-bewys in die Authorization kop.

HTTP-kop
Authorization: Bearer sk-tts-your-api-key-here
Hou jou API-sleutel geheim. Moet dit nie deel in kliÃ"nt-side kode, openbare respostorieë, of logs. Roteer sleutels gereeld van jou rekening instellings.

SDKs

Official SDKs make it easy to integrate TTS.ai into your application. Both are open source and available on 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")
GitHub

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');
GitHub

Basis URL

Basis URL: https://api.tts.ai/v1/

Alle eindpunte is relatief tot hierdie basis URL. Byvoorbeeld, die TTS-punt is:

POST https://api.tts.ai/v1/tts/

Tempo Limiet

API tempo perke wissel deur plan:

Plan Versoeke/min AdaCity name (optional, probably does not need a translation) Maksimale Teks Lengte
Beskikbaar 10 2 500 karakters
Beginer 30 3 1 000 000 karakters
Pro 60 5 1 000 000 karakters
Onderneming 300 20 50 000 karakters

Herhaalde beperk opskrifte word ingesluit in elke antwoord: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.

Kredietkoste

Diens Koste Eenheid
TTS (Vry modelle: Pyper, VITS, MetoTTS) 1 000 karakters per 1 000 karakters
TTS (Standaardmodelle: Kokoro, KosyVoice 2, ens.) 2 000 karakters per 1 000 karakters
TTS (Premiummodelle: Tortoise, Chaterbox, ens.) 4 000 karakters per 1 000 karakters
Woorde tot teks 2 000 karakters per minuut van oudio
Stemverkleuring 4 000 karakters per 1 000 karakters
Stemveranderder 3 000 karakters per minuut van oudio
Oudioverbetering 2 000 karakters per minuut van oudio
Lugredenskap / diefstal 3 000-4 000 karakters per minuut van oudio
Spraak - vertaling 5 000 karakters per minuut van oudio
Stem Gesels 3 000 karakters per skakel
Sleutel BPM Soeker Beskikbaar --
KlankomskakelaarName Beskikbaar --

Teks vir spraak

POST /v1/tts/

Skakel teks om na toespraak oudio. Gee terug oudio-lêer in die versoekte formaat.

Versoek Liggaam

ParameterTipeBenodigBeskrywing
model string Nee Model ID (bv. , cholbox , ). Indien weggelaat, kies ons outo- kies 'n model wat ondersteun die aangevraagde < vir en/jaz/fr/it/p/pit/pices/hicorkode> (lang/Dex/Dex/Dex/Dex/Dex/Dex/Dex/Decl/Decl/Decl/De/De.
text string Ja Teks om na spraak om te skakel. Per-request pet: 500 chars (anonious), 5 000 (vrye rekening), 1 000 000 (betaalde plan). Lang invoere is outo-bekendde bediener-side.
voice string Ja Stem Id (gebruik /v1/steme/ om beskikbare stemme te lys)
format string Nee Uitsetformaat: mp3 (verstek), , ,
speed float Nee Gebruik spoedvermenigvuldiger. Verstek: 1 . Omvang: 0. na 2.0 <
language string Nee Taalkode (bv. en , s ). Outo-bespeur as weggelaat.
instructions string Nee Tekenings / afleweringstekens ( %.2 500 chars). e.g. \
pronunciations object | array Nee Per-request uitspraak oorskryf. Of {\
stream boolean Nee Aktiveer afstroom antwoord. Verstek: val

Voorbeeld Versoek

cURL
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 etiket

Oorvloei nommers, datums, geld eenheid, telefoonnommers en akronieme in

Interpreteer-asInvoerGespreek as
cardinal1234one thousand two hundred thirty-four
ordinal21twenty-first
date1999-12-31Desember dertig-eerste, negentien en negentig
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

Datum formaat verstek na mid vir Engels en elders; oorskryf met format=\

Voorbeeld
{
  "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."
}

Reaksie

The TTS endpoint queues your request and returns a JSON response with a job UUID. You then poll for the result.

Step 1: Submit request

Response (JSON)
{
  "uuid": "77b71db532874ce98e84a69a2d740d4c",
  "job_id": "f21316bb-aefa-480d-8523-701d1e3184ce",
  "status": "queued",
  "credits_used": 11,
  "credits_remaining": 15000
}

Step 2: Poll for result

GET /v1/speech/results/?uuid=<job_uuid>

Poll this endpoint every 1-2 seconds until status is completed or failed.

Polling response (completed)
{
  "status": "completed",
  "result_url": "https://api.tts.ai/static/downloads/77b71db5.../output.mp3"
}
Polling response (still processing)
{
  "status": "processing"
}

Step 3: Download audio

Fetch the result_url from the completed response to download the audio file.

Volgrote voorbeeld

Python
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)

Streaming alternative: For supported models (Kokoro, MeloTTS), use POST /v1/tts/stream/ for real-time Server-Sent Events (SSE) streaming — no polling needed.

Woorde tot teks

POST /v1/stt/

Ingeskryf klank na teks. Ondersteun 99 tale met outo- opspoor.

Versoek Liggaam (multipart/form-data)

ParameterTipeBenodigBeskrywing
file file Ja Audio lêer (MP3, WAV, FLAC, OG, MPA, MP4, WebM). Max 100mb.
model string Nee STT model: whisper (verstek), fiper , sense fact
language string Nee Taalkode. to vir outobespeuring (verstek).
timestamps boolean Nee Sluit in woord-vlak maaltampe. Verstek: val
diarize boolean Nee Aktiveer luidspreker diarisering. Verstek: val

Reaksie

JSON se reaksie
{
  "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"
    }
  ]
}

Stemverkleuring

POST /v1/tts/clone/

Genereer spraak in 'n gekloonde stem. Oplaai' n verwysing oudio en teks.

Versoek Liggaam (multipart/form-data)

ParameterTipeBenodigBeskrywing
reference_audio file Ja Verwysing stem-klank (1- 30 sekondes aanbeveel). Max 20mb.
text string Ja Teks om in die gekloonde stem te praat.
model string Nee Gold model: cholbox (verstek), , gpt-sovits
format string Nee Uitsetformaat: mp3 (verstek), ,
language string Nee Teiken taal kode. Moet deur die gekose model ondersteun word.

Reaksie

Gee terug die oudiolêer as binêre data, dieselfde as die TTS-punt.

Stemveranderder

POST /v1/voice-convert/

Skakel oudio om na klank soos 'n ander stem. Oplaai bron-oudio en kies 'n teikenstem.

Versoek Liggaam (multipart/form-data)

ParameterTipeBenodigBeskrywing
file file Ja Bron oudiolêer (MP3, WAV, FLAC). Max 50mb.
target_voice string Ja Teiken stem Id na skakel om na (gebruik /v1/steme/ na lys beskikbaar stemme)
model string Nee Stemomskakeling model: openstem (verstek), kn-vc
format string Nee Uitsetformaat: wav (verstek), <,

Voorbeeld Versoek

cURL
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

Reaksie

Gee terug die omgeskakelde oudiolêer as binêre data.

Spraak - vertaling

POST /v1/speech-translate/

Vertaal die klank van een taal na 'n ander. Kombineer spraak-na-teks, vertaling en teks-na-sech in' n enkele roep.

Versoek Liggaam (multipart/form-data)

ParameterTipeBenodigBeskrywing
file file Ja Bron oudiolêer in die oorspronklike taal. Max 100mb.
target_language string Ja Teiken taal kode (bv. es , < , de , ja )
voice string Nee Stem vir vertaal uitset. Outo-kies gekies as weggelaat.
preserve_voice boolean Nee Probeer om die oorspronklike spreker se stemeienskappe te bewaar. Verstek: val

Reaksie

JSON se reaksie
{
  "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
}

Spraak tot spraak

POST /v1/speech-to-speech/

Verander spraakstyl, emosie of aflewering terwyl jy die inhoud behou.'n Nuttige manier om'n mens se stemtoon, stemtoon en gevoel te verander.

Versoek Liggaam (multipart/form-data)

ParameterTipeBenodigBeskrywing
file file Ja Bronspraak oudiolêer. Max 50mb.
voice string Ja Teiken stem Id vir die uitset spraak
model string Nee Model: openstem (verstek), ch outbox
emotion string Nee Teiken emosie: nutral , gelukkig , sad , , excied
speed float Nee Spoed aanpassing. Verstek: 1. . Omvang: 0 na 2.0

Reaksie

Gee terug die veranderde oudiolêer as binêre data.

Oudiogereedskap

Oudioverwerkingspunte vir verbeteringe, sangverwydering, stamverdeeling en nog meer.

POST /v1/audio/enhance/

Verbeter klankgehalte: denaise, verbeter duidelikheid, superresolusie.

file fileOudiolêer om te verbeter
denoise booleanAktiveer denoissing (verstek: waar)
enhance_clarity booleanVerbeter spraak duidelikheid (verstek: Waar)
super_resolution booleanVolskaalse klankgehalte (verstek: vals)
strength integer1- 3 (lig, medium, sterk). Verstek: 2
POST /v1/audio/separate/

Afsonderlike geluide van instrumente (vooruitgang) of in stingels verdeel.

file fileOudiolêer om te skei
model stringdemucs (verstek) of spleeter
stems integerNommer van stingels: 2, 4, 5 of 6 (verstek: 2)
format stringUitsetformaat: wav , <,
POST /v1/audio/dereverb/

Verwyder eggo's en reverb van oudio - opnames.

file fileOudiolêer om te verwerk
type stringecho or reverb (default: both)
intensity integer1-5 (default: 3)
POST /v1/audio/analyze/ Beskikbaar

Analiseer die klank om sleutel, BPM en tydhandtekening te bespeur.

file fileOudiolêer om te ontleed
Reaksie
{
  "key": "C",
  "scale": "Major",
  "bpm": 120.0,
  "time_signature": "4/4",
  "camelot": "8B",
  "compatible_keys": ["C Major", "G Major", "F Major", "A Minor"]
}
POST /v1/audio/convert/ Beskikbaar

Skakel om oudio tussen formate.

file fileAudio lêer na skakel om
format stringTeikenformaat: mp3 , , , , < <, c
bitrate integerUitset bistempo in kbps: 64, 128, 192, 256, 320
sample_rate integerVoorbeeld tempo: 22050 4100 48 000
channels stringmono of stereo

Stem Gesels

POST /v1/voice-chat/

Stuur oudio- of teks en ontvang 'n kunsmatige antwoord met sintetiseerde spraak.

Versoek Liggaam (multipart/form-data of JSON)

ParameterTipeBenodigBeskrywing
audio file Nee* Oudiotoevoer (eus audio of text benodig)
text string Nee* Teks invoer (Ã2f audio of text benodig)
voice string Nee Stem vir KI-reaksie. Verstek: af_bella
tts_model string Nee TTS model vir antwoord. Verstek: koro
system_prompt string Nee Pasgemaakte stelsel por vir die kunsmatige intelligensie
conversation_id string Nee Gaan voort met 'n bestaande gesprek

Reaksie

JSON se reaksie
{
  "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
}

BangTTS

POST /v1/tts/batch/

Dien veelvuldige tekste vir parallelle TTS - geslag in. Ontvang op'n mooi manier'n webhoek - terugroep wanneer alle werke voltooi is.

Parameters

ParameterTipeBeskrywing
textsarrayArray of objects: {text, model, voice}. Max 50 items.
webhook_urlstringOpsionele URL om op te offer, het resultate wanneer'n klomp klaar is.

Reaksie

JSON se reaksie
{
  "batch_id": "abc123",
  "total": 3,
  "completed": 0,
  "status": "processing"
}

Posl vordering met KRY /v1/ts/bat/result/?bang_id=abc123

Stem inbed

POST /v1/voice-embed/

Pre- compute 'n stem vergieting van verwysing oudio. Gebruik die teruggekeerde embed_id in latere stem kloning versoeke vir naby-instant geslag.

Parameters

ParameterTipeBeskrywing
filefileReference audio file (WAV, MP3, FLAC).
modelstringCloning model (default: chatterbox). Supported: chatterbox, cosyvoice2, openvoice, gpt-sovits, spark, indextts2, qwen3-tts.

Reaksie

JSON se reaksie
{
  "embed_id": "emb_abc123",
  "model": "chatterbox",
  "duration_ms": 450
}

Gesondheidstoets

GET /v1/health/

Bevestig GPU bediener status, gelaaide modelle, en wagtou grootte. Nee geldigheidsverklaring benodig. Kasd vir 30 sekondes.

Reaksie

JSON se reaksie
{
  "status": "online",
  "latency_ms": 45,
  "queue_size": 3,
  "models_loaded": ["kokoro", "chatterbox", "cosyvoice2"]
}

Lysmodel's

GET /v1/models/

Gee terug 'n lys van alle beskikbare modelle met hul vermoëns.

Reaksie

JSON se reaksie
{
  "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
    }
  ]
}

Maak 'n mens se stem oop

GET /v1/voices/

Gee terug 'n lys van alle beskikbare stemme, verkies gegefilter deur model of taal.

Navraag Parameters

ParameterTipeBeskrywing
model string Filter deur model Id (bv. koro )
language string Filter deur taalkode (bv. en )
gender string Filter deur geslag: mald , , nutral

Reaksie

JSON se reaksie
{
  "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
}

Subtitels (RT / VTT) nuwe

GET /v1/speech/subtitles/?uuid=<job_uuid>&format=srt|vtt&download=1

Genereer geroniseerde subtitels vir enige voltooide TTS werk. Laat loop Whiper belyning oor die oudio en gee terug SrT of WebVT. Resultaat is kasgeheue op disket sodat 'n tweede roep vir dieselfde uid is' n disket lees.

Navraag Parameters

ParameterBenodigBeskrywing
uuidJaWerk UUID teruggekeer deur /v1/ts/ of /v1/stem-clone/.
formatNeesrt (verstek) of vt .
downloadNee na stuur Conttent- Diice: aanhegsel sodat die blaaier stoor in plaas van vertoon.
languageNeeLei aan na die belyning model (outobespeur as weggelaat).
cURL
curl "https://api.tts.ai/v1/speech/subtitles/?uuid=$UUID&format=srt&download=1" -o subtitles.srt

Woordeboeke nuwe

GET POST DELETE /api/v1/pronunciations/

Sê vir die TTS-enjin hoe om spesifieke woorde uit te spreek. Gestoor inskrywings outo- apply na elke TTS versoek jy maak. 200-entry per- per-telling beperk.

Versoek Liggaam (POST)

ParameterTipeBeskrywing
wordstringWoord na oorskryf (bv. GIF , Athropic ). Word-bour het ooreengekom.
replacementstringHoe om dit te spel vir die model (bv. jiff , ann THROP ick ).
languagestringOpsionele ISO-kode, leeg = van toepassing op alle tale.
case_sensitivebooleanVerstek Sval . Ooreenstem kas presies wanneer waar .
cURL
# 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-..."

Jy kan ook verby per-request oorskryf sonder om hulle te red ${ sluit Profices op enige /v1/ts/ roep as 'n voorwerp of 'n skikking (sien die TTS- eindig params) in.

Artikel Narator nuwe

Laat val 'n enkel < etiket op enige artikel bladsy en besoekers kry 'n vaste leser balk wat die bladsy op kliek beskryf. Outo-speur die artikel liggaam, ondersteun pasgemaakte stem / model / posisie / aksent kleur.

HTML
<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>

Keuses

ParameterBeskrywing
data-pkPubliseer Vry Besig Informasie
data-voiceStem Id. Verstek af_bella .
data-modelTTS model ID. Verstek koro .
data-extract (verstek) ☞ probeer artikel/main/.pos-tent/.entrie-inturent kiesers, val terug na digste paragraaf tros. Of stuur enige Csse kieser na teiken 'n spesifieke element.
data-positionbottom (verstek) of top .
data-colorAccent color (enige Css kleur). Verstek #e00
data-min-chars / data-max-charsSlaan die staaf oor as die artikel korter is as min ikoone (verstek 200). Cap invoer by max-harde (verstek 50 000).

Bron op GitHub:

Luister Knoppie Gui- element

Inlyn knoppie-styl kort flenter. Ander vorm van die Artikel Narator hierbo (wat outo-inspuite 'n bladsy-spanbalk bevat en die hele artikel beskryf).

HTML
<script src="https://tts.ai/widget.js"
    data-voice="af_bella"
    data-model="kokoro"
    data-style="full"
    data-theme="light"></script>

Gestoorde stemme (Perstent verklaers)

Oplaai 'n verwysing oudio een keer, kry terug' n volgehoue stem_id, dan verwys dit na wat id in TTS versoeke in plaas van herlaai oudio elke roep. Ideale vir hoë-volume integrasies.

Verf drempelpunt: Verberging is gratis (geen daaglikse huur, geen gleuf cap). Oplaai fooi: 500 karakters een-tyd per stem. Per-gebruik surkge: +50 karakters bygevoeg aan elke TTS-geslag wat verwys na die gestoorde stem, bo van die normale geslag kos. Argief stemme jy het nie nou nodig om hulle rustend te hou nie; reaktiveer enige tyd. Albei is vry API-roepe.

Laai 'n stem op

POST https://tts.ai/api/v1/user-voices/ Bemagtiging vereis

Multiparte vorm. velde: lêer (required, 5-30s-oudio), naam (required), taal (opsionele, verstek en), model (opsionele ⇩ auto- kies cosy faktuur2 vir zh/ja/ko anders open fact), toestemming_bevestigde (benodigde, enige waarheidagtige waarde).

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"
}

Gebruik die gestoorde stem in TTS

POST na /api/v1/ts/ (NOT: web VPS-gasheer, nie api.tts.ai) met gebruiker_ fak_id. Ons laai jou gestoorde oudio- en roete na die cloning pyp.

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.

Lys / uitvee

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

Argief / reaktiveer (free)

Argiefde stemme bly in jou rekening, maar kan nie in TTS gebruik word nie. Nuttig vir sluimerende einde gebruikers sodat jou lys skoon bly.

POST https://tts.ai/api/v1/user-voices/uv_a1b2c3d4e5f6/archive/
POST https://tts.ai/api/v1/user-voices/uv_a1b2c3d4e5f6/reactivate/

Kode Voorbeelde

Teks vir spraak

Python - versoeke
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')}")

Woorde tot teks

Python - versoeke
# 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"])

Stemverkleuring

Python - versoeke
# 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)

Teks vir spraak

JavaScript - gaan haal
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();

Woorde tot teks

JavaScript - gaan haal
// 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);

Teks vir spraak

cURL
# 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

Woorde tot teks

cURL
# 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"

Stemverkleuring

cURL
# 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

Oudioverbetering

cURL
# 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

Foutkodes

Alle foute gee terug 'n JSON antwoord met' n error veld.

Fout Reaksie Formaat
{
  "error": {
    "code": "insufficient_credits",
    "message": "You do not have enough characters for this request.",
    "characters_required": 4000,
    "characters_available": 2000
  }
}
HTTP-statusFoutkodeBeskrywing
400 bad_request Ongeldige versoek parameters. Bevestig die fout boodskap vir detail.
401 unauthorized Ontbrekende of ongeldige API-sleutel.
402 insufficient_credits Nie genoeg karakters nie. Purchase meer na /prering/.
403 forbidden Jy het nie toestemming om toegang te verkry tot hierdie hulpbron (bv. stem saam met 'n ander gebruiker se werk) nie. 'nPI toegang self is ingesluit op elke plan.
404 not_found Model of stem nie gevind nie.
413 file_too_large Oplaai lêer oorskry die grootte beperk.
429 rate_limited Te veel versoeke. Bevestig tempo beperk opskrifte.
500 internal_error Bediener fout. Probeer later weer.
503 model_loading Model laai tans. Probeer binne 'n paar sekondes weer.

Uitpakkies

Vir lang-ring take (verdeelde, klomp TTS) kan jy verskaf 'n webhoek_ url parameter. Wanneer die opdrag voltooi, sal ons die resultaat na jou URL toe stuur.

Webkamerlaai
{
  "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"
}
Webhook results are available for download for 24 hours after completion. Make sure to download them promptly.

Gereed om te bou?

Kry jou API-sleutel en begin TTS.ai in jou programme invoeg.