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

Alle API versoeke vereis geldigheidsverklaring deur 'n Beer sein 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 100 000 chars
Pro 60 5 100 000 chars
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 Ja Model ID (bv. koro , ch> < /cocoverbox , piper )
text string Ja Teks na skakel om na spraak (max 100 000 karakters per versoek)
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.
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

Reaksie

Gee terug die klank lêer as binêre data met gepaste Content-Type opskrif (audio/mpeg , /wav , ens.)

Opgesomde Opskrifte
Content-Type: audio/mpeg
Content-Length: 48256
X-Credits-Used: 2
X-Credits-Remaining: 498

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_urlstringOptional URL to POST results when batch completes.

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
}

Kode Voorbeelde

Teks vir spraak

Python - requests
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 - requests
# 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 - requests
# 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 - fetch
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 - fetch
// 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 'NPI toegang nie beskikbaar op jou 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"
}
@ info/ rich

Gereed om te bou?

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