API dokumentatsioon

Integreerida TTS.ai oma rakendustesse meie REST API. OpenAI-ühilduv formaat lihtne ränne.

REST API OpenAI ühilduv JSON vastused Streaming Support

Ülevaade

The TTS.ai API provides programmatic access to all platform features: text-to-speech synthesis, speech-to-text transcription, voice cloning, audio enhancement, and more. The API uses standard REST conventions with JSON request/response bodies.

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

Kõik API päringud vajavad autentimist läbi Bearer märgi Authorization päis.

HTTP päis
Authorization: Bearer sk-tts-your-api-key-here
Hoia oma API võtit saladuses. Ärge jagage seda kliendipoolses koodis, avalikes hoidlates või logides. Pöörake võtmeid regulaarselt oma konto seadistustest.

Baas- URL

Baas- URL: https://api.tts.ai/v1/

All endpoints are relative to this base URL. For example, the TTS endpoint is:

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

Hinnapiirangud

API rate limits vary by plan:

Plaan Taotlused/min Concurrent Maks. teksti pikkus
Pro 60 5 5000 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) 1 krediit 1000 tähemärgi kohta
TTS (Standardmudelid: Kokoro, CosyVoice 2 jne) 2 krediiti 1000 tähemärgi kohta
TTS (Premium mudelid: Tortoise, Chatterbox jne) 4 krediiti 1000 tähemärgi kohta
Kõne tekstile 2 krediiti audio minuti kohta
Hääle kloonimine 4 krediiti 1000 tähemärgi kohta
Häälemuutja 3 krediiti audio minuti kohta
Helivõimendus 2 krediiti audio minuti kohta
Hääle eemaldamine / varre tükeldamine 3-4 krediiti audio minuti kohta
Kõnetõlge 5 krediiti audio minuti kohta
Häälvestlus 3 krediiti iga pöörde kohtaunit synonyms for matching user input
Võtme ja BPM- i leidja Vaba --
Audiokonverter Vaba --

Tekst kõnele

POST /v1/tts/

Teisenda tekst kõne audioks. Tagastab audiofaili soovitud vormingus.

Taotluse esitanud asutus

ParameeterTüüpNõutavKirjeldus
model string Jah Mudel ID (nt kokoro, chatterbox, piper)
text string Jah Tekst kõneks teisendamiseks (maksimaalselt 5000 tähemärki Pro jaoks, 50 000 Enterprise'ile)
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. Vahemik: < kood>0. 5 kuni < kood>2. 0
language string Ei. Keelekood (nt en , es ).
stream boolean Ei. Soorituse vastuse lubamine. Vaikimisi: false

Näidistaotlus

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

Vastus

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

Ravivastuse päised
Content-Type: audio/mpeg
Content-Length: 48256
X-Credits-Used: 2
X-Credits-Remaining: 498

Kõne tekstile

POST /v1/stt/

Määrab audio tekstiks. Toetab 99 keelt automaatse tuvastamisega.

Taotluse esitanud asutus (multipart/form-data)

ParameeterTüüpNõutavKirjeldus
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
diarize boolean Ei. Kõneleja diariseerumise lubamine. Vaikimisi: false

Vastus

JSON- ravivastus
{
  "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

POST /v1/tts/clone/

Loo kõne kloonitud hääles. Laadi üles viiteheli ja tekst.

Taotluse esitanud asutus (multipart/form-data)

ParameeterTüüpNõutavKirjeldus
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

POST /v1/voice-convert/

Teisenda heli, et kõlada nagu teine hääl. Lae lähtekoodi heli ja vali sihthääl.

Taotluse esitanud asutus (multipart/form-data)

ParameeterTüüpNõutavKirjeldus
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
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

POST /v1/speech-translate/

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)

ParameeterTüüpNõutavKirjeldus
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õnelejat

Vastus

JSON- ravivastus
{
  "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

POST /v1/speech-to-speech/

Transform speech style, emotion, or delivery while keeping the content. Useful for adjusting tone, pacing, and expressiveness.

Taotluse esitanud asutus (multipart/form-data)

ParameeterTüüpNõutavKirjeldus
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 processing endpoints for enhancement, vocal removal, stem splitting, and more.

POST /v1/audio/enhance/

Parandada heli kvaliteeti: denoise, parandada selgust, super resolutsioon.

file fileSuurendatav audiofail
denoise booleanDenoiseerimise lubamine (vaikimisi: true)
enhance_clarity booleanSuurenda kõne selgust (vaikimisi: true)
super_resolution booleanSuurenda helikvaliteeti (vaikimisi: false)
strength integer1-3 (kerge, keskmine, tugev). Vaikimisi: 2
POST /v1/audio/separate/

Eraldi hääled instrumentaalidest (hääle eemaldamine) või lõhenevad varteks.

file fileEraldatav audiofail
model stringdemucs (vaikimisi) või spleeter
stems integerVarte arv: 2, 4, 5 või 6 (vaikimisi: 2)
format stringVäljundi vorming: wav, mp3, flac
POST /v1/audio/dereverb/

Eemaldab helisalvestistest kaja ja reverb.

file fileTöötletav audiofail
type stringecho or reverb (default: both)
intensity integer1-5 (default: 3)
POST /v1/audio/analyze/ Vaba

Analüüsige heli, et tuvastada võti, BPM, ja aja signatuur.

file fileAudio file to analyze
Vastus
{
  "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/ Vaba

Teisenda audio vormingute vahel.

file fileTeisendatav audiofail
format stringTarget format: mp3, wav, flac, ogg, m4a, aac
bitrate integerVäljundi bitikiirus kbps: 64, 128, 192, 256, 320
sample_rate integerProovi määr: 22050, 44100, 48000
channels stringmono või stereo

Häälvestlus

POST /v1/voice-chat/

Saada audio või tekst ja saada AI vastus sünteesitud kõnega.

Taotluse esitanud asutus (multipart/form-data või JSON)

ParameeterTüüpNõutavKirjeldus
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
tts_model string Ei. TTS vastuse mudel. Vaikimisi: < kood>kokoro
system_prompt string Ei. Kohandatud süsteemi kiirinfo AI jaoks
conversation_id string Ei. Jätkake olemasolevat vestlust

Vastus

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

Nimekiri Mudelid

GET /v1/models/

Tagastab kõigi olemasolevate mudelite nimekirja koos nende võimalustega.

Vastus

JSON- ravivastus
{
  "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

GET /v1/voices/

Tagastab kõigi saadaolevate häälte nimekirja, mis valikuliselt filtreeritakse mudeli või keele järgi.

Päringu parameetrid

ParameeterTüüpKirjeldus
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

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

Koodi näited

Tekst kõnele

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')}")

Kõne tekstile

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"])

Hääle kloonimine

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)

Tekst kõnele

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();

Kõne tekstile

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

Tekst kõnele

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

Kõne tekstile

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"

Hääle kloonimine

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

Helivõimendus

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

Veakoodid

Kõik vead tagastavad JSON vastuse koos error väli.

Veareageerimise vorming
{
  "error": {
    "code": "insufficient_credits",
    "message": "You do not have enough credits for this request.",
    "credits_required": 4,
    "credits_available": 2
  }
}
HTTP olekError CodeKirjeldus
400 bad_request Vigased päringu parameetrid. Kontrolli veateate üksikasju.
401 unauthorized Puuduv või vigane API võti.
402 insufficient_credits Mitte piisavalt krediiti. Osta rohkem at / hinnastamine /.
403 forbidden API juurdepääs ei ole kättesaadav oma 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.

Webhook Payload
{
  "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"
}
Webhooki tulemused on 24 tundi pärast lõpetamist allalaadimiseks kättesaadavad. Veenduge, et need kiiresti alla laadida.

Valmis ehitama?

Hangi oma API võti ja hakka integreerima TTS.ai oma rakendusi.