Dokumentimi i API

Integro TTS.ai në aplikacionet tuaja me API-në tonë REST. Format i përshtatshëm me OpenAI për migrim të lehtë.

REST API OpenAI i përshtatshëm Përgjigjet JSON Suporti i streaming

Përmbledhje

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.

Kyçi i API

Merr çelësin e API nga Rregullimet e llogarisë. Në dispozicion në Pro dhe Enterprise plane.

URL e bazë

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

Autorizimi

Token i mbajtësit nëpërmjet Authorization kreu

Autentifikim

Të gjitha kërkesat API kërkojnë autentifikim nëpërmjet një token Bearer në Authorization kreu.

HTTP Header
Authorization: Bearer sk-tts-your-api-key-here
Mbaje sekret çelësin tënd të API. Mos e shpërnda në kodin në anën e klientit, depozitat publike, apo logs. Rrotullo kyçet rregullisht nga rregullimet e llogarisë suaj.

URL e bazë

URL e bazë: 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/

Limitet e shpejtësisë

API rate limits vary by plan:

Plani Kërkesa/min Concurrent Gjatësia maksimale e tekstit
Pro 60 5 5,000 karakterë
Enterprise. 300 20 50,000 karakterë

Kufizimi i shpejtësisë është përfshirë në çdo përgjigje: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.

Shpenzimet e kreditit

Shërbimi Kostoja Njësia
TTS (modele të lira: Piper, VITS, MeloTTS) 1 kredit për 1,000 karakterë
TTS (Modele standarde: Kokoro, CosyVoice 2, etj.) 2 kreditë për 1,000 karakterë
TTS (Modele Premium: Tortoise, Chatterbox, etj.) 4 kreditë për 1,000 karakterë
Fjalë në tekst 2 kreditë për minutë audio
Klonimi i zërit 4 kreditë për 1,000 karakterë
Ndryshues zëri 3 kreditë për minutë audio
Përmirësimi i zërit 2 kreditë për minutë audio
Heqja vokale / ndarja e zërit 3-4 kreditë për minutë audio
Përkthim i Fjalës 5 kreditë për minutë audio
Biseda me zë 3 kreditë për rradhë
Key & BPM Finder I lirë --
Konvertimi i audios I lirë --

Teksti në Fjalë

POST /v1/tts/

Shndërron tekstin në zë. Kthen file audio në formatin e kërkuar.

Korpi i kërkesës

ParametratLlojiE nevojshmePërshkrimi
model string Po. ID e modelit (p.sh. kokoro, chatterbox, piper)
text string Po. Teksti për t'u kthyer në fjalë (maksimum 5,000 karakterë për Pro, 50,000 për Enterprise)
voice string Po. ID e zërit (përdor /v1/voices/ për të listuar zërat në dispozicion)
format string Jo. Formati i daljes: mp3 (i prezgjedhur), wav, flac, ogg
speed float Jo. Shumëfishues i shpejtësisë së të folurit. I prezgjedhur: 1.0. Rreth: 0.5 deri tek 2.0
language string Jo. Kodi i gjuhës (p.sh. en, es). Zbulohet automatikisht nëse hiqet.
stream boolean Jo. Aktivizo përgjigjen e rrjedhjes. E prezgjedhur: false

Shembull kërkese

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

Përgjigje

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

Përgjigje
Content-Type: audio/mpeg
Content-Length: 48256
X-Credits-Used: 2
X-Credits-Remaining: 498

Fjalë në tekst

POST /v1/stt/

Transkribo audio në tekst. Suporton 99 gjuhë me zbulim automatik.

Korpi i kërkesës (multipart/form-data)

ParametratLlojiE nevojshmePërshkrimi
file file Po. File audio (MP3, WAV, FLAC, OGG, M4A, MP4, WebM). Maksimum 100MB.
model string Jo. Modeli STT: whisper (i prezgjedhur), faster-whisper, sensevoice
language string Jo. Kodi i gjuhës. auto për zbulimin automatik (i prezgjedhur).
timestamps boolean Jo. Përfshi kohën e nivelit të fjalës. E prezgjedhur: false
diarize boolean Jo. Aktivizo diarizimin e zërit. E prezgjedhur: false

Përgjigje

Përgjigje 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"
    }
  ]
}

Klonimi i zërit

POST /v1/tts/clone/

Gjenerator i foljes në një zë të klonuar. Ngarko një referencë audio dhe tekst.

Korpi i kërkesës (multipart/form-data)

ParametratLlojiE nevojshmePërshkrimi
reference_audio file Po. Zëri i referencës audio (10-30 sekonda të rekomanduara). Maks. 20MB.
text string Po. Tekst për të folur me zërin e klonuar.
model string Jo. Model kloni: chatterbox (i prezgjedhur), cosyvoice2, gpt-sovits
format string Jo. Formati i daljes: mp3 (i prezgjedhur), wav, flac
language string Jo. Kodi i gjuhës së synuar. Duhet të jetë i suportuar nga modeli i zgjedhur.

Përgjigje

Kthen file audio si të dhëna binare, të njëjta si pika e fundit e TTS.

Ndryshues zëri

POST /v1/voice-convert/

Shndërro audion në tingull të zërit të ndryshëm. Ngarko audion burimor dhe zgjidh një zë qëllimi.

Korpi i kërkesës (multipart/form-data)

ParametratLlojiE nevojshmePërshkrimi
file file Po. File audio burimor (MP3, WAV, FLAC). Maksimum 50MB.
target_voice string Po. ID e zërit të synuar për t'u konvertuar në (përdor /v1/voices/ për të listuar zërat në dispozicion)
model string Jo. Modeli i konvertimit të zërit: openvoice (i prezgjedhur), knn-vc
format string Jo. Formati i daljes: wav (i prezgjedhur), mp3, flac

Shembull kërkese

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

Përgjigje

Kthen file audio të konvertuar si të dhëna binare.

Përkthim i Fjalës

POST /v1/speech-translate/

Përkthe audion e folur nga një gjuhë në tjetrën. Kombinon fjalë-në-tekst, përkthim dhe tekst-në-folje në një thirrje të vetme.

Korpi i kërkesës (multipart/form-data)

ParametratLlojiE nevojshmePërshkrimi
file file Po. Burimi i file audio në gjuhën origjinale. Max 100MB.
target_language string Po. Kodi i gjuhës së synuar (p.sh. es, fr, de, ja)
voice string Jo. Zëri për output e përkthyer. Zgjidhet automatikisht nëse hiqet.
preserve_voice boolean Jo. Përpjekje për të ruajtur folësin origjinal

Përgjigje

Përgjigje 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
}

Fjalë në Fjalë

POST /v1/speech-to-speech/

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

Korpi i kërkesës (multipart/form-data)

ParametratLlojiE nevojshmePërshkrimi
file file Po. Burimi i file audio të foljes. Maksimum 50MB.
voice string Po. ID e zërit të synuar për të folurit në dalje
model string Jo. Modeli: openvoice (i prezgjedhur), chatterbox
emotion string Jo. Emocioni i synuar: neutral, happy, sad, angry, excited
speed float Jo. Rregullimi i shpejtësisë. I prezgjedhur: 1.0. Rrethi: 0.5 deri tek 2.0

Përgjigje

Kthen file audio të transformuar si të dhëna binare.

Instrumentet e zërit

Audio processing endpoints for enhancement, vocal removal, stem splitting, and more.

POST /v1/audio/enhance/

Përmirëso cilësinë e audios: elimino zhurmën, përmirëso qartësinë, super-rezolutën.

file fileFile audio për të përmirësuar
denoise booleanAktivo zhdukjen e zhurmës (e prezgjedhur: e vërtetë)
enhance_clarity booleanPërmirëso qartësinë e të folurit (e prezgjedhur: e vërtetë)
super_resolution booleanPërmirëso cilësinë e audios (e prezgjedhur: e pavlefshme)
strength integer1-3 (e lehtë, e mesme, e fortë). E prezgjedhur: 2
POST /v1/audio/separate/

Pjesëtimi i vokaleve nga instrumentalet (hiqja e vokaleve) ose ndarja në rrënjë.

file fileFile audio për t'u ndarë
model stringdemucs (e prezgjedhur) ose spleeter
stems integerNumri i shtyllave: 2, 4, 5 ose 6 (i prezgjedhur: 2)
format stringFormati i daljes: wav, mp3, flac
POST /v1/audio/dereverb/

Hiq ekuilibrin dhe reverb nga regjistrimet audio.

file fileFile audio për tu përpunuar
type stringecho or reverb (default: both)
intensity integer1-5 (default: 3)
POST /v1/audio/analyze/ I lirë

Analizo audion për të zbuluar keys, BPM dhe time signature.

file fileAudio file to analyze
Përgjigje
{
  "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/ I lirë

Kthe audio midis formateve.

file fileFile audio për t'u konvertuar
format stringTarget format: mp3, wav, flac, ogg, m4a, aac
bitrate integerBitrate i daljes në kbps: 64, 128, 192, 256, 320
sample_rate integerNumri i mostrave: 22050, 44100, 48000
channels stringmono ose stereo

Biseda me zë

POST /v1/voice-chat/

Dërgo audio apo tekst dhe merr një përgjigje AI me fjalë të sintetizuara.

Korpi i kërkesës (multipart/form-data ose JSON)

ParametratLlojiE nevojshmePërshkrimi
audio file Jo.* Input audio (duhet ose audio ose text)
text string Jo.* Hyrja e tekstit (duhet ose audio ose text)
voice string Jo. Zëri për përgjigjen AI. I prezgjedhur: af_bella
tts_model string Jo. Modeli TTS për përgjigje. I prezgjedhur: kokoro
system_prompt string Jo. Prompt i personalizuar i sistemit për AI
conversation_id string Jo. Vazhdo një bisedë ekzistuese

Përgjigje

Përgjigje 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
}

Lista e modeleve

GET /v1/models/

Kthen një listë të të gjithë modeleve në dispozicion me aftësitë e tyre.

Përgjigje

Përgjigje 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
    }
  ]
}

Zërat e listës

GET /v1/voices/

Kthen një listë të të gjithë zërave në dispozicion, opcionalisht të filtruar sipas modelit apo gjuhës.

Parametrat e pyetjes

ParametratLlojiPërshkrimi
model string Filtro sipas ID të modelit (p.sh. kokoro)
language string Filtro sipas kodit të gjuhës (p.sh. en)
gender string Filtro sipas gjinisë: mashkull, femër, neutral

Përgjigje

Përgjigje 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
}

Shembuj kodi

Teksti në Fjalë

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

Fjalë në tekst

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

Klonimi i zërit

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)

Teksti në Fjalë

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

Fjalë në tekst

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

Teksti në Fjalë

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

Fjalë në tekst

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"

Klonimi i zërit

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

Përmirësimi i zërit

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

Kodi i gabimit

Të gjithë gabimet kthejnë një përgjigje JSON me një error fushë.

Formati i përgjigjes së gabimit
{
  "error": {
    "code": "insufficient_credits",
    "message": "You do not have enough credits for this request.",
    "credits_required": 4,
    "credits_available": 2
  }
}
Gjendja e HTTPError CodePërshkrimi
400 bad_request Parametra të pavlefshëm kërkese. Kontrollo mesazhin e gabimit për hollësi.
401 unauthorized Mungon kyçi i API ose është i pavlefshëm.
402 insufficient_credits Nuk ka kredite të mjaftueshme. Bleni më shumë tek /pricing/.
403 forbidden Hyrja në API nuk është në dispozicion në planin tuaj.
404 not_found Modeli apo zëri nuk u gjet.
413 file_too_large File i ngarkuar kapërcen kufirin e madhësisë.
429 rate_limited Tepër kërkesa. Kontrollo header-ët e limitit të shpejtësisë.
500 internal_error Gabim serveri. Provo përsëri më vonë.
503 model_loading Modeli po ngarkohet. Përpiqu përsëri për disa sekonda.

Webhooks

Për aktivitete me kohë të gjatë (shtrëngimi i rrënjës, TTS batch), mund të jepni një parametr webhook_url. Kur aktiviteti të përfundojë, do të POSTojmë rezultatin tek URL juaj.

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"
}
Rezultatet e Webhook janë në dispozicion për shkarkim për 24 orë pas përfundimit. Sigurohu që t'i shkarkosh menjëherë.

Gati për të ndërtuar?

Merrni çelësin tuaj të API dhe filloni të integroni TTS.ai në aplikacionet tuaja.