API dokumentatsioon

Integreerida TTS.ai oma rakendustesse meie REST API. OpenAI-ühilduv formaat lihtne ränne.

REST API OpenAI ühilduv JSON vastused Streaming Support

Ülevaade

TTS.ai API pakub programmilist juurdepääsu kõigile platvormi funktsioonidele: tekstilt kõnele sünteesi, kõnelt tekstile transkriptsiooni, hääle kloonimist, heli täiendamist ja muud. API kasutab JSON päringu/vastuse organitega standardseid REST konventsioone.

API võti

Hangi oma API võti Konto Seadistused. Saadaval Pro ja Enterprise plaanid.

Baas- URL

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

Auth

Bearer token via Authorization päis

Autentimine

Kõik API päringud vajavad autentimist läbi Bearer märgi Authorization päis.

HTTP päis
Authorization: Bearer sk-tts-your-api-key-here
Hoia oma API võtit saladuses. Ärge jagage seda kliendipoolses koodis, avalikes hoidlates või logides. Pöörake võtmeid regulaarselt oma konto seadistustest.

SDKdunit synonyms for matching user input

Ametlik SDKd teha lihtne integreerida TTS.ai oma taotluse. Mõlemad on avatud allikas ja saadaval 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

Baas- URL

Baas- URL: https://api.tts.ai/v1/

Kõik tulemusnäitajad on selle baasURL- i suhtes. Näiteks TTS- i tulemusnäitaja on:

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

Hinnapiirangud

API piirmäärad on plaaniti erinevad:

Plaan Taotlused/min Samaaegne Maks. teksti pikkus
Vaba 10 2 500 tähemärki
Starter 30 3 100 000 tähemärki
Pro 60 5 100 000 tähemärki
Ettevõtlus 300 20 50 000 tähemärki

Määra piirangu päised on kaasatud iga vastuse: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.

Krediidikulud

Teenus Kulud Ühik
TTS (Vabad mudelid: Piper, VITS, MeloTTS) 1000 tähemärki 1000 tähemärgi kohta
TTS (Standardmudelid: Kokoro, CosyVoice 2 jne) 2000 tähemärki 1000 tähemärgi kohta
TTS (Premium mudelid: Tortoise, Chatterbox jne) 4000 tähemärki 1000 tähemärgi kohta
Kõne tekstile 2000 tähemärki audio minuti kohta
Hääle kloonimine 4000 tähemärki 1000 tähemärgi kohta
Häälemuutja 3000 tähemärki audio minuti kohta
Helivõimendus 2000 tähemärki audio minuti kohta
Hääle eemaldamine / varre tükeldamine 3000-4000 märki audio minuti kohta
Kõnetõlge 5000 tähemärki audio minuti kohta
Häälvestlus 3000 tähemärki iga pöörde kohtaunit synonyms for matching user input
Võtme ja BPM- i leidja Vaba --
Audiokonverter Vaba --

Tekst kõnele

POST /v1/tts/

Teisenda tekst kõne audioks. Tagastab audiofaili soovitud vormingus.

Taotluse esitanud asutus

ParameeterTüüpNõutavKirjeldus
model string Jah Mudel ID (nt kokoro, chatterbox, piper)
text string Jah Tekst kõneks teisendamiseks (maksimaalselt 100 000 tähemärki päringu kohta)
voice string Jah Hääle ID (kasutada olemasolevate häälte loetlemiseks < koodi>/v1/voices/)
format string Ei. Väljundi vorming: mp3 (vaikimisi), wav, flac, og
speed float Ei. Kõnekiiruse kordaja. Vaikimisi: < kood>1. 0. Vahemik: < kood>0. 5 kuni < kood>2. 0
language string Ei. Keelekood (nt en , es ).
stream boolean Ei. Soorituse vastuse lubamine. Vaikimisi: false

Näidistaotlus

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

Vastus

Tagastab audiofaili binaarandmetena sobiva Content-Type päisega (audio/mpeg, audio/wav jne).

Ravivastuse päised
Content-Type: audio/mpeg
Content-Length: 48256
X-Credits-Used: 2
X-Credits-Remaining: 498

Kõne tekstile

POST /v1/stt/

Määrab audio tekstiks. Toetab 99 keelt automaatse tuvastamisega.

Taotluse esitanud asutus (multipart/form-data)

ParameeterTüüpNõutavKirjeldus
file file Jah Audiofail (MP3, WAV, FLAC, OGG, M4A, MP4, WebM). Max 100MB.
model string Ei. STT mudel: whisper (vaikimisi), kiirem-whisper , sensevoice
language string Ei. Keelekood. < kood>auto automaatse tuvastamise korral (vaikimisi).
timestamps boolean Ei. Kaasa arvatud sõnataseme ajatemplid. Vaikimisi: < kood> vale
diarize boolean Ei. Kõneleja diariseerumise lubamine. Vaikimisi: false

Vastus

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

Hääle kloonimine

POST /v1/tts/clone/

Loo kõne kloonitud hääles. Laadi üles viiteheli ja tekst.

Taotluse esitanud asutus (multipart/form-data)

ParameeterTüüpNõutavKirjeldus
reference_audio file Jah Viitehääle heli (10-30 sekundit soovitatavat). Max 20MB.
text string Jah Sõnum kloonitud hääles rääkimiseks.
model string Ei. Kloonimudel: chatterbox (vaikimisi), cosyvoice2, gpt-sovits
format string Ei. Väljundi vorming: mp3 (vaikimisi), wav, flac
language string Ei. Sihtkeele kood. Seda peab toetama valitud mudel.

Vastus

Tagastab audiofaili binaarandmetena, sama mis TTS tulemusnäitaja.

Häälemuutja

POST /v1/voice-convert/

Teisenda heli, et kõlada nagu teine hääl. Lae lähtekoodi heli ja vali sihthääl.

Taotluse esitanud asutus (multipart/form-data)

ParameeterTüüpNõutavKirjeldus
file file Jah Lähte audiofail (MP3, WAV, FLAC). Max 50MB.
target_voice string Jah Sihthääle ID teisendamiseks (kasutada < kood>/v1/voices/, et loetleda saadaolevad hääled)
model string Ei. Hääle teisendamise mudel: openvoice (vaikimisi), knn-vc
format string Ei. Väljundi vorming: wav (vaikimisi), mp3, flac

Näidistaotlus

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

Vastus

Tagastab teisendatud audiofaili binaarandmetena.

Kõnetõlge

POST /v1/speech-translate/

Tõlgitud heli ühest keelest teise. Ühendab kõne-teksti, tõlke ja teksti-kõne ühe kõnega.

Taotluse esitanud asutus (multipart/form-data)

ParameeterTüüpNõutavKirjeldus
file file Jah Lähtesta audiofail originaalkeeles. Max 100MB.
target_language string Jah Sihtkeele kood (nt es, fr , de, ja)
voice string Ei. Hääl tingimusel väljund automaatne kui.
preserve_voice boolean Ei. Proovib säilitada originaalkõlari hääleomadusi. Vaikimisi: false

Vastus

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

Kõne kõnele

POST /v1/speech-to-speech/

Muutke kõnestiili, emotsioone või sünnitust, säilitades sisu. Kasulik kohandada tooni, pacing ja väljendusvõimet.

Taotluse esitanud asutus (multipart/form-data)

ParameeterTüüpNõutavKirjeldus
file file Jah Kõne audiofail. Max 50MB.
voice string Jah Väljundkõne sihthääle ID
model string Ei. Mudel: openvoice (vaikimisi), chatterbox
emotion string Ei. Emotsiooni sihttase: neutraal, pappy, sad, angry, packed
speed float Ei. Kiiruse reguleerimine. Vaikimisi: 1.0 . Vahemik: 0.5 kuni 2.0

Vastus

Tagastab teisendatud audiofaili binaarandmetena.

Audiotööriistad

Audio töötlemise tulemusnäitajad parandamiseks, vokaal eemaldamine, varre jagunemine, ja rohkem.

POST /v1/audio/enhance/

Parandada heli kvaliteeti: denoise, parandada selgust, super resolutsioon.

file fileSuurendatav audiofail
denoise booleanDenoiseerimise lubamine (vaikimisi: true)
enhance_clarity booleanSuurenda kõne selgust (vaikimisi: true)
super_resolution booleanSuurenda helikvaliteeti (vaikimisi: false)
strength integer1-3 (kerge, keskmine, tugev). Vaikimisi: 2
POST /v1/audio/separate/

Eraldi hääled instrumentaalidest (hääle eemaldamine) või lõhenevad varteks.

file fileEraldatav audiofail
model stringdemucs (vaikimisi) või spleeter
stems integerVarte arv: 2, 4, 5 või 6 (vaikimisi: 2)
format stringVäljundi vorming: wav, mp3, flac
POST /v1/audio/dereverb/

Eemaldab helisalvestistest kaja ja reverb.

file fileTöötletav audiofail
type stringecho or reverb (default: both)
intensity integer1-5 (default: 3)
POST /v1/audio/analyze/ Vaba

Analüüsige heli, et tuvastada võti, BPM, ja aja signatuur.

file fileAnalüüsitav audiofail
Vastus
{
  "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/ Vaba

Teisenda audio vormingute vahel.

file fileTeisendatav audiofail
format stringSihtvorm: mp3, wav, flac, ogg, m4a, ac
bitrate integerVäljundi bitikiirus kbps: 64, 128, 192, 256, 320
sample_rate integerProovi määr: 22050, 44100, 48000
channels stringmono või stereo

Häälvestlus

POST /v1/voice-chat/

Saada audio või tekst ja saada AI vastus sünteesitud kõnega.

Taotluse esitanud asutus (multipart/form-data või JSON)

ParameeterTüüpNõutavKirjeldus
audio file Ei.* Audiosisend (kas audio või text required)
text string Ei.* Tekstisisend (kas audio või text nõutav)
voice string Ei. AI vastuse hääl. Vaikimisi: < kood>af_ bella
tts_model string Ei. TTS vastuse mudel. Vaikimisi: < kood>kokoro
system_prompt string Ei. Kohandatud süsteemi kiirinfo AI jaoks
conversation_id string Ei. Jätkake olemasolevat vestlust

Vastus

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

Partii nr:

POST /v1/tts/batch/

Saatke paralleelselt TTS- i genereerimiseks mitu teksti. Kui kõik tööd on tehtud, saab veebikonksu tagasikutsumise.

Parameetrid

ParameeterTüüpKirjeldus
textsarrayArray of objects: {text, model, voice}. Max 50 items.
webhook_urlstringOptional URL to POST results when batch completes.

Vastus

JSON- ravivastus
{
  "batch_id": "abc123",
  "total": 3,
  "completed": 0,
  "status": "processing"
}

Kontrollkäigu edenemine GET/v1/tts/batch/result/?batch_id=abc123

Hääle põimimine

POST /v1/voice-embed/

Eelkompenseerib viite audiost omastatud hääle. Tagastatud embed_ id kasutatakse järgnevates peaaegu instant generatsiooni kõne kloonimise taotlustes.

Parameetrid

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

Vastus

JSON- ravivastus
{
  "embed_id": "emb_abc123",
  "model": "chatterbox",
  "duration_ms": 450
}

Tervisekontroll

GET /v1/health/

Kontrolli GPU serveri olekut, laaditud mudeleid ja järjekorda. Autentimist ei ole vaja. Cached for 30 seconds.

Vastus

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

Nimekiri Mudelid

GET /v1/models/

Tagastab kõigi olemasolevate mudelite nimekirja koos nende võimalustega.

Vastus

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

Nimekiri Hääled

GET /v1/voices/

Tagastab kõigi saadaolevate häälte nimekirja, mis valikuliselt filtreeritakse mudeli või keele järgi.

Päringu parameetrid

ParameeterTüüpKirjeldus
model string Filter mudeli ID järgi (nt kokoro)
language string Filter keelekoodi järgi (nt en )
gender string Filter soo järgi: male, national, neutraal

Vastus

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

Koodi näited

Tekst kõnele

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

Kõne tekstile

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"])

Hääle kloonimine

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)

Tekst kõnele

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();

Kõne tekstile

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

Tekst kõnele

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

Kõne tekstile

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"

Hääle kloonimine

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

Helivõimendus

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

Veakoodid

Kõik vead tagastavad JSON vastuse koos error väli.

Veareageerimise vorming
{
  "error": {
    "code": "insufficient_credits",
    "message": "You do not have enough characters for this request.",
    "characters_required": 4000,
    "characters_available": 2000
  }
}
HTTP olekVeakoodKirjeldus
400 bad_request Vigased päringu parameetrid. Kontrolli veateate üksikasju.
401 unauthorized Puuduv või vigane API võti.
402 insufficient_credits Mitte piisavalt tähemärki. Osta rohkem aadressil / hinnastamine /.
403 forbidden API juurdepääs ei ole kättesaadav oma plaani.
404 not_found Mudel või hääl ei leitud.
413 file_too_large Üleslaaditud fail ületab suurusepiirangu.
429 rate_limited Liiga palju soove. Kontrolli määrapiirangupäiseid.
500 internal_error Serveri viga. Proovi hiljem uuesti.
503 model_loading Modell laadib ja proovib mõne sekundi pärast uuesti.

WebhooksCity in Newfoundland Canada

Pikaajaliste ülesannete (stem tükeldamine, partii TTS) korral võid anda webhook_url parameetri. Kui ülesanne on lõpetatud, kirjutame tulemuse sinu URL- i.

Webhook Payload
{
  "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"
}
Webhooki tulemused on 24 tundi pärast lõpetamist allalaadimiseks kättesaadavad. Veenduge, et need kiiresti alla laadida.

Valmis ehitama?

Hangi oma API võti ja hakka integreerima TTS.ai oma rakendustesse.