API dokumentatsioon
Integreerida TTS.ai oma rakendustesse meie REST API. OpenAI-ühilduv formaat lihtne ränne.
Ü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
/v1/tts/ töötada ilma author, kuni 5000 tähemärki päevas IP, kasutades ükskõik millist meie tasuta mudelid (piper, vits, melotts, kokoro). Registreeru tasuta konto saada 15,000 boonus tähemärki ja juurdepääsu premium mudelid.
Premium mudelid ja kõrgem määr piirangud, autentida Bearer sümboolne Authorization päis.
Authorization: Bearer sk-tts-your-api-key-here
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")
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');
Baas- URL
Kõik tulemusnäitajad on selle baasURL- i suhtes. Näiteks TTS- i tulemusnäitaja on:
Hinnapiirangud
API piirmäärad on plaaniti erinevad:
| Plaan | Taotlused/min | Samaaegne | Maks. teksti pikkus |
|---|---|---|---|
| Vaba | 10 | 2 | 500 tähemärki |
| Starter | 30 | 3 | 1 000 000 tähemärki |
| Pro | 60 | 5 | 1 000 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
Teisenda tekst kõne audioks. Tagastab audiofaili soovitud vormingus.
Taotluse esitanud asutus
| Parameeter | Tüüp | Nõutav | Kirjeldus |
|---|---|---|---|
| model | string | Ei. | Mudel ID (nt kokoro, chatterbox, piper). Kui me ei ole auto-pick mudel, mis toetab taotletud Language < kood> < kood>Kokoro for en/ja/zh/ko/fr/de/it/pt/es/hi/ru, piper teiste toetatud keelte puhul (ar/pl/nl/cs/da/fi/el/hu/tr/uk/vi/etc.). |
| text | string | Jah | Tekst kõneks teisendamiseks. Nõudepõhine kork: 500 chars (anonüümne), 5000 (vabakonto), 1 000 000 (tasuline plaan). Pikad sisendid on automaatsed serveripoolsed. |
| 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 kood>. Vahemik: < kood>0. 5 kood> kuni < kood>2. 0 kood> |
| language | string | Ei. | Keelekood (nt en , es ). |
| instructions | string | Ei. | Aktiveerimine / kohaletoimetamise vihjed (≤500 märki). nt \ |
| pronunciations | object | array | Ei. | Korduv hääldamine. Kas < kood > {\ @ title: window |
| stream | boolean | Ei. | Soorituse vastuse lubamine. Vaikimisi: false code> |
Näidistaotlus
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 < say- as > sildid
Numbrid, kuupäevad, valuuta, telefoninumbrid ja lühendid Kuupäevavorming vaikimisi 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
tõlgendatav Sisend Räägitakse nagu cardinal1234one thousand two hundred thirty-four ordinal21twenty-first date1999-12-31Detsember kolmkümmend esimene, üheksateist üheksakümmend üheksa 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 inglise keeles ja dmy mujal; overover 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."
}Vastus
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.Täielik näide
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.
Kõne tekstile
Määrab audio tekstiks. Toetab 99 keelt automaatse tuvastamisega.
Taotluse esitanud asutus (multipart/form-data)
| Parameeter | Tüüp | Nõutav | Kirjeldus |
|---|---|---|---|
| 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 kood> |
| diarize | boolean | Ei. | Kõneleja diariseerumise lubamine. Vaikimisi: false code> |
Vastus
{
"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
Loo kõne kloonitud hääles. Laadi üles viiteheli ja tekst.
Taotluse esitanud asutus (multipart/form-data)
| Parameeter | Tüüp | Nõutav | Kirjeldus |
|---|---|---|---|
| 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
Teisenda heli, et kõlada nagu teine hääl. Lae lähtekoodi heli ja vali sihthääl.
Taotluse esitanud asutus (multipart/form-data)
| Parameeter | Tüüp | Nõutav | Kirjeldus |
|---|---|---|---|
| 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 -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
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)
| Parameeter | Tüüp | Nõutav | Kirjeldus |
|---|---|---|---|
| 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
{
"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
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)
| Parameeter | Tüüp | Nõutav | Kirjeldus |
|---|---|---|---|
| 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.
Parandada heli kvaliteeti: denoise, parandada selgust, super resolutsioon.
| file file | Suurendatav audiofail |
| denoise boolean | Denoiseerimise lubamine (vaikimisi: true) |
| enhance_clarity boolean | Suurenda kõne selgust (vaikimisi: true) |
| super_resolution boolean | Suurenda helikvaliteeti (vaikimisi: false) |
| strength integer | 1-3 (kerge, keskmine, tugev). Vaikimisi: 2 |
Eraldi hääled instrumentaalidest (hääle eemaldamine) või lõhenevad varteks.
| file file | Eraldatav audiofail |
| model string | demucs (vaikimisi) või spleeter |
| stems integer | Varte arv: 2, 4, 5 või 6 (vaikimisi: 2) |
| format string | Väljundi vorming: wav, mp3, flac |
Eemaldab helisalvestistest kaja ja reverb.
| file file | Töötletav audiofail |
| type string | echo or reverb (default: both) |
| intensity integer | 1-5 (default: 3) |
Analüüsige heli, et tuvastada võti, BPM, ja aja signatuur.
| file file | Analüüsitav audiofail |
{
"key": "C",
"scale": "Major",
"bpm": 120.0,
"time_signature": "4/4",
"camelot": "8B",
"compatible_keys": ["C Major", "G Major", "F Major", "A Minor"]
}
Teisenda audio vormingute vahel.
| file file | Teisendatav audiofail |
| format string | Sihtvorm: mp3, wav, flac, ogg, m4a, ac |
| bitrate integer | Väljundi bitikiirus kbps: 64, 128, 192, 256, 320 |
| sample_rate integer | Proovi määr: 22050, 44100, 48000 |
| channels string | mono või stereo |
Häälvestlus
Saada audio või tekst ja saada AI vastus sünteesitud kõnega.
Taotluse esitanud asutus (multipart/form-data või JSON)
| Parameeter | Tüüp | Nõutav | Kirjeldus |
|---|---|---|---|
| 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 kood> |
| tts_model | string | Ei. | TTS vastuse mudel. Vaikimisi: < kood>kokoro kood> |
| system_prompt | string | Ei. | Kohandatud süsteemi kiirinfo AI jaoks |
| conversation_id | string | Ei. | Jätkake olemasolevat vestlust |
Vastus
{
"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:
Saatke paralleelselt TTS- i genereerimiseks mitu teksti. Kui kõik tööd on tehtud, saab veebikonksu tagasikutsumise.
Parameetrid
| Parameeter | Tüüp | Kirjeldus |
|---|---|---|
| texts | array | Array of objects: {text, model, voice}. Max 50 items. |
| webhook_url | string | Valikuline URL POSTI tulemuste kohta, kui partii on lõpetatud. |
Vastus
{
"batch_id": "abc123",
"total": 3,
"completed": 0,
"status": "processing"
}
Kontrollkäigu edenemine GET/v1/tts/batch/result/?batch_id=abc123
Hääle põimimine
Eelkompenseerib viite audiost omastatud hääle. Tagastatud embed_ id kasutatakse järgnevates peaaegu instant generatsiooni kõne kloonimise taotlustes.
Parameetrid
| Parameeter | Tüüp | Kirjeldus |
|---|---|---|
| file | file | Reference audio file (WAV, MP3, FLAC). |
| model | string | Cloning model (default: chatterbox). Supported: chatterbox, cosyvoice2, openvoice, gpt-sovits, spark, indextts2, qwen3-tts. |
Vastus
{
"embed_id": "emb_abc123",
"model": "chatterbox",
"duration_ms": 450
}
Tervisekontroll
Kontrolli GPU serveri olekut, laaditud mudeleid ja järjekorda. Autentimist ei ole vaja. Cached for 30 seconds.
Vastus
{
"status": "online",
"latency_ms": 45,
"queue_size": 3,
"models_loaded": ["kokoro", "chatterbox", "cosyvoice2"]
}
Nimekiri Mudelid
Tagastab kõigi olemasolevate mudelite nimekirja koos nende võimalustega.
Vastus
{
"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
Tagastab kõigi saadaolevate häälte nimekirja, mis valikuliselt filtreeritakse mudeli või keele järgi.
Päringu parameetrid
| Parameeter | Tüüp | Kirjeldus |
|---|---|---|
| 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
{
"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
}
Tõlkis valiant subclub.future.ee uus
Sünkroniseeritud subtiitrite genereerimine iga lõpetatud TTS- i töö jaoks. Käivitab Whisper' i joondamise üle audio ja tagastab SRT või WebVTT. Tulemus on puhverdatud kettale nii, et sama uidi teine kõne on ketta lugemine.
Päringu parameetrid
| Parameeter | Nõutav | Kirjeldus |
|---|---|---|
| uuid | Jah | Töö UUID tagastas /v1/tts/ või /v1/voice-clone/. |
| format | Ei. | srt (vaikimisi) või vtt. |
| download | Ei. | 1 to send Content- Disposition: attachment so the browser results mitte displays. |
| language | Ei. | Vihje joondusmudelile (kui see on välja jäetud, siis automaatselt tuvastatav). |
curl "https://api.tts.ai/v1/speech/subtitles/?uuid=$UUID&format=srt&download=1" -o subtitles.srt
Hääldussõnastik uus
Ütle TTS mootorile, kuidas hääldada konkreetseid sõnu. Salvestatud kirjed rakenduvad automaatselt igale TTS päringule. 200- entry per- account limiit.
Taotluse esitanud asutus (POST)
| Parameeter | Tüüp | Kirjeldus |
|---|---|---|
| word | string | Tühistatav sõna (nt GIF, Antropic ). Sõnadega sobitatud. |
| replacement | string | Kuidas seda mudeli puhul kirjutada (nt jiff, ann HTHR ick). |
| language | string | Valikuline ISO kood. Tühi = kehtib kõigi keelte kohta. |
| case_sensitive | boolean | Vaikimisi < kood>vale kood>. Sobib just siis, kui true. |
# 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-..."
Sa võid ühe päringu tühistada ilma neid salvestamata ka Pronunciations igale /v1/tts/ call'ile kui objektile või massiivile (vt TTS tulemusnäitaja params).
Artikkel Jutustaja uus
Ühe < kood> < script> kood> sildi viskamine igale artiklilehele ja külastajad saavad püsilugejariba, mis jutustab lehekülje klõpsuga. Automaatselt tuvastab artikli keha, toetab kohandatud hääle / mudeli / positsiooni / aktsendi värvi.
<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>
Valikud
| Parameeter | Kirjeldus |
|---|---|
data-pk | Avaldatav võti (pk-tts-...). Domeenipiirangud jõustatakse võtme < kood> lubatud_domeenid kood> väljal. |
data-voice | Hääle ID. Vaikimisi < kood>af_bella. |
data-model | TTS mudeli ID. Vaikimisi < kood>kokoro. |
data-extract | auto (vaikimisi) ~ proovib artiklit/main/. post-content/. entry- content valijad, langeb tagasi tihedaima lõike klastrisse. Või edastab ükskõik millise CSS valija konkreetse elemendi sihtmärgiks. |
data-position | bottom (vaikimisi) or top. |
data-color | Õige värv (mis tahes CSS värv). Vaikimisi < kood>#e60000. |
data-min-chars / data-max-chars | Jäta riba vahele, kui artikkel on lühem kui min-chars (vaikimisi 200). Cap sisend max-chars (vaikimisi 50,000). |
Allikas: GitHub: < a href=\
Kuula nupuvidinat
Nuppude sisekujundusega embed. Renders kõrval oma < script > kood > tag ja mängib nupuga triggered lühike nihe. Erineva kujuga artikkel Jutustaja eespool (mis automaatselt sisestab lehekülje-spanning bar ja jutustab kogu artikkel).
<script src="https://tts.ai/widget.js"
data-voice="af_bella"
data-model="kokoro"
data-style="full"
data-theme="light"></script>
Salvestatud hääled (püsiv kloon)
Üleslaadimine audio üks kord, saada tagasi püsiv sound_id, siis viide, et ID TTS päringud asemel uuesti laadimine audio iga kõne. Ideaalne suuremahuline integratsioon.
Hääle üleslaadimine
POST
https://tts.ai/api/v1/user-voices/
Vajalik autentimine
Multipart form. Valdkonnad: fail (nõutav, 5-30s audio), nimi (nõutav), keel (vabatahtlik, vaikimisi en), mudel (vabatahtlik ~ auto-pickks cosyvoice2 zh/ja/koli openvoice), nõusolek_kinnitatud (nõutav, mis tahes tõene väärtus).
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"
}
Salvestatud hääle kasutamine TTS- is
POSTI /api/v1/tts / (NOTE: web VPS masin, mitte api.tts.ai) kasutaja_voice_id. Laeme salvestatud audio ja marsruudi kloonimise torujuhe.
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.
Nimekiri / kustuta
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
Arhiiv / reaktiveerimine (vaba)
Arhiveeritud hääled jäävad teie kontole, kuid ei saa kasutada TTS. Kasulik seisvatele lõppkasutajatele nii oma nimekirja jääb puhas.
POST https://tts.ai/api/v1/user-voices/uv_a1b2c3d4e5f6/archive/
POST https://tts.ai/api/v1/user-voices/uv_a1b2c3d4e5f6/reactivate/
Koodi näited
Tekst kõnele
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
# 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
# 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
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
// 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
# 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
# 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
# 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
# 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.
{
"error": {
"code": "insufficient_credits",
"message": "You do not have enough characters for this request.",
"characters_required": 4000,
"characters_available": 2000
}
}
| HTTP olek | Veakood | Kirjeldus |
|---|---|---|
| 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 |
Sul ei ole õigust sellele ressursile juurde pääseda (nt teise kasutaja töö ülekuulamine). API-juurdepääs on kaasatud igasse 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.
{
"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"
}
Valmis ehitama?
Hangi oma API võti ja hakka integreerima TTS.ai oma rakendustesse.