API Documentación
Oike TTS.ai-pe nde aplicación-pe API REST rupive. Formato OpenAI-pe ojokupytykuaáva ikatu hag̃uaicha oñemoambue pya'eve.
Resumen
API TTS.ai ome'ẽ acceso programación rupive opaite umi característica plataforma rehegua: síntesis texto-gui ñe'ẽ, ñe'ẽ transcripción-gui ñe'ẽ, ñe'ẽ clonación, ñehendurã ñembohetave ha ambue.
Clave API
Oñeme'ẽ llave API-pe Configuración de cuenta. Ojejuhu opaichagua plan-pe, oikehápe avei umi cuenta libre.
URL base
https://api.tts.ai/v1/
Autorización
Token portador rupive Authorization cabecera
Autenticación
/v1/tts/ omba'apo'ỹre peteĩ autorización-gui, 5.000 caractere peve peteĩ árape peteĩ IP-pe g̃uarã, oipurukuévo oimeraẽ ñane modelo libre (piper, vits, melotts, kokoro). Oñemoinge peteĩ cuenta-pe ojehepyme'ẽ hag̃ua 15.000 carácter adicional ha ojeike hag̃ua modelo premium-pe.
Umi modelo premium ha límite de tasa ijyvatevévape g̃uarã, ojehechakuaa peteĩ token portador-pe. Authorization cabecera.
Authorization: Bearer sk-tts-your-api-key-here
SDK
Umi SDK oficial ombohape ikatu hag̃uaicha TTS.ai oñemoĩnge porã app-pe. Mokõive hína código abierto ha ikatu ojejuhu GitHub-pe.
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');
URL base
Opaite punto final ha'e hína upe URL base reheguápe. Techapyrã, punto final TTS ha'e:
Tasa límite
API tasa límite iñambue peteĩteĩ umi plan rupive:
| Plano | Solicitud/min | Concurrente | Ñe'ẽnguéra papapy tuichavéva |
|---|---|---|---|
| Libre | 10 | 2 | 500 caractere |
| Arranque | 30 | 3 | 1.000.000 caractere |
| Pro | 60 | 5 | 1.000.000 caractere |
| Negocio+ | 300 | 20 | 50.000 caractere |
Umi cabecera límite de tasa oĩ peteĩteĩ respuesta ryepýpe: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.
Caracter jeporu
| Servicio | Presupuesto | Unidad |
|---|---|---|
| TTS (modelo-kuéra libre: Piper, VITS, MeloTTS) | 1000 caractere | 1000 caractere rupi |
| TTS (modelo estándar: Kokoro, CosyVoice 2, ha ambue) | 2000 caractere | 1000 caractere rupi |
| TTS (modelo premium: Tortoise, Chatterbox, ha ambue) | 4000 caractere | 1000 caractere rupi |
| Ñe'ẽ ñeikumby | 2000 caractere | por minuto de sonido |
| Clonación ñe'ẽnguéra rehe | 4000 caractere | 1000 caractere rupi |
| Ñe'ẽ ñemoambue | 3000 caractere | por minuto de sonido |
| Ñemboaje audio-pe | 2000 caractere | por minuto de sonido |
| Vocal ñembogue/Voz ñemboja'o | 3,000-4,000 caractere | por minuto de sonido |
| Ñemoambue | 5000 caractere | por minuto de sonido |
| Ñembohasa | 3000 caractere | peteĩ turno-pe |
| Buscador de claves y BPM | Libre | -- |
| Conversor de audio | Libre | -- |
Ñe'ẽnguéra.:
Oñemoambue jehaipy ñe'ẽnguérape. Ombovy'a peteĩ ñe'ẽnguéra archivo formato ojeipotávape.
Solicitud retepy
| Parámetro | Type | Oñeikotevẽ | Descripción |
|---|---|---|---|
| model | string | No | ID modelo-pegua (techapyrã, ñemohenda, mbohapyha, pimientoOñemomombyry jave, ojeiporavokuaa peteĩ modelo oykekohápe pe ojejerureva'ekue. lenguaje — ñemohenda en/ja/zh/ko/fr/de/it/pt/es/hi/ru, pimiento Ambue ñe'ẽnguérape g̃uarã (ar/pl/nl/cs/da/fi/el/hu/tr/uk/vi/eta.). |
| text | string | Ha'e | Ñe'ẽ oñemoambuéva ñe'ẽ'aporã. Solicitud rehegua límite: 500 carácter (anónimo), 5,000 (cuenta libre), 1,000,000 (plan pago). Umi entrada puku oñemohenda jey server-pe. |
| voice | string | Ha'e | ID ñe'ẽ (jeporu /v1/voces/ (omoĩnge hag̃ua ñe'ẽnguéra oĩvaíva apytépe) |
| format | string | No | Formato de salida: mp3 (por defecto), wav, flac, ogg |
| speed | float | No | Oñe'ẽ pya'eve rehegua multiplicador. Por defecto: 1.0Rango: 0.5 mokõi 2.0 |
| language | string | No | Ñe'ẽ rehegua código (techapyrã, ha, es). Ojejuhu jey jey ojeipe'áramo. |
| instructions | string | No | Actuación/entrega rehegua señal (≤500 carácter). techapyrã. \ |
| pronunciations | object | array | No | Oñemoambue ñe'ẽnguéra peteĩteĩ. ^ |
| stream | boolean | No | Oñembohapévo respuesta de transmisión. Por defecto: falso |
Ñemboaje techapyrã
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 etiquetas
Ojehai papapykuéra, ára, moneda, papapy teléfono ha siglas Formato de fecha por defecto ha'e 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
Interpretar Entrada Oñe'ẽháicha cardinal1234one thousand two hundred thirty-four ordinal21twenty-first date1999-12-3131 jasypoteĩ ary 1999 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 md Ñe'ẽnguéra Sãmbyhyhára dmy ambue hendápe; ojeipy'apy hese formato=\{
"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."
}Respuesta
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.Techapyrã tuichakue
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.
Ñe'ẽ ñeikumby
Oñemoambue ñe'ẽnguéra. Oipytyvõ 99 ñe'ẽnguérape ha ojejuhu jey jey hesekuéra.
Solicitud retepy (multipart/form-data)
| Parámetro | Type | Oñeikotevẽ | Descripción |
|---|---|---|---|
| file | file | Ha'e | Umi archivo de sonido (MP3, WAV, FLAC, OGG, M4A, MP4, WebM). 100MB peve. |
| model | string | No | Modelo STT: susurro (por defecto), susurro-pypukuvéva, sensevoice |
| language | string | No | Lenguaje reko. auto Detección automática-pe g̃uarã (por defecto). |
| timestamps | boolean | No | Oike avei umi marca de tiempo ñe'ẽ-pegua. Por defecto: falso |
| diarize | boolean | No | Oñemu diagnóstico ñehendurã. Por defecto: falso |
Respuesta
{
"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"
}
]
}
Clonación ñe'ẽnguéra rehe
Oñemohenda ñe'ẽ peteĩ ñe'ẽ clonada-pe. Oñemohenda peteĩ ñe'ẽnguéra referencia ha peteĩ jehaipy.
Solicitud retepy (multipart/form-data)
| Parámetro | Type | Oñeikotevẽ | Descripción |
|---|---|---|---|
| reference_audio | file | Ha'e | Ñe'ẽ rehegua audio referencia (10-30 segundo recomendado). Máx. 20MB. |
| text | string | Ha'e | Ñe'ẽnguéra ojeiporúva ñe'ẽ clonada-pe. |
| model | string | No | Modelo clon: mbohapyha (por defecto), voz agradable 2, gpt-sovits |
| format | string | No | Formato de salida: mp3 (por defecto), wav, flac |
| language | string | No | Ñe'ẽ rehegua código ojehupytyséva. Oñeme'ẽ va'erã modelo ojeporavóvape. |
Respuesta
Ojevy jey audio archivo dato binario-ramo, punto final TTS-peguaicha.
Ñe'ẽ ñemoambue
Oñemoambue audio peteĩ ñe'ẽ ambueháicha. Omoĩnge audio fuente ha oiporavo ñe'ẽ ojehupytyséva.
Solicitud retepy (multipart/form-data)
| Parámetro | Type | Oñeikotevẽ | Descripción |
|---|---|---|---|
| file | file | Ha'e | Audio archivo fuente (MP3, WAV, FLAC). 50MB peve. |
| target_voice | string | Ha'e | ID ñe'ẽnguéra ojehupytyséva oñemoambue hag̃ua (jeporu /v1/voces/ (omoĩnge hag̃ua ñe'ẽnguéra oĩvaíva apytépe) |
| model | string | No | Modelo ñehendurã ñemoambue: openvoice (por defecto), knn-vc |
| format | string | No | Formato de salida: wav (por defecto), mp3, flac |
Ñemboaje techapyrã
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
Respuesta
Ojevy jey umi archivo de sonido oñemoambuéva dato binario-ramo.
Ñemoambue
Oñemoambue ñe'ẽnguéra ojeiporúva peteĩ ñe'ẽme ambue ñe'ẽme. Oñemohenda ñe'ẽnguéra peteĩ ñe'ẽme ambue ñe'ẽme, ñe'ẽnguéra peteĩ ñe'ẽme ha ñe'ẽnguéra ambue ñe'ẽme peteĩ ñe'ẽme.
Solicitud retepy (multipart/form-data)
| Parámetro | Type | Oñeikotevẽ | Descripción |
|---|---|---|---|
| file | file | Ha'e | Ñemoarandu rehegua archivo ñe'ẽ ypype. 100MB peve. |
| target_language | string | Ha'e | Código lenguaje ojeguerekóva (techapyrã, es, fr, oguerekóva, Ha'e) |
| voice | string | No | Ñe'ẽ ñeikumby rehegua. Ojeiporavo'ỹre. |
| preserve_voice | boolean | No | Oñeha'ã oñeñangareko umi ñe'ẽnguéra ypy rehe. Por defecto: falso |
Respuesta
{
"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
}
Ñe'ẽ ñe'ẽ'ỹme
Oñemoambue ñe'ẽnguéra estilo, emoción térã ñeikumby, hakatu oñeñongatu umi contenido. Oikoporãva oñemohenda hag̃ua tono, ritmo ha expresividad.
Solicitud retepy (multipart/form-data)
| Parámetro | Type | Oñeikotevẽ | Descripción |
|---|---|---|---|
| file | file | Ha'e | Audio rehegua archivo ñe'ẽnguéra rehegua. Máximo 50MB. |
| voice | string | Ha'e | ID ñe'ẽnguéra oguerekóva ñe'ẽnguéra salida-pegua |
| model | string | No | Modelo: openvoice (por defecto), mbohapyha |
| emotion | string | No | Emoción ojejuhutava: neutral, feliz, Sábado, iñarandúva, animado |
| speed | float | No | Ajuste de velocidad. Por defecto: 1.0Rango: 0.5 mokõi 2.0 |
Respuesta
Ojevy jey umi archivo de sonido oñemoambuéva dato binario-ramo.
Audio-pegua herramienta-kuéra
Umi punto final ñehesa'ỹijo ñehendurã ñembohetave, ñehendurã ñeguenohẽ, ñehendurã ñemboja'o ha ambue.
Oñemoporãve ñe'ẽnguéra calidad: oñemboguejyve ruido, oñemoporãve ñeikumby ha oñemohenda porãve.
| file file | Umi archivo de sonido oñemomorãvéva |
| denoise boolean | Oñemu'ã desruido (por defecto: verdadero) |
| enhance_clarity boolean | Oñembohetave ñe'ẽnguéra ñemohenda (por defecto: verdadero) |
| super_resolution boolean | Oñembohetave ñehendurã calidad (por defecto: falso) |
| strength integer | 1-3 (py'ỹinte, medio, imbarete). Por defecto: 2 |
Ojeipapa umi vocal umi instrumental-gui (vocal ñembogue) térã oñemboja'o umi tallo-pe.
| file file | Umi archivo de sonido ojeipe'atava |
| model string | demucs (por defecto) térã spleeter |
| stems integer | Ta'ãnga mbohapyha: 2, 4, 5 térã 6 (por defecto: 2) |
| format string | Formato de salida: wav, mp3, flac |
Oñemomombyry eco ha reverberación umi ñehendurã ñeguenohẽgui.
| file file | Umi archivo de sonido oñemohendatava |
| type string | echo or reverb (default: both) |
| intensity integer | 1-5 (default: 3) |
Ohesa'ỹijo ñe'ẽnguéra ojuhu hag̃uã clave, BPM ha tiempo rehegua signatura.
| file file | Umi archivo de sonido oñehesa'ỹijotava |
{
"key": "C",
"scale": "Major",
"bpm": 120.0,
"time_signature": "4/4",
"camelot": "8B",
"compatible_keys": ["C Major", "G Major", "F Major", "A Minor"]
}
Oñemoambue audio formato apytépe.
| file file | Umi archivo de sonido oñemoambuéva |
| format string | Formato ojejuhutava: mp3, wav, flac, ogg, m4a, aac |
| bitrate integer | Tasa de bits de salida en kbps: 64, 128, 192, 256, 320 |
| sample_rate integer | Tasa de muestreo: 22050, 44100, 48000 |
| channels string | mono térã stereo |
Ñembohasa
Oñemoĩ ñe'ẽnguéra térã ñe'ẽnguéra ha ojehupyty peteĩ IA ñembohovái ñe'ẽnguéra rehe.
Solicitud retepy (multipart/form-data térã JSON)
| Parámetro | Type | Oñeikotevẽ | Descripción |
|---|---|---|---|
| audio | file | No* | Audio-pegua jeike (térã audio térã texto Oñeikotevẽ) |
| text | string | No* | Ñe'ẽnguéra rehegua jeike (térã audio térã texto Oñeikotevẽ) |
| voice | string | No | Ñe'ẽ IA ñembohováipe. Por defecto: _Oipe'a |
| tts_model | string | No | Modelo TTS ñembohováipe. Por defecto: ñemohenda |
| system_prompt | string | No | Sistema rehegua prompt oñemohendapyréva IA-pe g̃uarã |
| conversation_id | string | No | Ojepysove peteĩ ñe'ẽjovake oĩmava |
Respuesta
{
"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
}
TTS por lotes
Oñemoĩ heta ñe'ẽnguéra peteĩteĩ generación TTS paralelo-pe g̃uarã. Oĩ avei opción ohupyty hag̃ua peteĩ webhook callback opaite tembiapo oñemohu'ã rire.
Parámetro-kuéra
| Parámetro | Type | Descripción |
|---|---|---|
| texts | array | Array of objects: {text, model, voice}. Max 50 items. |
| webhook_url | string | URL ojeipotáva POST resultado-pe g̃uarã lote oñemohu'ã jave. |
Respuesta
{
"batch_id": "abc123",
"total": 3,
"completed": 0,
"status": "processing"
}
Oñeha'ã jehaipy ñemboguata GET/v1/tts/batch/result/?batch_id=abc123 rupive
Ñe'ẽnguéra ñemoinge
Oñeha'ã raẽ peteĩ ñe'ẽ ñemoĩngekuaáva audio referencia-gui. Oiporu embed_id ojejuhu va'ekue ñe'ẽ clonación ñeikotevẽ uperireguápe oñemoheñói hag̃ua pya'eterei.
Parámetro-kuéra
| Parámetro | Type | Descripción |
|---|---|---|
| file | file | Reference audio file (WAV, MP3, FLAC). |
| model | string | Cloning model (default: chatterbox). Supported: chatterbox, cosyvoice2, openvoice, gpt-sovits, spark, indextts2, qwen3-tts. |
Respuesta
{
"embed_id": "emb_abc123",
"model": "chatterbox",
"duration_ms": 450
}
Ko'ã mba'e jehechajey jey
Ojehecha servidor GPU estado, modelo cargado ha cola tuichakue. Ndaipóri autenticación oñeikotevẽva. Ojehecha caché-pe 30 segundo-pe.
Respuesta
{
"status": "online",
"latency_ms": 45,
"queue_size": 3,
"models_loaded": ["kokoro", "chatterbox", "cosyvoice2"]
}
Lista modelo-kuéra
Ojevy peteĩ lista opaite modelo oĩvagui ha umi capacidad oguerekóva.
Respuesta
{
"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
}
]
}
Ñe'ẽnguéra ñemohenda
Ojevy peteĩ ñe'ẽnguéra oguerekóva lista, ikatuha oñembosa'y modelo térã ñe'ẽ rupive.
Parámetro-kuéra consulta-pegua
| Parámetro | Type | Descripción |
|---|---|---|
| model | string | Filtro ID modelo rupive (techapyrã, ñemohenda) |
| language | string | Filtro código de lenguaje rupive (techapyrã, ha) |
| gender | string | Filtro género rupive: macho, kuña, neutral |
Respuesta
{
"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
}
Subtítulos (SRT / VTT) new
Oñemoheñói subtítulo sincronizado oimeraẽ tembiapo TTS oñemohu'ã rire. Ojejapo alineación Whisper sonido ári ha ome'ẽ SRT térã WebVTT. Resultado oñemohenda caché-pe disco-pe peteĩ llamada mokõiha upe uuid-pe g̃uarã ha'e hag̃ua peteĩ lectura disco-pe.
Parámetro-kuéra consulta-pegua
| Parámetro | Oñeikotevẽ | Descripción |
|---|---|---|
| uuid | Ha'e | UUID tembiapo rehegua ojejuhuva'ekue /v1/tts/ térã /v1/voice-clone/ rupive. |
| format | No | srt (por defecto) térã vttOjehecha |
| download | No | 1 Oñeme'ẽ Contenido-disposición: archivo adjunto Upévare, navegador omoĩve peteĩ ñeñongatu ojehechauka rãngue. |
| language | No | Peteĩ ñe'ẽjoaju modelo de alineación-pe g̃uarã (ojuhukuaa ojeipe'áramo). |
curl "https://api.tts.ai/v1/speech/subtitles/?uuid=$UUID&format=srt&download=1" -o subtitles.srt
Diccionario de pronunciación new
Oñe'ẽ motor TTS-pe mba'éichapa oje'e umi ñe'ẽ ojeguerekóva. Umi jeike oñeñongatu va'ekue ojeporukuaa peteĩteĩ TTS ñeporandu ojejapóva. 200 jeike límite peteĩteĩ cuenta-pe.
Solicitud retepy (POST)
| Parámetro | Type | Descripción |
|---|---|---|
| word | string | Ñe'ẽ ojeiporu va'erã oñemoambue hag̃ua (techapyrã, GIF, Antropología). Ñe'ẽ-rembe'y ojoaju. |
| replacement | string | Mba'éichapa ojehai modelo-pe g̃uarã (techapyrã, jiff, ann THROP ick). |
| language | string | Código ISO ojeipotáva. Oĩ vaíramo = ojeporu opaichagua ñe'ẽpe g̃uarã. |
| case_sensitive | boolean | Oñeha'ãva falso. Ojojogua mayúscula ha minúscula añeteteguaOjehecha |
# 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-..."
Ikatu avei oheja overrides peteĩteĩ ñeikotevẽ rupive ndojegotevéigui — oike pronunciations Oime jave peteĩ /v1/tts/ llamada peteĩ objeto térã peteĩ matriz-ramo (ehecha parámetro punto final TTS).
Ñe'ẽryru ñehendu'ỹva new
Ombovy'a peteĩ solo etiqueta oimeraẽ artículo-pegua página-pe ha umi jehechahára ohupyty peteĩ barra jehaihára oñemohendapyréva ombohasahápe pe página ojehe'a jave. Ohechakuaa jehaipy rete, omoneĩ ñe'ẽ/modelo/posición/acento sa'y ojehechapyréva.
<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>
Opción
| Parámetro | Descripción |
|---|---|
data-pk | Clave ojeikuaaukakuaáva (pk-tts-...). Umi dominio restricción oñemoneĩva clave rupive allowed_domains campo. |
data-voice | ID ñe'ẽ rehegua. Por defecto _Oipe'aOjehecha |
data-model | ID modelo TTS. Por defecto ñemohendaOjehecha |
data-extract | auto (por defecto) — oñeha'ã article/main/.post-content/.entry-content selector, ojevy jey párrafo densidad mbykymivévape. térã oheja oimeraẽ selector CSS ojehechauka hag̃ua peteĩ elemento específico. |
data-position | yvy gotyo (por defecto) térã yvateOjehecha |
data-color | Sa'y ojehecharamovéva (oĩháicha sa'y CSS). Por defecto #e60000Ojehecha |
data-min-chars / data-max-chars | Oñemomombyry barra artículo oguerekóva sa'ive carácter mínimo-gui (por defecto 200). Ombopy'apy umi carácter máximo-pe (por defecto 50,000). |
Widget Botón Ohesa'ỹijo
Botón estilo-pe incrustación. Ojehechauka ijere gotyo Ombohesa'ỹijo ha ombohasa peteĩ fragmento michĩvéva peteĩ botón rupive. Ojoavy Article Narrator-gui oĩva yvate gotyo (omoĩngeva'ekue peteĩ barra página pukukue ha ombosa'yhápe artículo tuichakue).
<script src="https://tts.ai/widget.js"
data-voice="af_bella"
data-model="kokoro"
data-style="full"
data-theme="light"></script>
Ñe'ẽ oñeñongatu va'ekue (clones persistentes)
Oñemu peteĩ audio referencia peteĩ jey, ohupyty peteĩ voice_id persistente, ha upéi oñemomichĩ kóva id TTS ñeikotevẽpe, oipe'a'ỹre audio peteĩteĩ umi ñesẽ ári. Iñambue integración tuichavévape g̃uarã.
Oñemoĩ peteĩ ñe'ẽ
POST
https://tts.ai/api/v1/user-voices/
Oñeikotevẽ autenticación
Formulario oguerekóva heta parte. Umi campo: archivo (oikotevẽ, 5-30s audio), téra (oikotevẽ), ñe'ẽ (oikotevẽva, por defecto en), modelo (oikotevẽva — oiporavo automáticamente cosyvoice2 zh/ja/ko térã ambue openvoice-pe g̃uarã), consent_confirmed (oikotevẽva, oimeraẽ valor añetegua).
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"
}
Oiporu ñe'ẽ oñeñongatu va'ekue TTS-pe
POST /api/v1/tts/-pe (NOTE: host VPS web-pe, ndaha'éi api.tts.ai) user_voice_id ndive. Oike audio ha ruta ojeguerekóva tuicháva clonación-pe.
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.
Ohesa'ỹijo/Oipe'a
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
Arhivo / reactivación (iteĩva)
Umi ñe'ẽ archivado opyta nde cuenta-pe katu ndaikatúi ojeporu TTS-pe. Oikoporãva umi usuario final inactivo-pe, ikatu hag̃uãicha nde lista opyta porã.
POST https://tts.ai/api/v1/user-voices/uv_a1b2c3d4e5f6/archive/
POST https://tts.ai/api/v1/user-voices/uv_a1b2c3d4e5f6/reactivate/
Código techapyrã
Ñe'ẽnguéra.:
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')}")
Ñe'ẽ ñeikumby
# 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"])
Clonación ñe'ẽnguéra rehe
# 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)
Ñe'ẽnguéra.:
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();
Ñe'ẽ ñeikumby
// 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);
Ñe'ẽnguéra.:
# 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
Ñe'ẽ ñeikumby
# 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"
Clonación ñe'ẽnguéra rehe
# 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
Ñemboaje audio-pe
# 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
Código de error
Opaite error-kuéra ome'ẽ peteĩ respuesta JSON peteĩ error campo.
{
"error": {
"code": "insufficient_credits",
"message": "You do not have enough characters for this request.",
"characters_required": 4000,
"characters_available": 2000
}
}
| HTTP estado | Código de error | Descripción |
|---|---|---|
| 400 | bad_request |
Umi parámetro ñeikotevẽva ndaha'éi va'ekue. Ehecha umi error mensaje ojehechakuaa hag̃ua. |
| 401 | unauthorized |
Oĩ'ỹva térã ndoikói clave API. |
| 402 | insufficient_credits |
Nahániri caractere. Oñemuve /pricing/-pe. |
| 403 | forbidden |
Ndoguerekói derecho ojeike hag̃ua ko recurso-pe (techapyrã, ojehecha hag̃ua ambue usuario rembiapo). API jeikevoi oĩ hína peteĩteĩ umi plan ryepýpe. |
| 404 | not_found |
Modelo térã ñe'ẽnguéra ndojuhuvéima. |
| 413 | file_too_large |
Pe archivo ojupúva ohupyty tuichakue límite. |
| 429 | rate_limited |
Hetave hína umi ñeporandu. Ehecha umi tasa límite jehaipy. |
| 500 | internal_error |
Error servidor-pe. Oñeha'ã jey tenondeve. |
| 503 | model_loading |
Oñekuave'ẽ modelo. Oñeha'ã jey ambue segundo-pe. |
Webhooks
Oñeha'ã hag̃ua tembiapo ipukúva (división de tronco, TTS por lotes), ikatu ome'ẽ peteĩ webhook_url parámetro. Ko tembiapo oñemohu'ã rire, jaikuaaukakuaa ojehupytýva URL-pe.
{
"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"
}
Oñeha'ãmbaitépa ojejapo?
Oñeme'ẽ chupe clave API ha oñepyrũ ombojoaju TTS.ai umi aplicación-pe.