API dokumentācija

Integrēt 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

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 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.

Pamata URL

Pamata 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/

Likmju robežvērtības

API rate limits vary by plan:

Plāns Pieprasījumi/min Concurrent Maks. teksta garums
Pro 60 5 5000 rakstzīmju
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) 1 kredīts uz 1000 rakstzīmēm
TTS (standarta modeļi: Kokoro, CosyVoice 2, utt.) 2 kredīti uz 1000 rakstzīmēm
TTS (premija modeļi: tortoise, Chatterbox u.c.) 4 kredīti uz 1000 rakstzīmēm
Uzruna tekstam 2 kredīti audio minūtē
Balss klonēšana 4 kredīti uz 1000 rakstzīmēm
Balss mainītājs 3 kredīti audio minūtē
Audio uzlabojums 2 kredīti audio minūtē
Voka noņemšana / Stem Sadalīšana 3–4 kredītpunkti audio minūtē
Valodas tulkojums 5 kredīti audio minūtē
Balss tērzēšana 3 kredīti 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 pārvērst uz runu (maksimāli 5000 chars Pro, 50,000 Enterprise)
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

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

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 sākotnējo runātāju

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/

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

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

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 fileAudio file to analyze
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 stringTarget format: mp3, wav, flac, ogg, 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
}

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 credits for this request.",
    "credits_required": 4,
    "credits_available": 2
  }
}
HTTP statussError CodeApraksts
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 kredītu. Iegādāties vairāk par /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 TTS.ai integrēšanu savās programmās.