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

> Ang lahat ng mga kahilingan API ay nangangailangan ng authentication sa pamamagitan ng 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 100,000 mga titik
Pro 60 5 100,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 Oo tl> Model ID (halimbawa, kokoro, chatterbox, piper)
text string Oo > Text upang i-convert sa pagsasalita (max 100,000 mga character sa bawat kahilingan)
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.
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

Tugon

Returns the audio file as binary data with appropriate Content-Type header (audio/mpeg, audio/wav, etc.).

> Tugon Headers
Content-Type: audio/mpeg
Content-Length: 48256
X-Credits-Used: 2
X-Credits-Remaining: 498

> 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_urlstringOptional URL to POST results when batch completes.

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
}

Mga Halimbawa ng Code

> Teksto sa Pagsasalita

Python - requests
import requests

API_KEY = "sk-tts-your-key"

# Text to Speech
response = requests.post(
    "https://api.tts.ai/v1/tts/",
    headers={"Authorization": f"Bearer {API_KEY}"},
    json={
        "model": "kokoro",
        "text": "Hello from TTS.ai!",
        "voice": "af_bella",
        "format": "mp3"
    }
)

with open("output.mp3", "wb") as f:
    f.write(response.content)

print(f"Credits used: {response.headers.get('X-Credits-Used')}")

> Pagsasalita sa Teksto

Python - requests
# Speech to Text
with open("recording.mp3", "rb") as f:
    response = requests.post(
        "https://api.tts.ai/v1/stt/",
        headers={"Authorization": f"Bearer {API_KEY}"},
        files={"file": f},
        data={"model": "faster-whisper", "timestamps": "true"}
    )

result = response.json()
print(result["text"])

> Voice pag-clone

Python - requests
# Voice Cloning
with open("reference.wav", "rb") as ref:
    response = requests.post(
        "https://api.tts.ai/v1/tts/clone/",
        headers={"Authorization": f"Bearer {API_KEY}"},
        files={"reference_audio": ref},
        data={
            "text": "This speech uses a cloned voice.",
            "model": "chatterbox"
        }
    )

with open("cloned_output.mp3", "wb") as f:
    f.write(response.content)

> Teksto sa Pagsasalita

JavaScript - fetch
const API_KEY = 'sk-tts-your-key';

// Text to Speech
const response = await fetch('https://api.tts.ai/v1/tts/', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${API_KEY}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    model: 'kokoro',
    text: 'Hello from TTS.ai!',
    voice: 'af_bella',
    format: 'mp3'
  })
});

const audioBlob = await response.blob();
const audioUrl = URL.createObjectURL(audioBlob);
const audio = new Audio(audioUrl);
audio.play();

> Pagsasalita sa Teksto

JavaScript - fetch
// Speech to Text
const formData = new FormData();
formData.append('file', audioFile);
formData.append('model', 'faster-whisper');

const response = await fetch('https://api.tts.ai/v1/stt/', {
  method: 'POST',
  headers: { 'Authorization': `Bearer ${API_KEY}` },
  body: formData
});

const result = await response.json();
console.log(result.text);

> Teksto sa Pagsasalita

cURL
# Text to Speech
curl -X POST https://api.tts.ai/v1/tts/ \
  -H "Authorization: Bearer sk-tts-your-key" \
  -H "Content-Type: application/json" \
  -d '{"model":"kokoro","text":"Hello!","voice":"af_bella","format":"mp3"}' \
  -o output.mp3

> Pagsasalita sa Teksto

cURL
# Speech to Text
curl -X POST https://api.tts.ai/v1/stt/ \
  -H "Authorization: Bearer sk-tts-your-key" \
  -F "file=@recording.mp3" \
  -F "model=faster-whisper" \
  -F "timestamps=true"

> Voice pag-clone

cURL
# Voice Cloning
curl -X POST https://api.tts.ai/v1/tts/clone/ \
  -H "Authorization: Bearer sk-tts-your-key" \
  -F "reference_audio=@reference.wav" \
  -F "text=This uses a cloned voice." \
  -F "model=chatterbox" \
  -o cloned.mp3

> Audio pagpapabuti

cURL
# Audio Enhancement
curl -X POST https://api.tts.ai/v1/audio/enhance/ \
  -H "Authorization: Bearer sk-tts-your-key" \
  -F "file=@noisy_audio.mp3" \
  -F "denoise=true" \
  -F "enhance_clarity=true" \
  -o enhanced.mp3

Error Codes

> Lahat ng mga error bumalik ng isang JSON tugon na may isang error Ang Field.

Error sa Format ng Tugon
{
  "error": {
    "code": "insufficient_credits",
    "message": "You do not have enough characters for this request.",
    "characters_required": 4000,
    "characters_available": 2000
  }
}
HTTP StatusError CodePaglalarawan
400 bad_request Hindi wastong mga parameter na kahilingan. Tingnan ang mensahe ng error para sa mga detalye.
401 unauthorized > Nawala o hindi wastong API key.
402 insufficient_credits Hindi sapat na mga character. Bumili ng higit pa sa / pricing /.
403 forbidden > API access ay hindi magagamit sa iyong plano.
404 not_found Ang modelo o boses ay hindi natagpuan.
413 file_too_large > Uploaded file lumampas sa laki ng limitasyon.
429 rate_limited > Masyadong maraming mga kahilingan. Tingnan ang rate limitasyon headers.
500 internal_error > Server error. Subukan muli mamaya.
503 model_loading > Model ay naglalagay. Subukan muli sa ilang segundo.

Websayt

Para sa mahabang tumatakbo na mga gawain (stem splitting, batch TTS), maaari kang magbigay ng isang webhook_url parameter. Kapag nakumpleto ang gawain, kami ay POST ang resulta sa iyong URL.

Talaan ng mga lansangan sa Bulacan
{
  "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"
}
> Webhook resulta ay magagamit para sa pag-download para sa 24 oras pagkatapos ng pagkumpleto. Siguraduhin na i-download ang mga ito kaagad.

Handa na upang bumuo?

> Kumuha ng iyong API key at simulan ang pagsasama TTS.ai sa iyong mga application.