API-dokumentado
Integri TTS.ai en viajn aplikaĵojn per nia REST API. OpenAI-kongrua formato por facila migrado.
& Priskribo:
La TTS.ai API disponigas programaran aliron al ĉiuj funkcioj de la platformo: sintezo de teksto al parolado, transskribo de parolado al teksto, voĉo-klonado, aŭda plibonigo, kaj pli. La API uzas normajn REST-konvenciojn kun JSON-peto/respondaj korpoj.
API-ŝlosilo
Preni vian API-ŝlosilon de Kontoagordo. Disponebla en Pro kaj Enterprise planoj.
Baza URLo
https://api.tts.ai/v1/
Aŭtentigo
Portisto- Tokeno tra Authorization kapo
Aŭtentigo
/v1/tts/ labori sen ajna aŭtentigo, ĝis 5,000 signoj/tage por IP, uzante iun ajn el niaj liberaj modeloj (piper, vits, melotts, kokoro). Registriĝu por libera konto por ricevi 15,000 bonusajn karakterojn kaj aliron al premiumaj modeloj.
Ĉiuj API-petoj bezonas aŭtentigon per portanta signoĉeno en la Authorization kapo.
Authorization: Bearer sk-tts-your-api-key-here
SDKoj
Oficialaj SDK-oj faciligas integri TTS.ai en vian aplikaĵon. Ambaŭ estas malfermkodaj kaj haveblaj ĉe 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');
Baza URLo
Ĉiuj finpunktoj estas relative al tiu baza URLo. Ekzemple, la TTS- finpunkto estas:
Limigoj de rapideco
API-rapidecaj limoj varias laŭ plano:
| Plano | Petoj/min | Konkurenta | Maksimuma tekstolongo |
|---|---|---|---|
| Libera | 10 | 2 | 500 signoj |
| Lanĉilo | 30 | 3 | 1,000,000 signoj |
| Pro | 60 | 5 | 1,000,000 signoj |
| Enterpriseusa. kgm | 300 | 20 | 50,000 signoj |
Kaplinioj pri rapidolimo estas inkludataj en ĉiu respondo: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.
Kreditaj kostoj
| Servo | Kostoj | Unuo |
|---|---|---|
| TTS (liberaj modeloj: Piper, VITS, MeloTTS) | 1 kredito | por 1, 000 signoj |
| TTS (Normaj modeloj: Kokoro, CosyVoice 2, ktp.) | 2 kreditoj | por 1, 000 signoj |
| TTS (Premiaj modeloj: Tortoise, Chatterbox, ktp.) | 4 kreditoj | por 1, 000 signoj |
| Parolo al tekstoComment | 2 kreditoj | per minuto de aŭdo |
| Voĉa klonado | 4 kreditoj | por 1, 000 signoj |
| VoĉŝanĝiloName | 3 kreditoj | per minuto de aŭdo |
| Sona plibonigo | 2 kreditoj | per minuto de aŭdo |
| Voĉforigo / Voĉdivido | 3- 4 kreditoj | per minuto de aŭdo |
| ParoltradukoName | 5 kreditoj | per minuto de aŭdo |
| Voĉa babilejoName | 3 kreditoj | per vico |
| & BPM- serĉilo | Libera | -- |
| SonkonvertiloName | Libera | -- |
Teksto- al- ParoloComment
Konverti tekston al parola aŭdo. Redonas sondosieron en la dezirata formato.
Petokorpo
| Parametroj | & Tipo: | Necesa | Priskribo |
|---|---|---|---|
| model | string | Ne | Modelo-identigilo (ekz. kokoro, chatterbox, piper) |
| text | string | Jes | Teksto konvertenda al parolado (maksimume 5, 000 signoj por Pro, 50, 000 por Enterprise) |
| voice | string | Jes | Voĉa identigilo (uzu /v1/voices/ por listigi disponeblajn voĉojn) |
| format | string | Ne | Eliga formato: mp3 (default), wav, flac, ogg |
| speed | float | Ne | Parolrapideca multiplikilo. Defaŭlte: 1.0. Intervalo: 0.5 ĝis 2.0 |
| language | string | Ne | Lingva kodo (ekz. en, es). Aŭtomate detektita se omita. |
| instructions | string | Ne | Agado / liverado de indikoj (≤500 signoj). ekz. < kodo >\ |
| pronunciations | object | array | Ne | Per-peto elparolo anstataŭigas. Aŭ {\ |
| stream | boolean | Ne | Ebligi fluan respondon. Defaŭlte: false |
Ekzemplopeto
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 etikedoj
Enmeti nombrojn, datojn, valutojn, telefonnumerojn kaj akronimojn en La datoformato estas defaŭlte 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 Enigo Parolita kiel cardinal1234one thousand two hundred thirty-four ordinal21twenty-first date1999-12-31Decembro tridek unua, dek naŭ naŭdek naŭ 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 por la angla kaj dmy aliloke; anstataŭigu per 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."
}Respondo
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.Plena ekzemplo
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.
Parolo al tekstoComment
Transskribi aŭdon al teksto. Subtenas 99 lingvojn kun aŭtomata detekto.
Petokorpo (multipart/form-data)
| Parametroj | & Tipo: | Necesa | Priskribo |
|---|---|---|---|
| file | file | Jes | Sona dosiero (MP3, WAV, FLAC, OGG, M4A, MP4, WebM). Maksimume 100 MB. |
| model | string | Ne | STT modelo: whisper (default), faster-whisper, sensevoice |
| language | string | Ne | Lingva kodo. auto por aŭtomata detekto (default). |
| timestamps | boolean | Ne | Include word-level timestamps. Default: false |
| diarize | boolean | Ne | Ebligi laŭtparolilon. Defaŭlte: false |
Respondo
{
"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"
}
]
}
Voĉa klonado
Generi paroladon per klonita voĉo. Alŝuti referencan sonon kaj tekston. Name
Petokorpo (multipart/form-data)
| Parametroj | & Tipo: | Necesa | Priskribo |
|---|---|---|---|
| reference_audio | file | Jes | Referenca voĉa aŭdo (10-30 sekundoj rekomenditaj). Maks. 20MB. |
| text | string | Jes | Teksto por paroli per la klonita voĉo. |
| model | string | Ne | Klona modelo: chatterbox (default), cosyvoice2, gpt-sovits |
| format | string | Ne | Eliga formato: mp3 (default), wav, flac |
| language | string | Ne | Cellingva kodo. Devas esti subtenata de la elektita modelo. |
Respondo
Redonas la sondosieron kiel duuma datumo, same kiel la TTS- finpunkto.
VoĉŝanĝiloName
Konverti sonon por soni kiel alia voĉo. Alŝutu fontan sonon kaj elektu celvoĉon.
Petokorpo (multipart/form-data)
| Parametroj | & Tipo: | Necesa | Priskribo |
|---|---|---|---|
| file | file | Jes | Fonta sondosiero (MP3, WAV, FLAC). Maks. 50MB. |
| target_voice | string | Jes | Celvoĉa identigilo konvertenda al (uzu /v1/voices/ por listigi disponeblajn voĉojn) |
| model | string | Ne | Voĉa konverta modelo: openvoice (default), knn-vc |
| format | string | Ne | Eliga formato: wav (default), mp3, flac |
Ekzemplopeto
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
Respondo
Returnas la konvertitan sondosieron kiel duuma datumo.
ParoltradukoName
Traduki parolitan sonon el unu lingvo al alia. Kombinas paroladon al teksto, tradukon, kaj tekston al parolado en ununura voko. Name
Petokorpo (multipart/form-data)
| Parametroj | & Tipo: | Necesa | Priskribo |
|---|---|---|---|
| file | file | Jes | Fonta sondosiero en la originala lingvo. Maks. 100MB. |
| target_language | string | Jes | Cellingva kodo (ekz. es, fr, de, ja) |
| voice | string | Ne | Voĉo por tradukita eligo. Aŭtomate elektita se omita. |
| preserve_voice | boolean | Ne | Provi konservi la originan parolanton |
Respondo
{
"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
}
Parolo al ParoloComment
Transformi parolstilon, emocion, aŭ prezentadon dum konservado de la enhavo. Utila por agordi tonon, ritmon, kaj esprimpovon.
Petokorpo (multipart/form-data)
| Parametroj | & Tipo: | Necesa | Priskribo |
|---|---|---|---|
| file | file | Jes | Fonta parola aŭddosiero. Maks. 50MB. |
| voice | string | Jes | Celvoĉa identigilo por la elsendata parolado |
| model | string | Ne | Modelo: openvoice (default), chatterbox |
| emotion | string | Ne | Celemocio: neŭtrala, feliĉa, trista, kolera, ekscitita
|
| speed | float | Ne | Rapideca agordo. Defaŭlte: 1.0. Intervalo: 0.5 ĝis 2.0 |
Respondo
Redonas la transformitan sondosieron kiel duuma datumo.
SonilojName
Finpunktoj de aŭda prilaborado por plibonigo, forigo de voĉo, disdivido de tigo, ktp.
Plibonigi sonkvaliton: forigi bruon, plibonigi klarecon, superdifino.
| file file | Sondosiero por plibonigo |
| denoise boolean | Ebligi malbruigon (default: true) |
| enhance_clarity boolean | Plibonigi parolklarecon (default: true) |
| super_resolution boolean | Plibonigi sonkvaliton (default: false) |
| strength integer | 1- 3 (malforta, meza, forta). Apriora: 2 |
Separi vokalojn de instrumentaloj (vokala forigo) aŭ dividi en stemojn.
| file file | Sondosiero por apartigi |
| model string | demucs (defaŭlta) aŭ spleeter |
| stems integer | Nombro de truoj: 2, 4, 5, aŭ 6 (default: 2) |
| format string | Eliga formato: wav, mp3, flac |
Forigi eĥon kaj reverbon el sonregistraĵoj.
| file file | Sondosiero por prilabori |
| type string | echo or reverb (default: both) |
| intensity integer | 1-5 (default: 3) |
Analizi sonon por detekti tonalton, BPM, kaj taktosignon.
| file file | Sondosiero por analizi |
{
"key": "C",
"scale": "Major",
"bpm": 120.0,
"time_signature": "4/4",
"camelot": "8B",
"compatible_keys": ["C Major", "G Major", "F Major", "A Minor"]
}
Konverti sonojn inter formatoj.
| file file | Sondosiero konvertenda |
| format string | Celformato: mp3, wav, flac, ogg, m4a, aac |
| bitrate integer | Eliga bitkvanto en kbps: 64, 128, 192, 256, 320 |
| sample_rate integer | Sample rate: 22050, 44100, 48000 |
| channels string | mono aŭ stereo |
Voĉa babilejoName
Sendu sonon aŭ tekston kaj ricevu AI-respondon kun sintezita parolado.
Petokorpo (multipart/form-data aŭ JSON)
| Parametroj | & Tipo: | Necesa | Priskribo |
|---|---|---|---|
| audio | file | Ne* | Sona enigo (necesas audio aŭ text) |
| text | string | Ne* | Tekstenigo (necesas audio aŭ text) |
| voice | string | Ne | Voĉo por AI-respondo. Defaŭlte: af_bella |
| tts_model | string | Ne | TTS-modelo por respondo. Defaŭlte: kokoro |
| system_prompt | string | Ne | Propra sistema mesaĝo por la AI |
| conversation_id | string | Ne | Daŭrigi ekzistantan konversacion |
Respondo
{
"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
Sendi plurajn tekstojn por paralela TTS- generado. Opcie ricevi retkroĉan revokon kiam ĉiuj taskoj finiĝas.
Parametroj
| Parametroj | & Tipo: | Priskribo |
|---|---|---|
| texts | array | Array of objects: {text, model, voice}. Max 50 items. |
| webhook_url | string | Opcia URLo por POST-rezultoj kiam la aro finiĝas. |
Respondo
{
"batch_id": "abc123",
"total": 3,
"completed": 0,
"status": "processing"
}
Poll progress with GET /v1/tts/batch/result/?batch_id=abc123
Enkorpigi voĉon
Antaŭkalkuli voĉan enkorpigon el referenco-sono. Uzi la redonitan embed_id en postaj voĉaj klonaj petoj por preskaŭ tuja generado.
Parametroj
| Parametroj | & Tipo: | Priskribo |
|---|---|---|
| file | file | Reference audio file (WAV, MP3, FLAC). |
| model | string | Cloning model (default: chatterbox). Supported: chatterbox, cosyvoice2, openvoice, gpt-sovits, spark, indextts2, qwen3-tts. |
Respondo
{
"embed_id": "emb_abc123",
"model": "chatterbox",
"duration_ms": 450
}
Sankontrolo
Kontroli la staton de la GPU-servilo, ŝarĝitajn modelojn, kaj la grandecon de la atendovico. Aŭtentigo ne necesas. Kaŝita dum 30 sekundoj.
Respondo
{
"status": "online",
"latency_ms": 45,
"queue_size": 3,
"models_loaded": ["kokoro", "chatterbox", "cosyvoice2"]
}
Listo de modeloj
Redonas liston de ĉiuj haveblaj modeloj kun iliaj kapabloj.
Respondo
{
"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
}
]
}
Listi voĉojn
Redonas liston de ĉiuj haveblaj voĉoj, opcione filtritaj laŭ modelo aŭ lingvo.
Query Parameters
| Parametroj | & Tipo: | Priskribo |
|---|---|---|
| model | string | Filtri laŭ modelo-identigilo (ekz. kokoro) |
| language | string | Filtri laŭ lingvokodo (ekz. en) |
| gender | string | Filtri laŭ sekso: male, female, neutral |
Respondo
{
"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
}
Subtekstoj (SRT / VTT) nova
Generi sinkronigitajn subtekstojn por ĉiu kompletigita TTS- tasko. Lanĉas Whisper- aligon super la sono kaj redonas SRT aŭ WebVTT. La rezulto estas kaŝita sur disko, do dua voko por la sama uuid estas diskolegado.
Query Parameters
| Parametroj | Necesa | Priskribo |
|---|---|---|
| uuid | Jes | La tasko- UUID revenis de /v1/tts/ aŭ /v1/voice-clone/. |
| format | Ne | srt (default) aŭ vtt. |
| download | Ne | 1 por sendi Content-Disposition: attachment tiel ke la retumilo konservu anstataŭ montri. |
| language | Ne | Laŭ la modelo de la algoritmo (aŭtomate detektita se omita). |
curl "https://api.tts.ai/v1/speech/subtitles/?uuid=$UUID&format=srt&download=1" -o subtitles.srt
Prononca vortaro nova
Diru al la TTS-motoro kiel prononci specifajn vortojn. Konservitaj eroj aŭtomate aplikiĝas al ĉiu TTS-peto kiun vi faras. Limigo de 200 eroj por konto.
Petokorpo (POST)
| Parametroj | & Tipo: | Priskribo |
|---|---|---|
| word | string | Vorto anstataŭigenda (ekz. GIF, Anthropic). Vortlimo kongruas. |
| replacement | string | La kodo estas skribita en la formo j, j, j, j, j, j. |
| language | string | Opcia ISO- kodo. Malplena = validas por ĉiuj lingvoj. |
| case_sensitive | boolean | Defaŭlta false. Konformi al uzokutimo ekzakte kiam 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-..."
Oni povas ankaŭ transdoni per-peto anstataŭigojn sen konservi ilin — inkludi pronunciations sur ĉiu /v1/tts/ alvoko kiel objekto aŭ aro (vidu la TTS finpunkto parametroj).
Artikola rakontilo nova
Se vi metas -etikedon sur iu ajn artikolopaĝo, la vizitantoj ricevos fiksan legilon, kiu rakontas la paĝon je alklako. Aŭtomate detektas la artikolokorpon, subtenas propran voĉon / modelon / pozicion / akcentkoloron.
<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>
Opcioj
| Parametroj | Priskribo |
|---|---|
data-pk | Publikigebla ŝlosilo (pk-tts-…). Retregionaj limigoj estas truditaj per la ŝlosila kampo allowed_domains. |
data-voice | Voĉa identigilo. Defaŭlta af_bella. |
data-model | TTS-modelo-ID. Defaŭlta kokoro. |
data-extract | auto (default) — provas article/main/.post-content/.entry-content selektilojn, revenas al plej densa alinea grupo. Aŭ pasas iun ajn CSS selektilon por celi specifan elementon. |
data-position | bottom (default) aŭ top. |
data-color | Akcenta koloro (iu ajn CSS-koloro). Defaŭlta #e60000. |
data-min-chars / data-max-chars | Preterpasi la strekon se la mesaĝo estas pli mallonga ol minimume 200 signoj. Malpliigi enigo je maksimume 50. 000 signoj. |
Aŭskultu butonan fenestraĵonName
Enmetita buton-stila enkorpigo. Renderiĝas apud sia etikedo kaj ludas buton-aktivigitan mallongan fragmenton. Malsama formo ol la Artikola Rakonto supre (kiu aŭtomate enmetas paĝo-skalan barelon kaj rakontas la tutan artikolon).
<script src="https://tts.ai/widget.js"
data-voice="af_bella"
data-model="kokoro"
data-style="full"
data-theme="light"></script>
Konservitaj voĉoj (permanentaj klonoj)
Alŝuti referencan sonon unufoje, ricevi daŭran voĉan identigilon, kaj poste referenci tiun identigilon en TTS-petoj anstataŭ realŝuti la sonon ĉe ĉiu voko. Ideala por integrado de grandaj volumoj.
Alŝuti voĉon
POST
https://tts.ai/api/v1/user-voices/
Aŭtentigo necesas
Plurparta formo. Kampoj: dosiero (necesa, 5-30s aŭdo), nomo (necesa), lingvo (opcia, defaŭlta en), modelo (opcia — aŭtomate elektas cosyvoice2 por zh/ja/ko alikaze openvoice), konsento_konfirmita (necesa, iu ajn vera valoro).
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"
}
Uzi la konservitan voĉon en TTS
POST al /api/v1/tts/ (NOTO: ret-VPS-gastiganto, ne api.tts.ai) kun user_voice_id. Ni ŝargas vian konservitan sonon kaj vojon al la klona kanalo.
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.
Listo / forigo
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
Arkivi / reaktivigi (libera)
Arkivitaj voĉoj restas en via konto sed ne povas esti uzataj en TTS. Utila por dormantaj finuzantoj tiel ke via listo restas pura.
POST https://tts.ai/api/v1/user-voices/uv_a1b2c3d4e5f6/archive/
POST https://tts.ai/api/v1/user-voices/uv_a1b2c3d4e5f6/reactivate/
Kodoekzemploj
Teksto- al- ParoloComment
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')}")
Parolo al tekstoComment
# 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"])
Voĉa klonado
# 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)
Teksto- al- ParoloComment
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();
Parolo al tekstoComment
// 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);
Teksto- al- ParoloComment
# 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
Parolo al tekstoComment
# 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"
Voĉa klonado
# 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
Sona plibonigo
# 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
Erarokodoj
Ĉiuj eraroj redonas JSON-respondon kun error kampo.
{
"error": {
"code": "insufficient_credits",
"message": "You do not have enough characters for this request.",
"characters_required": 4000,
"characters_available": 2000
}
}
| HTTP- stato | Erarokodo | Priskribo |
|---|---|---|
| 400 | bad_request |
Nevalidaj petaj parametroj. Kontrolu la erarmesaĝon por detaloj. |
| 401 | unauthorized |
Mankanta aŭ nevalida API- ŝlosilo. |
| 402 | insufficient_credits |
Ne sufiĉas kreditoj. Aĉetu pli ĉe / pricing /. |
| 403 | forbidden |
Vi ne havas permeson aliri tiun rimedon (ekz. polling la taskon de alia uzanto). API aliro mem estas inkludita en ĉiu plano. |
| 404 | not_found |
Modelo aŭ voĉo ne trovita. |
| 413 | file_too_large |
La alŝutita dosiero superas la maksimuman grandecon. |
| 429 | rate_limited |
Tro multaj petoj. Kontrolu la kapliniojn de la rapideclimo. |
| 500 | internal_error |
Servila eraro. Provu denove poste. |
| 503 | model_loading |
Ŝarĝante modelon. Reprovu post kelkaj sekundoj. |
TTT- ligiloj
Por longdaŭraj taskoj (trunk-divido, batch TTS), vi povas doni webhook_url parametron. Kiam la tasko finiĝas, ni POSTos la rezulton al via 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"
}
Ĉu vi pretas konstrui?
Prenu vian API-ŝlosilon kaj komencu integri TTS.ai en viajn aplikaĵojn.