API dokumentācija

Iekļaut TTS.ai jūsu lietotnēs ar mūsu REST API. OpenAI saderīgu formātu vieglai migrācijai.

REST API OpenAI savietojama JSON atbildes Straumēšanas atbalsts

Pārskats

TTS.ai API nodrošina programmatisku piekļuvi visām platformas funkcijām: tekstu-to-speech sintēze, runas-teksta transkripcija, balss klonēšana, audio uzlabošana un vēl vairāk. API izmanto standarta REST konvencijas ar JSON pieprasījumu/atbildes iestādēm.

API atslēga

Iegūstiet API atslēgu no Konta iestatījumi. Pieejams Pro un Enterprise plānos.

Pamata URL

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

Auth

Pārnēsājams žetons via Authorization galvene

Autentificēšana

Visi API pieprasījumi prasa autentifikāciju, izmantojot Beaker žetonu Authorization galvene.

HTTP galvene
Authorization: Bearer sk-tts-your-api-key-here
Saglabājiet savu API atslēgas noslēpumu. Nedaliet to klienta puses kodā, publiskajos repozitorijos vai apaļkokos. Pagrieziet taustiņus regulāri no sava konta iestatījumiem.

SDK

Oficiālās SDKs ļauj viegli integrēt TTS.ai jūsu pieteikumā. Abi ir atvērts avots un ir pieejami 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

Pamata URL

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

Visi mērķa kritēriji ir relatīvi pret šo bāzes URL. Piemēram, TTS mērķa kritērijs ir:

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

Likmju robežvērtības

API likmes ierobežojumi atšķiras atkarībā no plāna:

Plāns Pieprasījumi/min Vienlaicīga Maks. teksta garums
Bezmaksas 10 2 500 rakstzīmes
Palaist 30 3 100 000 chars
Pro 60 5 100 000 chars
Uzņēmums 300 20 50 000 rakstzīmju

Rādītāju limitu galvenes ir iekļautas katrā atbildē: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.

Kredītizmaksas

Pakalpojums Izmaksas Vienība
TTS (Bezmaksas modeļi: Piper, VITS, MeloTTS) 1000 rakstzīmes uz 1000 rakstzīmēm
TTS (standarta modeļi: Kokoro, CosyVoice 2, utt.) 2 000 rakstzīmju uz 1000 rakstzīmēm
TTS (premija modeļi: tortoise, Chatterbox u.c.) 4000 rakstzīmju uz 1000 rakstzīmēm
Uzruna tekstam 2 000 rakstzīmju audio minūtē
Balss klonēšana 4000 rakstzīmju uz 1000 rakstzīmēm
Balss mainītājs 3000 rakstzīmju audio minūtē
Audio uzlabojums 2 000 rakstzīmju audio minūtē
Voka noņemšana / Stem Sadalīšana 3000–4 000 zīmju audio minūtē
Valodas tulkojums 5 000 rakstzīmju audio minūtē
Balss tērzēšana 3000 rakstzīmju Režīmā
Atslēgu un BPM meklētājs Bezmaksas --
Audio pārveidotājs Bezmaksas --

Teksts uz runu

POST /v1/tts/

Konvertēt tekstu uz runu audio. Atgriež audio failu pieprasītajā formātā.

Pieprasījuma iesniedzēja iestāde

ParametrsVeidsVajadzīgsApraksts
model string Paraugs ID (piem., kokoro , chatterbox , piper )
text string Teksts, lai pārvērstu runas (maksimāli 100 000 chars uz pieprasījumu)
voice string Balss ID (izmantojiet /v1/balss/ pieejamo balsu sarakstam)
format string Izvades formāts: mp3 (noklusētais), wav , flac ,
speed float Runa par ātruma reizinātāju. Noklusētais: 1.0 . Diapazons: 0.5 līdz < kodam> 2.0
language string Valodas kods (piem., en , es ). Automātiski nosakāms, ja nav.
stream boolean Ieslēgt straumēšanas atbildi. Noklusētais: < code> false

Piemēru pieprasījums

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

Atbildes reakcija

Atgriež audio failu kā binārus datus ar atbilstošu Content- type galveni (audio/mpeg , audio/ wav u. c.).

Atbildes galvenes
Content-Type: audio/mpeg
Content-Length: 48256
X-Credits-Used: 2
X-Credits-Remaining: 498

Uzruna tekstam

POST /v1/stt/

Atzīmēt audio uz tekstu. Atbalsta 99 valodas ar automātisku detektēšanu.

Pieprasījuma iesniedzēja iestāde (multipart/form-data)

ParametrsVeidsVajadzīgsApraksts
file file Audio fails (MP3, WAV, FLAC, OGG, M4A, MP4, WebM). Maks. 100MB.
model string STT modelis: whisper (noklusētais), speater-whisper , sensevoice
language string Valodas kods. Auto auto-noklusējuma noteikšanai.
timestamps boolean Iekļaut vārda līmeņa zīmogus. Noklusētais: < code> false
diarize boolean Ieslēgt skaļruni. Noklusētais: < code> false

Atbildes reakcija

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

Balss klonēšana

POST /v1/tts/clone/

Ģenerēt runu klonētā balsī. Ielādējiet atsauces audio un tekstu.

Pieprasījuma iesniedzēja iestāde (multipart/form-data)

ParametrsVeidsVajadzīgsApraksts
reference_audio file References balss audio (10-30 sekundes ieteicamas). Maks. 20MB.
text string Teksts runāt klonētā balsī.
model string Klona modelis: chatterbox (noklusētais), korespondence2, gpt-sovi
format string Izvades formāts: mp3 (noklusētais), wav , flac
language string Mērķa valodas kods. Jāatbalsta izvēlētais modelis.

Atbildes reakcija

Atgriež audio failu kā bināros datus, tāpat kā TTS galapunkts.

Balss mainītājs

POST /v1/voice-convert/

Pārveidot audio kā citu balsi. Ielādējiet avota audio un izvēlieties mērķa balsi.

Pieprasījuma iesniedzēja iestāde (multipart/form-data)

ParametrsVeidsVajadzīgsApraksts
file file Avots audio fails (MP3, WAV, FLAC). Max 50MB.
target_voice string Mērķa balss ID konvertēt uz (izmantot /v1/balss/ , lai uzskaitītu pieejamās balsis)
model string Balss konvertēšanas modelis: openvoice (noklusētais), knn-vc
format string Izvades formāts: wav (noklusētais), < kods>mp3, flac

Piemēru pieprasījums

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

Atbildes reakcija

Atgriež konvertēto audio failu kā bināros datus.

Valodas tulkojums

POST /v1/speech-translate/

Tulkot runā audio no vienas valodas uz citu. Apvieno runas uz tekstu, tulkojums, un teksts-to-speech vienā uzaicinājumā.

Pieprasījuma iesniedzēja iestāde (multipart/form-data)

ParametrsVeidsVajadzīgsApraksts
file file Avots audio fails oriģinālvalodā. Max 100MB.
target_language string Mērķa valodas kods (piem., es , fr , de , ja )
voice string Balss iztulkotai izvadei. Atlasīts automātiski, ja izlaists.
preserve_voice boolean Mēģinājums saglabāt oriģinālā skaļruna balss īpašības. Noklusētais: < code> false

Atbildes reakcija

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

Uzruna runā

POST /v1/speech-to-speech/

Pārveidot runas stilu, emocijas, vai piegādes saglabājot saturu. Noderīgs, lai pielāgotu toni, pacing, un izteiksmīgumu.

Pieprasījuma iesniedzēja iestāde (multipart/form-data)

ParametrsVeidsVajadzīgsApraksts
file file Avots runas audio fails. Max 50MB.
voice string Mērķa balss ID izvades runai
model string Modelis: openvoice (noklusētais), chatterbox
emotion string Mērķa emocijas: neitrāls , happy , sad ,
speed float Ātruma regulēšana. Noklusētais: 1.0 . Diapazons: 0.5 līdz < kodam> 2.0

Atbildes reakcija

Atgriež pārveidoto audio failu kā bināros datus.

Audio rīki

Audio apstrādes galamērķi, lai uzlabotu, balss noņemšana, stumbra sadalīšanu, un vairāk.

POST /v1/audio/enhance/

Uzlabot audio kvalitāti: denoise, uzlabot skaidrību, super izšķirtspēju.

file fileAudio fails, ko uzlabot
denoise booleanIeslēgt denoizāciju (noklusētā: true)
enhance_clarity booleanPalielināt runas skaidrību (noklusētais: patiess)
super_resolution booleanAudio kvalitātes celšana (noklusētā: viltus)
strength integer1-3 (viegls, vidējs, spēcīgs). Noklusētais: 2
POST /v1/audio/separate/

Atsevišķi vokāli no instrumentiem (voda noņemšana) vai sadalīt kātiem.

file fileAudio fails, lai atdalītu
model stringdemucs (noklusētais) vai spleeter
stems integerKātu skaits: 2, 4, 5 vai 6 (noklusējums: 2)
format stringIzvades formāts: wav , mp3, flac
POST /v1/audio/dereverb/

Noņemiet atbalsi un atgriezieties no audio ierakstiem.

file fileAudio fails, ko apstrādāt
type stringecho or reverb (default: both)
intensity integer1-5 (default: 3)
POST /v1/audio/analyze/ Bezmaksas

Analizēt audio, lai atklātu atslēgu, BPM, un laika parakstu.

file fileAnalizējamais audio fails
Atbildes reakcija
{
  "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/ Bezmaksas

Konvertēt audio starp formātiem.

file fileKonvertējamais audio fails
format stringMērķa formāts: mp3, wav , flac , gg , m4a , aac
bitrate integerIzejas bitātrums kbps: 64, 128, 192, 256, 320
sample_rate integerParaugu ņemšanas ātrums: 22050, 44100, 48000
channels stringmono vai stereo

Balss tērzēšana

POST /v1/voice-chat/

Sūtīt audio vai tekstu un saņemt AI atbildi ar sintezētu runu.

Pieprasījuma iesniedzēja iestāde (multipart/form-data vai JSON)

ParametrsVeidsVajadzīgsApraksts
audio file Nē* Audio ievade (vajadzīga vai nu audio , vai teksts )
text string Nē* Teksta ievade (nepieciešams vai teksts )
voice string Balss AI atbildei. Noklusētais: af_ bella
tts_model string TTS modelis atbildei. Noklusētais: kokoro
system_prompt string Pielāgota sistēma, kas paredzēta AI
conversation_id string Turpināt esošo sarunu

Atbildes reakcija

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

Sērijas TTS

POST /v1/tts/batch/

Iesniegt vairākus tekstus paralēlai TTS ģenerēšanai. Pēc izvēles saņemt webhook zvanu atpakaļ, kad visi darbi pabeigti.

Parametri

ParametrsVeidsApraksts
textsarrayArray of objects: {text, model, voice}. Max 50 items.
webhook_urlstringOptional URL to POST results when batch completes.

Atbildes reakcija

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

Aptuvenais progress ar GET /v1/tts/partija/rezultāts/?partch_id=abc123

Balss iegulšana

POST /v1/voice-embed/

Priekšapvienot balsi, kas iegulta no atsauces audio. Izmantojiet atgriezto iegult_ id turpmākajos balss klonēšanas pieprasījumos gandrīz iekšējai paaudzei.

Parametri

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

Atbildes reakcija

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

Veselības pārbaude

GET /v1/health/

Pārbaudiet GPU servera statusu, ielādētos modeļus un rindas izmērus. Autentificēšana nav nepieciešama. Cached uz 30 sekundēm.

Atbildes reakcija

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

Sarakstēt modeļus

GET /v1/models/

Atgriež sarakstu ar visiem pieejamajiem modeļiem ar savām iespējām.

Atbildes reakcija

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

Rādīt balsis

GET /v1/voices/

Atgriež visu pieejamo balsu sarakstu, pēc izvēles filtrējot pēc parauga vai valodas.

Vaicājuma parametri

ParametrsVeidsApraksts
model string Filtrs pēc modeļa ID (piem., kokoro )
language string Filtrēt pēc valodas koda (piem., en )
gender string Filtrēt pēc dzimuma: vīrieša , sieviešu , neitrāls

Atbildes reakcija

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

Koda piemēri

Teksts uz runu

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

Uzruna tekstam

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

Balss klonēšana

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)

Teksts uz runu

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

Uzruna tekstam

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

Teksts uz runu

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

Uzruna tekstam

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"

Balss klonēšana

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 uzlabojums

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

Kļūdu kodi

Visas kļūdas atgriež JSON atbildi ar error lauks.

Kļūdas atbildes formāts
{
  "error": {
    "code": "insufficient_credits",
    "message": "You do not have enough characters for this request.",
    "characters_required": 4000,
    "characters_available": 2000
  }
}
HTTP statussKļūdas kodsApraksts
400 bad_request Nederīgi pieprasījuma parametri. Pārbaudiet kļūdas ziņojumu.
401 unauthorized Trūkst API atslēgas vai tās nav derīgas.
402 insufficient_credits Nepietiek ar rakstzīmēm. Iegādāties vairāk pie /pricing/.
403 forbidden API piekļuve nav pieejama jūsu plānā.
404 not_found Modelis vai balss nav atrasta.
413 file_too_large Augšupielādētais fails pārsniedz izmēru limitu.
429 rate_limited Pārāk daudz pieprasījumu. Check rate limit headers.
500 internal_error Servera kļūda. Mēģiniet vēlāk vēlreiz.
503 model_loading Modelis ielādē. Pamēģini pēc dažām sekundēm.

Webhooks

Ilgas darbības uzdevumiem (stūres sadalīšana, partija TTS), jūs varat sniegt webhook_url parametru. Kad uzdevums būs pabeigts, mēs pārcelsim rezultātu uz jūsu URL.

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"
}
Webhook rezultāti ir pieejami lejupielādei 24 stundas pēc pabeigšanas. Pārliecinieties, lai lejupielādētu tos nekavējoties.

Gatavs celtniecībai?

Iegūstiet API atslēgu un sāciet integrēt TTS.ai savās lietojumprogrammās.