Senedler

REST API bilen TTS.ai-ni programmaňyza birikdiriň. Aňsat göçüm üçin OpenAI-a laýyk format.

REST API OpenAI Uýgunlaşýan JSON jogaplar Akym goldawy

Görkeziş

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 Ady

Siziň API adyny şundan al Hasabyň konfigurasiýasy. Pro we Enterprise planlarda elýeterli.

Asly URL

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

Auth

Barlaýjy token Authorization başlyk

Tanyşdyrma

Ehli API soraglar şunda bir Berer tokeni arkaly tanyşdyrmagy talap edýär Authorization başlyk.

HTTP Heder
Authorization: Bearer sk-tts-your-api-key-here
API adyny gizlin sakla Ony ulanyjy tarap kody, halk repozytoriýalary, ýa-da ýazgylarda paýlaşmaň. Hasabyňyzyň aňlatmalaryndan açarlary düzenli doňduryň.

Asly URL

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

Ehli ahtar nyşanlar şu esas URL bilen bagly. Meselem, TTS ahtar nyşany şudur:

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

Raýt çäkleri

API tizlik çäkleri plan boýunça üýtgeýär:

Plan Dilegler/min Concurrent Maks Metin Uzynlygy
Pro 60 5 5,000 karakter
Enterprise 300 20 50,000 karakter

Her bir jogapda tizlik çäklendirme başlyglary goşulýar: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.

Saýlaw

Hyzmat Maliýe Unit
TTS (Free models: Piper, VITS, MeloTTS) 1 kredit her 1000 karakter üçin
TTS (Standard modeller: Kokoro, CosyVoice 2, etc.) 2 kredit her 1000 karakter üçin
TTS (Premium modeller: Tortoise, Chatterbox, etc.) 4 kredit her 1000 karakter üçin
Speech to Text 2 kredit minutes of audio
Ses Klonlama 4 kredit her 1000 karakter üçin
Ses Saýlawçy 3 kredit minutes of audio
Ses güýçlendiriji 2 kredit minutes of audio
Sesi Çykar 3-4 credits minutes of audio
Terjime 5 kredit minutes of audio
Ses gürleşmesi 3 kredit her aýlawda
Açarlary Tap Boş --
Audio Konwerter Boş --

Metinden Söze

POST /v1/tts/

Metini ses sesine öwür. Ses faýlyny islendik formatda gaýtarýar.

Sorag Bedeni

Parametr_Typ:Islendik_Çykar
model string Model ID (m.a. kokoro, chatterbox, piper)
text string Söze öwüriljek metin (Pro üçin 5,000 karakter, Enterprise üçin 50,000 karakter)
voice string Ses ID (elýeterli sesleri görkezmek üçin /v1/voices/ ullan)
format string _Ýok Çykyş hili: mp3 (öň bellenen), wav, flac, ogg
speed float _Ýok Speech speed multiplier. Default: 1.0. Range: 0.5 to 2.0
language string _Ýok Dil kody (m.a. en, es). Eger goýberilmese otomatik tapylar.
stream boolean _Ýok Öň bellenen: false

Mesele soragy

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

Jawa

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

Jawa başlyglary
Content-Type: audio/mpeg
Content-Length: 48256
X-Credits-Used: 2
X-Credits-Remaining: 498

Speech to Text

POST /v1/stt/

Sesleri metinlere geçir. 99 dili awtomatik tapmak bilen goldaýar.

Sorag Bedeni (multipart/form-data)

Parametr_Typ:Islendik_Çykar
file file Ses faýly (MP3, WAV, FLAC, OGG, M4A, MP4, WebM). Maks 100MB.
model string _Ýok STT mody: whisper (öň bellenen), faster-whisper, sensevoice
language string _Ýok Dil kody. auto otomatik tapmak üçin (öň bellenen).
timestamps boolean _Ýok Söz derejeli wagt damgalaryny goş. Öň bellenen: false
diarize boolean _Ýok Sesçi diaryzasiýasyny işe giriz. Öň bellenen: false

Jawa

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

Ses Klonlama

POST /v1/tts/clone/

Klon edilen ses bilen gürleş. Referans audio we metin ýükle.

Sorag Bedeni (multipart/form-data)

Parametr_Typ:Islendik_Çykar
reference_audio file Referans ses audio (10-30 sekunt maslahat berilýär). Maks. 20MB.
text string Klon edilen ses bilen aýtmak üçin metin.
model string _Ýok Klon mody: chatterbox (öň bellenen), cosyvoice2, gpt-sovits
format string _Ýok Çykyş hili: mp3 (öň bellenen), wav, flac
language string _Ýok Dil ködi. Saýlanan model tarapyndan goldanylmalydyr.

Jawa

Ses faýlyny ikilik maglumat olarak, TTS son noktasy bilen deňeşdirip gaýtarýar.

Ses Saýlawçy

POST /v1/voice-convert/

Sesleri başga ses ýaly çalşyr. Metin sesi ýükle we maksat sesi saýla.

Sorag Bedeni (multipart/form-data)

Parametr_Typ:Islendik_Çykar
file file Metin ses faýly (MP3, WAV, FLAC). Maks 50MB.
target_voice string Öwrediljek ses identifikatory (elýeterli sesleri görkezmek üçin /v1/voices/ ullan)
model string _Ýok Ses öwürme modeli: openvoice (öň bellenen), knn-vc
format string _Ýok Çykyş hili: wav (öň bellenen), mp3, flac

Mesele soragy

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

Jawa

Üýtgeden ses faýlyny ikilik maglumat hökmünde gaýtalaýar.

Terjime

POST /v1/speech-translate/

Sesli audiony bir dilden başga dilde terjime et. Sözden metine, terjimeden we metinden söze bir çakylykda birikdir.

Sorag Bedeni (multipart/form-data)

Parametr_Typ:Islendik_Çykar
file file Ahyrky ses faýly ahyrky dilde. Maks. 100MB.
target_language string Dil kody (m.a. es, fr, de, ja)
voice string _Ýok Terjime çykdajy üçin ses. Eger goýberilmese otomatik saýlanar.
preserve_voice boolean _Ýok Orjinal sözleýjini sakla

Jawa

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

Speech to Speech

POST /v1/speech-to-speech/

Mazmuny saklaýan wagty sözi, duýguny ýa-da beýany üýtget. Tony, tizligini we beýanyny düzmek üçin peýdaly.

Sorag Bedeni (multipart/form-data)

Parametr_Typ:Islendik_Çykar
file file Söz çeşme ses faýly. Maks. 50MB.
voice string Çykyş sözi üçin maksat ses ID
model string _Ýok Model: openvoice (öň bellenen), chatterbox
emotion string _Ýok Target emotion: neutral, happy, sad, angry, excited
speed float _Ýok Tizlik düzedişi. Öň bellenen: 1.0. Aralyk: 0.5 dan 2.0

Jawa

Üýtgeden ses faýlyny ikilik maglumat hökmünde gaýtalaýar.

Ses Esbaplary

Ses işleýşini gowulandyrmak, ses çykarmak, kök bölmek, we başgalar üçin ses işlemek üçin ahtar nokatlary.

POST /v1/audio/enhance/

Ses hilini gowulandyr: gürleşiki aýyr, açgözlügi gowulandyr, süper çözgüt.

file fileBejeriljek ses faýly
denoise booleanSesi aýyrmagy mümkin et (öň bellenen: dogry)
enhance_clarity booleanSesiň aýdyňlygyny ýokarlandyr (öň bellenen: dogry)
super_resolution booleanSes hilini ýokarlandyr (öň bellenen: faýl)
strength integer1-3 (agyr, orta, güýçli). Öň bellenen: 2
POST /v1/audio/separate/

Vokallary instrumentlerden ayır (vokaly aýyr) ýa-da köklere böl.

file fileÇykarmaly audio faýly
model stringdemucs (öň bellenen) ýa spleeter
stems integerTaýçanak sany: 2, 4, 5, ýa-da 6 (öň bellenen: 2)
format stringÇykyş hili: wav, mp3, flac
POST /v1/audio/dereverb/

Ses ýazgylardan echo we reverb aýyr

file fileIşlenjek ses faýly
type stringecho or reverb (default: both)
intensity integer1-5 (default: 3)
POST /v1/audio/analyze/ Boş

Alkym, BPM, we wagt nyşanyny tapmak üçin sesleri analiz et

file fileAudio file to analyze
Jawa
{
  "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/ Boş

Sesleri formatlar arasyna öwür

file fileÖwrediljek audio faýly
format stringMaksat format: mp3, wav, flac, ogg, m4a, aac
bitrate integerÇykyş bitrate in kbps: 64, 128, 192, 256, 320
sample_rate integerSaýlaw tizligi:
channels stringmono ýa stereo

Ses gürleşmesi

POST /v1/voice-chat/

Awdio ýa-da metin iber we sözi sintezläp AI jogap al.

Sorag Bedeni (multipart/form-data ýa JSON)

Parametr_Typ:Islendik_Çykar
audio file _Ýok* Ses girdisi (ýa audio ýa text zerur)
text string _Ýok* Metin girişi (ýa audio ýa-da text zerur)
voice string _Ýok AI jogap üçin ses. Öň bellenen: af_bella
tts_model string _Ýok Jawa üçin TTS modeli. Öň bellenen: kokoro
system_prompt string _Ýok AI üçin özboluşly sistem soragy
conversation_id string _Ýok Meşhur gürleşige dowam et

Jawa

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

Modelleri Çykar

GET /v1/models/

Ehli elýeterli modelleriň bir sanawyny we olaryň ukybyny gaýtarýar.

Jawa

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

Sesleri Çykar

GET /v1/voices/

Ehli elýeterli sesleriň bir sanawyny gaýtar, islendik model ýa dil boýunça süzgüçlenipdir.

Sorag Parametreleri

Parametr_Typ:_Çykar
model string Model ID bilen süz (m.a. kokoro)
language string Dil kody bilen süz (m.a. en)
gender string male, female, neutral

Jawa

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

Kod Meseleleri

Metinden Söze

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

Speech to Text

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

Ses Klonlama

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)

Metinden Söze

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

Speech to Text

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

Metinden Söze

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

Speech to Text

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"

Ses Klonlama

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

Ses güýçlendiriji

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

Hata Kody

Ehli hatalar a bilen bir JSON jogap gaýtarýar error meýdança

Hata jogap hili
{
  "error": {
    "code": "insufficient_credits",
    "message": "You do not have enough credits for this request.",
    "credits_required": 4,
    "credits_available": 2
  }
}
HTTP HaltyError Code_Çykar
400 bad_request Saýlaw parametrleri dogry däl. Täzelik üçin hata islegini barlaň.
401 unauthorized Eksik ýa-da ýalan API adyny görkez.
402 insufficient_credits Yeterli kreditler ýok. /pricing/ adresinden has köp satyn al.
403 forbidden Siziň planyňyzda API elýeterli däl.
404 not_found Model ýa-da ses tapylmady.
413 file_too_large Faýl ululyk çäkden aşdy.
429 rate_limited Çok talaplar. Tizlik çäklendirme başlyklaryny barlaň.
500 internal_error Serwer hatasy. Soňra ýene synla.
503 model_loading Model ýüklenilýär. Birnäçe sekuntdan soň ýene synla.

Webhooks

Uzak giden iş üçin (stamp bölmek, batch TTS), siz bir webhook_url parametri berip bilersiňiz. iş tamamlananda, biz netijäni URL'iňize POST ederis.

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 netijeleri tamamlanandan soň 24 sagadyň içinde ýüklenmek üçin elýeterlidir. Olary çalt ýükle.

Bina etmäge taýýarmy?

Siziň API açaryňyzy alyň we TTS.ai-ni programmalaryňyza birikdirmäge başlaň.