Dokumentasyon ng API

> Isama TTS.ai sa iyong mga application sa aming REST API. OpenAI-compatible format para sa madaling migration.

Ang REST API Ang OpenAI Compatible Mga Tugon sa JSON Suporta sa Streaming

Pangkalahatang-ideya

Ang TTS.ai API ay nagbibigay ng programatikong access sa lahat ng mga tampok ng platform: sintesis ng teksto-sa-pagsasalita, pagsasalita-sa-text transcription, cloning ng boses, audio pagpapabuti, at higit pa.

API Key

> Kumuha ng iyong API key mula sa Mga Setting ng Account. Ito ay magagamit sa mga plano ng Pro at Enterprise.

Pangunahing URL

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

Pahintulot

> Token ng tagadala sa pamamagitan ng Authorization header

Pag-authenticate

tl> Libreng antas - walang susi na kinakailangan. > Anonim na mga post sa /v1/tts/ > trabaho nang walang anumang auth, hanggang sa 5,000 character / araw bawat IP, gamit ang anumang ng aming mga libreng modelo (piper, vits, melotts, kokoro). > Mag-sign up para sa isang libreng account upang makakuha ng 15,000 bonus character at access sa mga modelo premium.

> Para sa mga modelo premium at mas mataas na rate ng mga limitasyon, authenticate sa isang bearer token sa Authorization header.

HTTP header
Authorization: Bearer sk-tts-your-api-key-here
> Panatilihin ang iyong API key lihim. tl> Huwag ibahagi ito sa client-side code, pampublikong repositories, o mga tala. I-rotate keys regular mula sa iyong mga setting ng account.

Mga SDK

> Opisyal na SDKs gawin itong madali upang isama TTS.ai sa iyong application. Parehong ay open source at magagamit sa 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

Pangunahing URL

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

Lahat ng endpoints ay may kaugnayan sa base na ito URL. Halimbawa, ang TTS endpoint ay:

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

Limitasyon ng Rate

> API rate limitasyon ay nag-iiba sa pamamagitan ng plano:

Plano Mga kahilingan/minuto Konkordansiya Max haba ng teksto
Libre 10 2 500 mga titik
Pasimula 30 3 1,000,000 mga titik
Pro 60 5 1,000,000 mga titik
Enterprise 300 20 50,000 mga titik

Rate limitasyon headers ay kasama sa bawat tugon: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.

> Paggamit ng mga character

Serbisyo Gastos Unit
> TTS (Libreng mga modelo: Piper, VITS, MeloTTS) > 1,000 mga character > bawat 1,000 mga character
TTS (Pamantayang modelo: Kokoro, CosyVoice2, atbp.) > 2,000 mga character > bawat 1,000 mga character
> TTS (Premium modelo: Tortoise, Chatterbox, atbp.) > 4,000 mga character > bawat 1,000 mga character
> Pagsasalita sa Teksto > 2,000 mga character > bawat minuto ng audio
> Voice pag-clone > 4,000 mga character > bawat 1,000 mga character
Voice Changer > 3,000 mga character > bawat minuto ng audio
> Audio pagpapabuti > 2,000 mga character > bawat minuto ng audio
> Pagtanggal ng boses / Paghati ng stem > 3,000-4,000 mga character > bawat minuto ng audio
Pagsasalin ng Pagsasalita > 5,000 mga character > bawat minuto ng audio
> Chat ng boses > 3,000 mga character bawat pag-ikot
Key & amp; BPM tagahanap Libre --
Audio Converter Libre --

> Teksto sa Pagsasalita

POST /v1/tts/

> I-convert ang teksto sa boses audio. Bumalik audio file sa mga hiniling na format.

> Hugis ng kahilingan

ParameterUriKinakailanganPaglalarawan
model string Hindi Ang mga sumusunod na mga modelo ay suportado: kokoro para sa en/ja/zh/ko/fr/de/it/pt/es/hi/ru, piper para sa iba pang mga wika na suportado (ar/pl/nl/cs/da/fi/el/hu/tr/uk/vi/etc.).
text string Oo Per-hiling cap: 500 mga character (anonymous), 5,000 (libreng account), 1,000,000 (bayad na plano). Mahaba input ay auto-chunked server-side.
voice string Oo tl> Voice ID (gamitin ang /v1/voices/ upang ilista ang mga available na boses)
format string Hindi Mga halimbawa:
speed float Hindi tl> Multiplikador ng bilis ng pagsasalita. Default: 1.0. Range: 0.5 hanggang 2.0
language string Hindi tl> Ang code ng wika (halimbawa, en, es). Awtomatikong natukoy kung tinanggal.
instructions string Hindi Ang mga ito ay: 1. mga karaniwang mga katangian (e.g., mga katangian ng mga katangian).
pronunciations object | array Hindi Ang mga ito ay: Ang mga salitang may katumbas na salita.
stream boolean Hindi Ang default na halaga ay false.

Halimbawa ng kahilingan

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

Ang "Sweet" ay isang awiting Pilipino.

I-wrap ang mga numero, mga petsa, pera, numero ng telepono, at mga acronym sa

InterpretasyonInputNagsalita bilang
cardinal1234one thousand two hundred thirty-four
ordinal21twenty-first
date1999-12-31> Disyembre tatlumpung-isa, labing-siyam siyamnapu-siyam
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

Ang mga salitang "code" at "code" ay maaaring tumukoy sa: Code (kompyuter) Code (pag-ibig) Code (pag-ibig) Code (pag-ibig) Code (pag-ibig)

Halimbawa
{
  "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."
}

Tugon

The TTS endpoint queues your request and returns a JSON response with a job UUID. You then poll for the result.

Step 1: Submit request

Response (JSON)
{
  "uuid": "77b71db532874ce98e84a69a2d740d4c",
  "job_id": "f21316bb-aefa-480d-8523-701d1e3184ce",
  "status": "queued",
  "credits_used": 11,
  "credits_remaining": 15000
}

Step 2: Poll for result

GET /v1/speech/results/?uuid=<job_uuid>

Poll this endpoint every 1-2 seconds until status is completed or failed.

Polling response (completed)
{
  "status": "completed",
  "result_url": "https://api.tts.ai/static/downloads/77b71db5.../output.mp3"
}
Polling response (still processing)
{
  "status": "processing"
}

Step 3: Download audio

Fetch the result_url from the completed response to download the audio file.

> Buong halimbawa

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

Streaming alternative: For supported models (Kokoro, MeloTTS), use POST /v1/tts/stream/ for real-time Server-Sent Events (SSE) streaming — no polling needed.

> Pagsasalita sa Teksto

POST /v1/stt/

> Isulat ang audio sa teksto. Suporta 99 wika na may auto-detection.

> Hugis ng kahilingan (multipart/form-data)

ParameterUriKinakailanganPaglalarawan
file file Oo Ang mga format na suportado ay MP3, WAV, FLAC, OGG, M4A, MP4, WebM.
model string Hindi Kabilang sa mga halimbawa nito ang whisper, faster-whisper, at sensevoice.
language string Hindi Para sa ibang gamit, tingnan ang Autocode (paglilinaw).
timestamps boolean Hindi Kasama ang mga timestamps sa antas ng salita. Default: false
diarize boolean Hindi tl> Payagan ang speaker diarization. Default: false

Tugon

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

> Voice pag-clone

POST /v1/tts/clone/

> Bumuo ng pagsasalita sa isang cloned boses. I-upload ang isang sanggunian audio at teksto.

> Hugis ng kahilingan (multipart/form-data)

ParameterUriKinakailanganPaglalarawan
reference_audio file Oo > Reference boses audio (10-30 segundo inirerekomenda). Max 20MB.
text string Oo > Text upang makipag-usap sa mga cloned boses.
model string Hindi Para sa ibang gamit, tingnan ang (paglilinaw), (paglilinaw), at (paglilinaw).
format string Hindi Ang mga ito ay: mp3 (default), wav, flac
language string Hindi > Target na wika code. Dapat na suportado ng piniling modelo.

Tugon

Bumalik ang audio file bilang binary data, parehong bilang ang TTS endpoint.

Voice Changer

POST /v1/voice-convert/

> I-convert ang audio upang tunog tulad ng isang iba't ibang boses. I-upload ang source audio at pumili ng isang target na boses.

> Hugis ng kahilingan (multipart/form-data)

ParameterUriKinakailanganPaglalarawan
file file Oo > Source audio file (MP3, WAV, FLAC). Max 50MB.
target_voice string Oo Target na ID ng boses na i-convert sa (gamitin ang /v1/voices/ upang ilista ang mga magagamit na boses)
model string Hindi Para sa ibang gamit, tingnan ang (paglilinaw). (paglilinaw) (paglilinaw)
format string Hindi wav (default), mp3, flac

Halimbawa ng kahilingan

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

Tugon

Bumalik ang convert na audio file bilang binary data.

Pagsasalin ng Pagsasalita

POST /v1/speech-translate/

> Isalin ang sinasalitang audio mula sa isang wika sa isa pa. Kombinasyon ng pagsasalita-sa-text, pagsasalin, at teksto-sa-pagsasalita sa isang solong tawag.

> Hugis ng kahilingan (multipart/form-data)

ParameterUriKinakailanganPaglalarawan
file file Oo > Source audio file sa orihinal na wika. Max 100MB.
target_language string Oo Ang kodigo ng wikang target (halimbawa, es, fr, de, ja)
voice string Hindi > Voice para sa isinalin output. Auto-napili kung omitted.
preserve_voice boolean Hindi Subukan na panatilihin ang mga katangian ng boses ng orihinal na tagapagsalita. Default: false

Tugon

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

> Pagsasalita sa Pagsasalita

POST /v1/speech-to-speech/

> I-transform ang estilo ng pagsasalita, damdamin, o paghahatid habang pinapanatili ang nilalaman. Kapaki-pakinabang para sa pag-aayos ng tono, pacing, at ekspresyon.

> Hugis ng kahilingan (multipart/form-data)

ParameterUriKinakailanganPaglalarawan
file file Oo > Source pagsasalita audio file. Max 50MB.
voice string Oo > Target ID ng boses para sa output ng pananalita
model string Hindi Ang mga halimbawa nito ay ang openvoice, chatterbox, at openvoice.
emotion string Hindi Kabilang sa mga halimbawa ang:
speed float Hindi Pag-aayos ng bilis. Pangkalahatang-ideya: 1.0. Saklaw: 0.5 hanggang 2.0

Tugon

Bumalik ang transformed audio file bilang binary data.

> Audio mga tool

> Audio processing endpoints para sa pagpapabuti, vocal pagtanggal, stem splitting, at higit pa.

POST /v1/audio/enhance/

> Pagbutihin ang kalidad ng audio: denoise, mapabuti ang kalinawan, super resolution.

file file> Audio file upang mapahusay
denoise boolean> Payagan ang denoising (default: totoo)
enhance_clarity boolean> Pagbutihin ang kalinawan ng pagsasalita (default: totoo)
super_resolution boolean> Upscale kalidad ng audio (default: false)
strength integer> 1-3 (liwanag, katamtaman, malakas). Default: 2
POST /v1/audio/separate/

Ang mga ito ay maaaring maging mga selula (cells) o mga protina (proteins).

file file> Audio file upang paghiwalayin
model stringdemucs (tl> default) o spleeter
stems integer> Bilang ng mga stems: 2, 4, 5, o6(default: 2)
format stringPara sa ibang gamit, tingnan ang (paglilinaw) (paglilinaw).
POST /v1/audio/dereverb/

> Alisin ang echo at reverb mula sa mga recording ng audio.

file file> Audio file upang iproseso
type stringecho or reverb (default: both)
intensity integer1-5 (default: 3)
POST /v1/audio/analyze/ Libre

> Pag-aralan ang audio upang matukoy ang key, BPM, at oras ng pag-sign.

file file> Audio file upang pag-aralan
Tugon
{
  "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/ Libre

> I-convert ang audio sa pagitan ng mga format.

file file> Audio file upang i-convert
format stringKabilang sa mga ito ang: mp3, wav, flac, ogg, m4a, aac.
bitrate integer> Output bitrate sa kbps: 64, 128, 192, 256, 320
sample_rate integer> Sample rate: 22050, 44100, 48000
channels stringmono o stereo

> Chat ng boses

POST /v1/voice-chat/

> Ipadala ang audio o teksto at tumanggap ng isang AI tugon sa pamamagitan ng synthesized pagsasalita.

> Hugis ng kahilingan (multipart/form-data o JSON)

ParameterUriKinakailanganPaglalarawan
audio file Hindi* tl> Audio input (kailangan ang alinman sa audio o text)
text string Hindi* Input ng teksto (kailangan ang audio o text)
voice string Hindi tl> Tinig para sa tugon ng AI. Default: af_bella
tts_model string Hindi TTS model para sa tugon. Default: kokoro
system_prompt string Hindi > Custom na sistema ng prompt para sa AI
conversation_id string Hindi > Magpatuloy sa isang umiiral na pag-uusap

Tugon

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

Bagong TTS

POST /v1/tts/batch/

> Mag-submit ng maraming mga teksto para sa parallel TTS henerasyon. Mag-opt upang makatanggap ng isang webhook callback kapag ang lahat ng mga trabaho ay kumpleto.

Parameter

ParameterUriPaglalarawan
textsarrayArray of objects: {text, model, voice}. Max 50 items.
webhook_urlstring

Tugon

Tugon ng JSON
{
  "batch_id": "abc123",
  "total": 3,
  "completed": 0,
  "status": "processing"
}

> Poll progreso sa GET /v1/tts/batch/result/?batch_id=abc123

> Pag-embed ng boses

POST /v1/voice-embed/

> Pre-compute ng isang boses na naka-embed mula sa reference audio. Gamitin ang ibabalik embed_id sa susunod na boses cloning mga kahilingan para sa malapit-instant henerasyon.

Parameter

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

Tugon

Tugon ng JSON
{
  "embed_id": "emb_abc123",
  "model": "chatterbox",
  "duration_ms": 450
}

> Pag-check ng Kalusugan

GET /v1/health/

> Tingnan ang GPU server status, na-load na mga modelo, at laki ng queue. Walang kinakailangang pag-verify ng pagkakakilanlan. Cached para sa 30 segundo.

Tugon

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

Listahan ng mga modelo

GET /v1/models/

> Bumalik ng isang listahan ng lahat ng mga magagamit na mga modelo sa kanilang mga kakayahan.

Tugon

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

tl> Listahan ng mga Tinig

GET /v1/voices/

Bumalik ng isang listahan ng lahat ng mga magagamit na boses, opsyonal na na-filter sa pamamagitan ng modelo o wika.

Parameter ng query

ParameterUriPaglalarawan
model string tl> I-filter ayon sa ID ng modelo (halimbawa, kokoro)
language string tl> I-filter ayon sa code ng wika (halimbawa, en)
gender string Para sa ibang gamit, tingnan ang (paglilinaw). (paglilinaw)

Tugon

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

Subtitles (SRT / VTT) bagong

GET /v1/speech/subtitles/?uuid=<job_uuid>&format=srt|vtt&download=1

> Bumuo ng synchronized subtitles para sa anumang nakumpleto TTS trabaho. Tumatakbo Whisper alinman sa audio at ibabalik SRT o WebVTT. Resulta ay naka-cache sa disk kaya ang isang ikalawang tawag para sa parehong uuid ay isang disk basahin.

Parameter ng query

ParameterKinakailanganPaglalarawan
uuidOoAng mga ito ay maaaring matukoy sa pamamagitan ng mga simbolong /v/, /v/, /v/, o /v/.
formatHindisrt (default) or vtt.
downloadHindiAng 1 ay nagpapadala ng Content-Disposition: attachment upang ang browser ay mag-imbak sa halip na ipakita.
languageHindi> Hint sa alituntunin modelo (auto-natuklasan kung omitted).
cURL
curl "https://api.tts.ai/v1/speech/subtitles/?uuid=$UUID&format=srt&download=1" -o subtitles.srt

> Panlapi Diksyunaryo bagong

GET POST DELETE /api/v1/pronunciations/

> Sabihin sa TTS engine kung paano ipahayag ang mga tiyak na salita. I-save ang mga entry auto-apply sa bawat TTS kahilingan na ginawa mo. 200-entry bawat account na limitasyon.

> Hugis ng kahilingan (POST)

ParameterUriPaglalarawan
wordstringAng salitang dapat i-override (halimbawa, GIF, Anthropic).
replacementstringAng mga ito ay maaaring matukoy sa pamamagitan ng mga simbolong , , o .
languagestring> Opsyonal na ISO code. Walang laman = ay nalalapat sa lahat ng mga wika.
case_sensitivebooleanDefault false. Match case exactly when true.
cURL
# 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-..."

Ang mga ito ay maaaring maging mga karaniwang mga simbolong pang-aritmetika (tulad ng "1" o "0") o mga simbolong pang-aritmetika na may mga simbolong pang-aritmetika (tulad ng "1/2" o "1/3").

Artikulo Narrador bagong

> Drop ng isang solong