დოკუმენტაცია
TTS.ai-ის ინტეგრირება თქვენს პროგრამებში ჩვენი REST API- ით. OpenAI- სთან თავსებადი ფორმატი მარტივი მიგრაციისთვის.
გადახედვა
TTS.ai API უზრუნველყოფს პროგრამულ წვდომას პლატფორმის ყველა ფუნქციაზე: ტექსტიდან საუბრის სინთეზირება, საუბრიდან ტექსტის ტრანსკრიპცია, ხმის კლონირება, აუდიოს გაუმჯობესება და სხვა. API იყენებს სტანდარტულ REST კონვენციებს JSON მოთხოვნის/პასუხის სტრუქტურებთან.
API გასაღები
API გასაღების მიღება ანგარიშის პარამეტრები. 2001 წლიდან მუშაობს კომპანია „ინტერპრესნიუსის“ დირექტორთა საბჭოში.
ძირითადი URL
https://api.tts.ai/v1/
ავტორიზაცია
მიმღები ტოკენი Authorization თავსართი
ავთენტიფიკაცია
/v1/tts/ მუშაობა უსაფრთხოების დამოწმების გარეშე, 5000 სიმბოლომდე დღეში IP მისამართზე, ჩვენი ნებისმიერი უფასო მოდელის გამოყენებით (piper, vits, melotts, kokoro). 1500 წელს სოფელში 1500-მდე კაცი ცხოვრობდა, 15000-ზე მეტი კაცი კი სოფელში ცხოვრობდა.
პრემიუმ მოდელებისთვის და უფრო მაღალი ფასის საზღვრებისთვის, ავთენტიფიკაცია ტარატორის ტოკენით Authorization თავსართი.
Authorization: Bearer sk-tts-your-api-key-here
SDK- ებიName
ოფიციალური SDK- ები TTS.ai- ის ინტეგრირებას თქვენს პროგრამაში უადვილებს. ორივე ღია კოდი და ხელმისაწვდომია 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")
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');
ძირითადი URL
ყველა დასასრული რელევანტურია ამ ძირითად URL- ს მიმართ. მაგალითად, TTS- ის დასასრული არის:
სიჩქარის საზღვრები
API- ს სიჩქარის საზღვრები გეგმის მიხედვით იცვლება:
| გეგმა | მოთხოვნები/წამში | ერთდროულად | ტექსტის მაქსიმალური სიგრძე |
|---|---|---|---|
| თავისუფალი | 10 | 2 | 500 სიმბოლო |
| წარმართვა | 30 | 3 | 1,000,000 სიმბოლო |
| პროფესიონალი | 60 | 5 | 1,000,000 სიმბოლო |
| ენრვპპთ. | 300 | 20 | 50,000 სიმბოლო |
ყველა პასუხში შედის სიხშირის საზღვრის თავსართები: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.
კრედიტი
| სერვისი | ღირებულება | ობიექტი |
|---|---|---|
| TTS (თავისუფალი მოდელები: Piper, VITS, MeloTTS) | 1,000 სიმბოლო | 1000 სიმბოლოზე |
| TTS (სტანდარტული მოდელები: Kokoro, CosyVoice 2 და ა.შ.) | 2000 სიმბოლო | 1000 სიმბოლოზე |
| TTS (პრემიუმ მოდელები: Tortoise, Chatterbox და ა.შ.) | 4 ქულა | 1000 სიმბოლოზე |
| საუბარი ტექსტადName | 2000 სიმბოლო | აუდიოს წუთში |
| ხმის კლონირებაName | 4 ქულა | 1000 სიმბოლოზე |
| ხმის შეცვლაName | 3000 სიმბოლო | აუდიოს წუთში |
| აუდიოს გაუმჯობესებაName | 2000 სიმბოლო | აუდიოს წუთში |
| ხმათა ამოღება/ ხმათა გაყოფა | 3,000-4,000 სიმბოლო | აუდიოს წუთში |
| საუბრის თარგმნაName | 5000 სიმბოლო | აუდიოს წუთში |
| ხმაურიანი ჩატიName | 3000 სიმბოლო | რიგის მიხედვით |
| საკვანძო სიტყვების & BPM ძიებაName | თავისუფალი | -- |
| აუდიო კონვერტორიName | თავისუფალი | -- |
ტექსტიდან საუბარიName
ტექსტის აუდიო ხმად გადაქცევა. უკან ბრუნავს აუდიო ფაილს მოთხოვნილ ფორმატში.
მოთხოვნის სხეული
| პარამეტრები | ტიპები | საჭირო | აღწერა |
|---|---|---|---|
| model | string | ნვ, ნვ ჟყმ. | მოდელის ID (მაგალითად, kokoro, chatterbox, piper). თუ არ ჩანს, ჩვენ ავტომატურად ვარჩევთ მოდელს, რომელიც მხარს უჭერს მოთხოვნილ ენას — kokoro en/ja/zh/ko/fr/de/it/pt/es/hi/ru, piper სხვა მხარდაჭერილი ენებისთვის (ar/pl/nl/cs/da/fi/el/hu/tr/uk/vi/etc.). |
| text | string | ეა | ტექსტის საუბრად გადაქცევა. მოთხოვნის მაქსიმალური რაოდენობა: 500 სიმბოლო (ანონიმი), 5,000 (საბავშვო ანგარიში), 1,000,000 (საფასურიანი ანგარიში). სერვერის მხრიდან გრძელი ჩანაწერები ავტომატურად იჭრება. |
| voice | string | ეა | ხმის ID (/v1/voices/ გამოყენება ხელმისაწვდომი ხმის ჩამონათვალისთვის) |
| format | string | ნვ, ნვ ჟყმ. | გამონატანის ფორმატები: mp3 (ნაგულისხმევი), wav, flac, ogg |
| speed | float | ნვ, ნვ ჟყმ. | საუბრის სიჩქარის მრავლდება. ნაგულისხმევი: 1.0. დიაპაზონი: 0.5 - დან 2.0 |
| language | string | ნვ, ნვ ჟყმ. | ენის კოდი (მაგალითად, en, es). ავტომატური აღმოჩენა, თუ გამოტოვებულია. |
| instructions | string | ნვ, ნვ ჟყმ. | მოქმედების/გადაცემის ნიშნები (≤500 სიმბოლო). მაგ. \ |
| pronunciations | object | array | ნვ, ნვ ჟყმ. | მოთხოვნის მიხედვით გამოთქმის გადარქმევა. ან {\ |
| stream | boolean | ნვ, ნვ ჟყმ. | სტრიმინგის პასუხის ჩართვა. ნაგულისხმევი: false |
თხოვნის მაგალითი
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
SSML ჭდეები
ციფრების, თარიღების, ვალუტების, ტელეფონის ნომრების და აკრონიმების ჩასმა თარიღის ფორმატი ნაგულისხმევია The TTS endpoint queues your request and returns a JSON response with a job UUID. You then poll for the result. Poll this endpoint every 1-2 seconds until Fetch the Streaming alternative: For supported models (Kokoro, MeloTTS), use
ინდექსირება შეყვანა საუბარი როგორც cardinal1234one thousand two hundred thirty-four ordinal21twenty-first date1999-12-3131 ევკვმგპთ, 1999. time14:30two thirty PM telephone+1-555-867-5309plus one five five five eight six seven… currency$1,234.56one thousand two hundred thirty-four dollars and fifty-six cents spell-outNASAN A S A mdy ინგლისურისთვის და dmy სხვაგან; გადაწერა format=\{
"model": "kokoro",
"voice": "af_bella",
"text": "Your appointment is on <say-as interpret-as=\"date\">2026-04-26</say-as> at <say-as interpret-as=\"time\">14:30</say-as>. Please call <say-as interpret-as=\"telephone\">+1-555-867-5309</say-as> if you need to reschedule."
}პასუხი
Step 1: Submit request
{
"uuid": "77b71db532874ce98e84a69a2d740d4c",
"job_id": "f21316bb-aefa-480d-8523-701d1e3184ce",
"status": "queued",
"credits_used": 11,
"credits_remaining": 15000
}Step 2: Poll for result
status is completed or failed.{
"status": "completed",
"result_url": "https://api.tts.ai/static/downloads/77b71db5.../output.mp3"
}{
"status": "processing"
}Step 3: Download audio
result_url from the completed response to download the audio file.სრული მაგალითი
import requests, time
API_KEY = "sk-tts-your-key"
BASE = "https://api.tts.ai"
# 1. Submit TTS request
resp = requests.post(f"{BASE}/v1/tts/", json={
"model": "kokoro",
"text": "Hello from TTS.ai!",
"voice": "af_bella"
}, headers={"Authorization": f"Bearer {API_KEY}"})
data = resp.json()
uuid = data["uuid"]
# 2. Poll for result
while True:
result = requests.get(f"{BASE}/v1/speech/results/",
params={"uuid": uuid}).json()
if result["status"] == "completed":
# 3. Download audio
audio = requests.get(result["result_url"])
with open("output.mp3", "wb") as f:
f.write(audio.content)
break
elif result["status"] == "failed":
raise Exception(result.get("error", "Generation failed"))
time.sleep(1.5)POST /v1/tts/stream/ for real-time Server-Sent Events (SSE) streaming — no polling needed.
საუბარი ტექსტადName
აუდიოს ტექსტად გადაწერა. მხარს უჭერს 99 ენას ავტომატური აღმოჩენით.
მოთხოვნის სხეული (multipart/form-data)
| პარამეტრები | ტიპები | საჭირო | აღწერა |
|---|---|---|---|
| file | file | ეა | აუდიო ფაილი (MP3, WAV, FLAC, OGG, M4A, MP4, WebM). მაქსიმუმ 100MB. |
| model | string | ნვ, ნვ ჟყმ. | STT მოდელი: ჩურჩული (ნაგულისხმევი), სწრაფი-ჩურჩული, სენსუალური ხმა |
| language | string | ნვ, ნვ ჟყმ. | ენის კოდი. auto ავტომატური აღმოჩენისთვის (ნაგულისხმევი). |
| timestamps | boolean | ნვ, ნვ ჟყმ. | სიტყვის დონის დროის ჩათვლით. ნაგულისხმევი: false |
| diarize | boolean | ნვ, ნვ ჟყმ. | დიალოგის ჩართვა. ნაგულისხმევი: false |
პასუხი
{
"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"
}
]
}
ხმის კლონირებაName
საუბრის გენერირება კლონირებულ ხმაში. რეფერენტული აუდიო და ტექსტის ჩატვირთვა.
მოთხოვნის სხეული (multipart/form-data)
| პარამეტრები | ტიპები | საჭირო | აღწერა |
|---|---|---|---|
| reference_audio | file | ეა | რეფერენციული ხმის აუდიო (10-30 წამი რეკომენდებულია). მაქსიმუმ 20MB. |
| text | string | ეა | ტექსტის გამოთქმა კლონირებული ხმათა სისტემაში. |
| model | string | ნვ, ნვ ჟყმ. | კლონის მოდელი: chatterbox (ნაგულისხმევი), cosyvoice2, gpt-sovits |
| format | string | ნვ, ნვ ჟყმ. | გამონატანის ფორმატები: mp3 (ნაგულისხმევი), wav, flac |
| language | string | ნვ, ნვ ჟყმ. | მიზნობრივი ენის კოდი. უნდა იყოს მხარდაჭერილი მონიშნული მოდელით. |
პასუხი
აუდიო ფაილის დაბრუნება როგორც ბინა მონაცემი, იგივე, რაც TTS- ის დასასრული.
ხმის შეცვლაName
აუდიოს კონვერტაცია სხვა ხმის მსგავსად. ატვირთეთ წყაროს აუდიო და აირჩიეთ მიზნობრივი ხმა.
მოთხოვნის სხეული (multipart/form-data)
| პარამეტრები | ტიპები | საჭირო | აღწერა |
|---|---|---|---|
| file | file | ეა | წყაროს აუდიო ფაილი (MP3, WAV, FLAC). მაქსიმუმ 50MB. |
| target_voice | string | ეა | კონვერტირებადი ხმოვანი ID (/v1/voices/ გამოიყენეთ ხელმისაწვდომი ხმების ჩამოსაშლელად) |
| model | string | ნვ, ნვ ჟყმ. | ხმის გადამუშავების მოდელი: openvoice (ნაგულისხმევი), knn-vc |
| format | string | ნვ, ნვ ჟყმ. | გამონატანის ფორმატები: wav (ნაგულისხმევი), mp3, flac |
თხოვნის მაგალითი
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
პასუხი
აუდიო ფაილის გადამუშავება ბინარული მონაცემებად.
საუბრის თარგმნაName
საუბრის აუდიოს თარგმნა ერთი ენიდან მეორეზე. ერთ ზარში ურთიერთქმედებს საუბარი-ტექსტი, თარგმნა და საუბარი-ტექსტი. Name
მოთხოვნის სხეული (multipart/form-data)
| პარამეტრები | ტიპები | საჭირო | აღწერა |
|---|---|---|---|
| file | file | ეა | წყაროს აუდიო ფაილი ორიგინალურ ენაზე. მაქსიმუმ 100MB. |
| target_language | string | ეა | მიზნობრივი ენის კოდი (მაგალითად, es, fr, de, ja) |
| voice | string | ნვ, ნვ ჟყმ. | თარგმნილი გამონატანის ხმა. ავტომონიშნულია თუ გამოტოვებულია. |
| preserve_voice | boolean | ნვ, ნვ ჟყმ. | ცდილობენ დამკვეთის ხმაზე ოციენტის ხმა შეინარჩუნონ. ნაგულისხმევი: false |
პასუხი
{
"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
}
საუბარიდან საუბარშიName
საუბრის სტილის, ემოციის ან წარმოთქმის შეცვლა, შინაარსის შენარჩუნების პირობებში. სასარგებლოა ტონის, ტემპის და გამოხატვის პარამეტრების შესაცვლელად.
მოთხოვნის სხეული (multipart/form-data)
| პარამეტრები | ტიპები | საჭირო | აღწერა |
|---|---|---|---|
| file | file | ეა | წყაროს საუბრის აუდიო ფაილი. მაქსიმუმ 50MB. |
| voice | string | ეა | გამონატანის საუბრისთვის ხმოვანი ID- ს მითითება |
| model | string | ნვ, ნვ ჟყმ. | მოდელი: openvoice (ნაგულისხმევი), chatterbox |
| emotion | string | ნვ, ნვ ჟყმ. | მიზნობრივი ემოცია: ნეიტრალური, ბედნიერი, მწუხარება, გაბრაზებული, აღელვებული |
| speed | float | ნვ, ნვ ჟყმ. | სიჩქარის რეგულირება. ნაგულისხმევი: 1.0. დიაპაზონი: 0.5 - დან 2.0 |
პასუხი
აუდიო ფაილის გადამუშავება ბინარული მონაცემებად.
აუდიო ხელსაწყოებიName
Audio processing endpoints for enhancement, vocal removal, stem splitting და სხვა.
აუდიოს ხარისხის გაუმჯობესება: ხმაურის შემცირება, გაუმჯობესება, უმაღლესი რეზოლუცია.
| file file | გაუმჯობესებული აუდიო ფაილი |
| denoise boolean | ჩართვა (ნაგულისხმები: true) |
| enhance_clarity boolean | საუბრის გაუმჯობესება (ნაგულისხმევი: true) |
| super_resolution boolean | აუდიოს ხარისხის გაუმჯობესება (ნაგულისხმევი: არასწორი) |
| strength integer | 1- 3 (მძიმე, საშუალო, მძიმე). ნაგულისხმები: 2 |
2002 წელს ფილმი გადაიღეს ფილმში „The Voice“ (ინგლ.
| file file | აუდიო ფაილის გაყოფა |
| model string | demucs (ნაგულისხმები) ან spleeter |
| stems integer | რიცხვი: 2, 4, 5 ან 6 (ნაგულისხმები: 2) |
| format string | გამონატანის ფორმატები: wav, mp3, flac |
აუდიო ჩანაწერებიდან ხმაურისა და რევერბერის წაშლა.
| file file | აუდიო ფაილი |
| type string | echo or reverb (default: both) |
| intensity integer | 1-5 (default: 3) |
აუდიოს ანალიზი ღილაკის, BPM-ის და დროის აღსანიშნავად.
| file file | აუდიო ფაილი ანალიზისთვის |
{
"key": "C",
"scale": "Major",
"bpm": 120.0,
"time_signature": "4/4",
"camelot": "8B",
"compatible_keys": ["C Major", "G Major", "F Major", "A Minor"]
}
აუდიოს გადაქცევა სხვადასხვა ფორმატების შორის.
| file file | კონვერტაციის აუდიო ფაილი |
| format string | მიზნობრივი ფორმატები: mp3, wav, flac, ogg, m4a, aac |
| bitrate integer | გამონატანის ბიტთა რაოდენობა კბ/ ს- ში: 64, 128, 192, 256, 320 |
| sample_rate integer | დისკის ტიპი |
| channels string | mono ან stereo |
ხმაურიანი ჩატიName
აუდიო ან ტექსტის გაგზავნა და AI პასუხის მიღება სინტეზირებული საუბრით.
მოთხოვნის სხეული (multipart/form-data ან JSON)
| პარამეტრები | ტიპები | საჭირო | აღწერა |
|---|---|---|---|
| audio | file | ნვ, ნვ ჟყმ.* | აუდიო ჩანაწერი (audio ან text საჭიროა) |
| text | string | ნვ, ნვ ჟყმ.* | ტექსტის შეყვანა (audio ან text საჭიროა) |
| voice | string | ნვ, ნვ ჟყმ. | AI პასუხის ხმა. ნაგულისხმევი: af_bella |
| tts_model | string | ნვ, ნვ ჟყმ. | პასუხის TTS მოდელი. ნაგულისხმევი: kokoro |
| system_prompt | string | ნვ, ნვ ჟყმ. | AI- სთვის ინდივიდუალური სისტემური შეტყობინებაName |
| conversation_id | string | ნვ, ნვ ჟყმ. | არსებული საუბრის გაგრძელება |
პასუხი
{
"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
}
TTS პაკეტი
მრავალჯერადი ტექსტების გაგზავნა TTS- ის პარალელური გენერირებისთვის. შესაძლებელია webhook- ის უკან დაკავშირების მიღება, როდესაც ყველა დავალება დასრულდება.
პარამეტრები
| პარამეტრები | ტიპები | აღწერა |
|---|---|---|
| texts | array | Array of objects: {text, model, voice}. Max 50 items. |
| webhook_url | string | შეუზღუდავი URL POST შედეგებისთვის, როდესაც პაკეტი დასრულდება. |
პასუხი
{
"batch_id": "abc123",
"total": 3,
"completed": 0,
"status": "processing"
}
GET /v1/tts/batch/result/?batch_id=abc123-ის გამოყენებით კითხვის მიმდინარეობა
ხმოვანი ჩაშენებაName
წინასწარ გამოთვალეთ ხმოვანი ჩაბმა რეფერენციული აუდიოსგან. გამოიყენეთ დაბრუნებული embed_id ხმოვანი კლონების მომდევნო მოთხოვნებში, თითქმის მყისიერი გენერაციისთვის.
პარამეტრები
| პარამეტრები | ტიპები | აღწერა |
|---|---|---|
| file | file | Reference audio file (WAV, MP3, FLAC). |
| model | string | Cloning model (default: chatterbox). Supported: chatterbox, cosyvoice2, openvoice, gpt-sovits, spark, indextts2, qwen3-tts. |
პასუხი
{
"embed_id": "emb_abc123",
"model": "chatterbox",
"duration_ms": 450
}
შენახული ხმები
ანგარიშზე შენახული კლონირებული ხმის ჩამონათვალი, მათ შორის public_id, რომელიც შემდეგი თაობის ხმის სახით გადაეცემა, და დაცული რეფერენციული აუდიოს URL. ასევე მიიღებს POST (multipart) - ს ხმის შესაქმნელად და DELETE? public_id=uv_xxx - ს ხმის წასასვლელად.
პასუხი
{
"voices": [
{
"public_id": "uv_30d109336d05",
"name": "My Voice",
"model_name": "chatterbox",
"voice_id": "",
"preview_url": "https://tts.ai/media/user-voices/....wav",
"reference_audio_url": "https://tts.ai/media/user-voices/....wav",
"storage_status": "active"
}
],
"quota": { "setup_chars": 500, "per_use_chars": 50 }
}
2001 წელს გამოვიდა მისი პირველი ალბომი, სახელწოდებით „The Voice“, რომელიც შეიცავს სიმღერებს „The Voice of the U.S.A.“ და „The Voice of the U.S.A.“.
ჯანმრთელობის შემოწმება
GPU სერვერის სტატუსის, ჩატვირთული მოდელის და რიგის ზომის შემოწმება. ავთენტიფიკაცია არ არის საჭირო. 30 წამის განმავლობაში დაცულია.
პასუხი
{
"status": "online",
"latency_ms": 45,
"queue_size": 3,
"models_loaded": ["kokoro", "chatterbox", "cosyvoice2"]
}
მოდელების სია
ყველა ხელმისაწვდომი მოდელის სია მათი შესაძლებლობებით.
პასუხი
{
"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
}
]
}
ხმების სია
ყველა ხელმისაწვდომი ხმების სია, მოდელის ან ენის მიხედვით ფილტრით. Name
პარამეტრები
| პარამეტრები | ტიპები | აღწერა |
|---|---|---|
| model | string | მოდელის ID-ის მიხედვით ფილტრირება (მაგალითად, kokoro) |
| language | string | ფილტრი ენის კოდის მიხედვით (მაგალითად, ge) |
| gender | string | ფილტრი სქესის მიხედვით: male, female, neutral |
პასუხი
{
"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
}
სუბტიტრები (SRT / VTT) ახალი
ნებისმიერი დასრულებული TTS დავალების სინქრონული სუბტიტრების შექმნა. Whisper- ის აუდიოს გასწორების დასრულება და SRT ან WebVTT- ს დაბრუნება. შედეგი დაცულია დისკზე, ასე რომ იგივე uuid- ის მეორე გამოძახება იქნება დისკზე წაკითხვა.
პარამეტრები
| პარამეტრები | საჭირო | აღწერა |
|---|---|---|
| uuid | ეა | დავალების UUID- ს უკან ბრუნავს /v1/tts/ ან /v1/voice- clone/. |
| format | ნვ, ნვ ჟყმ. | srt (ნაგულისხმევი) ან vtt. |
| download | ნვ, ნვ ჟყმ. | 1 Content-Disposition: attachment-ის გაგზავნა, რათა ბრაუზერმა არ გამოსახოს, არამედ შეინახოს. |
| language | ნვ, ნვ ჟყმ. | რჩევა გასწორების მოდელის შესახებ (ავტომატური აღმოჩენა, თუ გამოტოვებულია). |
curl "https://api.tts.ai/v1/speech/subtitles/?uuid=$UUID&format=srt&download=1" -o subtitles.srt
გამოთქმის ლექსიკონიName ახალი
TTS- ს ინდიკატორი, თუ როგორ უნდა გამოთქმულ იქნას სპეციფიკური სიტყვები. შენახული ჩანაწერები ავტომატურად იმოქმედებს ყველა TTS მოთხოვნაზე, რომელსაც თქვენ გააკეთებთ. 200 ჩანაწერის ლიმიტი ანგარიშზე.
მოთხოვნის სხეული (POST)
| პარამეტრები | ტიპები | აღწერა |
|---|---|---|
| word | string | სიტყვა, რომლის გადაწერაც გსურთ (მაგალითად GIF, Anthropic). სიტყვის საზღვარი შეესაბამება. |
| replacement | string | 1999 წელს გამოვიდა მისი პირველი ალბომი, სახელწოდებით „The Code: The Code“ (კოდი: კოდი). |
| language | string | ISO კოდი. ცარიელი = ყველა ენაზე ვრცელდება. |
| case_sensitive | boolean | ნაგულისხმევი false. რიცხვების სწორი შერწყმა, როდესაც true. |
# Save an entry
curl -X POST https://tts.ai/api/v1/pronunciations/ \
-H "Authorization: Bearer sk-tts-..." \
-H "Content-Type: application/json" \
-d '{"word": "GIF", "replacement": "jiff"}'
# List your entries
curl https://tts.ai/api/v1/pronunciations/ -H "Authorization: Bearer sk-tts-..."
# Delete entry by id
curl -X DELETE "https://tts.ai/api/v1/pronunciations/?id=42" -H "Authorization: Bearer sk-tts-..."
1999 წელს გამოვიდა მისი პირველი ალბომი, სახელწოდებით „The Way You Make Me Feel“ (რომელიც შეიცავს სიმღერებს „I'm a Slave 2 U“ და „I'm a Slave 2 U“).
სტატიის მკითხველიComment ახალი
ნებისმიერი სტატიის გვერდზე ერთი < code>< script> code> ჭდეების დაყენებისას, ვიზიტორებს ფიქსირებული მკითხველის პანელი ექნებათ, რომელიც გვერდის დაჭერით საუბრობს. სტატიის შიგთავსის ავტომატური აღმოჩენა, მხარს უჭერს ინდივიდუალურ ხმას / მოდელს / პოზიციას / აქცენტის ფერს.
<script src="https://tts.ai/narrator.js"
data-pk="pk-tts-your-publishable-key"
data-voice="af_bella"
data-model="kokoro"
data-extract="auto"
data-position="bottom"
data-color="#e60000"
data-locale="en"></script>
პარამეტრები
| პარამეტრები | აღწერა |
|---|---|
data-pk | გამოქვეყნებული გასაღები (pk-tts-…). დომენის შეზღუდვები მოქმედებს გასაღის allowed_domains სფეროს მეშვეობით. |
data-voice | ხმოვანი ID. ნაგულისხმევი af_bella. |
data-model | TTS მოდელის ID. ნაგულისხმევი kokoro. |
data-extract | auto (ნაგულისხმევი) — ცდილობს article/main/.post-content/.entry-content-ის პარამეტრების შერჩევას, უკან ბრუნდება ყველაზე თხელი აბზაცების კლასტერში. ან გადასცემს ნებისმიერ CSS პარამეტრს, რათა სპეციფიკური ელემენტი მიაპყროს. |
data-position | bottom (ნაგულისხმევი) ან top. |
data-color | აქცენტის ფერი (CSS-ის ნებისმიერი ფერი). ნაგულისხმევი #e60. |
data-min-chars / data-max-chars | თუ სტატია მინიმალური სიმბოლოების რაოდენობაზე ნაკლებია (ნაგულისხმევი 200), ნიშნის გადაშვება. შეყვანის მინიმალური სიმბოლოების რაოდენობა მაქსიმალური სიმბოლოების რაოდენობაზე (ნაგულისხმევი 50, 000) უნდა იყოს. |
ყურსასმენის ღილაკის ელემენტიName
ღილაკის სტილის ჩაშენება. წარდგენილია < code>< script> code> ჭდესთან ერთად და ღილაკის დაწყებისას იწყებს მცირე ნაწილების აღდგენას. განსხვავდება ზემოთ მოცემული სტატიის მკითხველის ფორმისგან (რომელიც ავტომატურად ასხამს გვერდზე გადაჭიმულ პანელს და კითხულობს მთელ სტატიას).
<script src="https://tts.ai/widget.js"
data-voice="af_bella"
data-model="kokoro"
data-style="full"
data-theme="light"></script>
შენახული ხმები (მუდმივი კლონები)
რეფერენციული აუდიოს ერთჯერადი ჩატვირთვა, ხმა_ID-ის დაბრუნება, შემდეგ ამ id-ის ჩატვირთვა TTS მოთხოვნებში, აუდიოს ყოველი ზარის აღდგენის ნაცვლად. იდეალურია მაღალი მოცულობის ინტეგრაციებისთვის.
ხმა
POST
https://tts.ai/api/v1/user-voices/
საჭიროა ავტორიზაცია
მრავალნაწილიანი ფორმა. ველი: ფაილი (ნაღდად საჭირო, 5-30 წამიანი აუდიო), სახელი (ნაღდად საჭირო), ენა (სასურველი, ნაგულისხმევი en), მოდელი (სასურველი; თუ არ ჩანს, გადახდილი ანგარიშები მიიღებენ chatterbox-ს ინგლისურისთვის, cosyvoice2-ს zh/ja/ko-სთვის და openvoice-ს სხვა ენებისთვის), თანხმობა_დადასტურებულია (ნაღდად საჭირო, ნებისმიერი მართებული ფასეულობა).
curl -X POST https://tts.ai/api/v1/user-voices/ \
-H "Authorization: Bearer sk-tts-your-key" \
-F "file=@reference.wav" \
-F "name=My Narrator" \
-F "language=en" \
-F "consent_confirmed=true"
# Response:
{
"public_id": "uv_a1b2c3d4e5f6",
"id": 42,
"name": "My Narrator",
"model_name": "chatterbox",
"language": "en",
"reference_audio_url": "https://tts.ai/media/user-voices/....wav",
"storage_status": "active",
"created_at": "2026-04-17T03:45:00+00:00"
}
შენახული ხმა TTS- ში გამოყენება
POST /api/v1/tts/-ში (გაფრთხილება: ვებ VPS ჰოსტი, არა api.tts.ai) user_voice_id-ით. ჩვენ თქვენი დაცული აუდიოს და მარშრუტის ჩატვირთვას ვახდენთ კლონინგის ქსელში.
curl -X POST https://tts.ai/api/v1/tts/ \
-H "Authorization: Bearer sk-tts-your-key" \
-H "Content-Type: application/json" \
-d '{"text":"Hello from my saved voice","user_voice_id":"uv_a1b2c3d4e5f6"}'
# Returns a queued job — poll /v1/speech/results/?uuid=... for the audio URL.
სიის / წაშლა
GET https://tts.ai/api/v1/user-voices/ # list your saved voices + quota info
DELETE https://tts.ai/api/v1/user-voices/?public_id=uv_a1b2c3d4e5f6
არქივაცია / გააქტიურება (თავისუფალი)
არქივირებული ხმაები რჩება თქვენს ანგარიშზე, მაგრამ არ შეიძლება გამოყენებულ იქნას TTS- ში. სასარგებლოა უძილობიანი მომხმარებლებისთვის, ასე რომ თქვენი სია სუფთა რჩება.
POST https://tts.ai/api/v1/user-voices/uv_a1b2c3d4e5f6/archive/
POST https://tts.ai/api/v1/user-voices/uv_a1b2c3d4e5f6/reactivate/
Change a saved voice's engine (free)
არსებული შენახული ხმა სხვა კლონინგის მოდელში გადააქვს. შენახული ჩანაწერი რჩება. უცნობი მოდელი უარყოფილია მართებული მოდელის სიის მიხედვით.
curl -X POST https://tts.ai/api/v1/user-voices/uv_a1b2c3d4e5f6/model/ \
-H "Authorization: Bearer sk-tts-..." -H "Content-Type: application/json" \
-d '{"model": "chatterbox"}'
კოდის მაგალითები
ტექსტიდან საუბარიName
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')}")
საუბარი ტექსტადName
# 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"])
ხმის კლონირებაName
# Voice Cloning
with open("reference.wav", "rb") as ref:
response = requests.post(
"https://api.tts.ai/v1/voice-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)
ტექსტიდან საუბარიName
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();
საუბარი ტექსტადName
// 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);
ტექსტიდან საუბარიName
# 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
საუბარი ტექსტადName
# 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"
ხმის კლონირებაName
# Voice Cloning
curl -X POST https://api.tts.ai/v1/voice-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
აუდიოს გაუმჯობესებაName
# 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
შეცდომის კოდები
ყველა შეცდომა იძლევა JSON პასუხს error field.
{
"error": {
"code": "insufficient_credits",
"message": "You do not have enough characters for this request.",
"characters_required": 4000,
"characters_available": 2000
}
}
| HTTP სტატუსი | შეცდომის კოდი | აღწერა |
|---|---|---|
| 400 | bad_request |
მოთხოვნის არასწორი პარამეტრები. დეტალების გასარკვევად შეამოწმეთ შეცდომის შეტყობინება. |
| 401 | unauthorized |
API გასაღები არ არის ან არასწორია. |
| 402 | insufficient_credits |
არ არის საკმარისი სიმბოლოები. შეიძინეთ მეტი / pricing /. |
| 403 | forbidden |
თქვენ არ გაქვთ უფლება ამ რესურსზე წვდომა (მაგალითად, სხვა მომხმარებლის დავალების გამოკითხვა). API წვდომა ყველა გეგმაშია ჩართული. |
| 404 | not_found |
მოდელი ან ხმა ვერ მოიძებნა. |
| 413 | file_too_large |
ატვირთული ფაილი გადააჭარბა ზომის საზღვარს. |
| 429 | rate_limited |
გადამეტებული მოთხოვნები. სიჩქარის საზღვრის თავსართების შემოწმება. |
| 500 | internal_error |
სერვერის შეცდომა. სცადეთ კიდევ უფრო გვიან. |
| 503 | model_loading |
მოდელის ჩატვირთვა. სცადეთ კიდევ რამდენიმე წამში. |
ვებსაიტები
გრძელვადიანი დავალებებისთვის (root-ის გაყოფა, batch TTS), შეგიძლიათ მიუთითოთ webhook_url პარამეტრი. როდესაც დავალება დასრულდება, ჩვენ გამოვაქვეყნებთ შედეგს თქვენს URL-ზე.
{
"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"
}
Ready to Build?
Get your API key and start integrating TTS.ai into your applications.