API ලේඛන
අපගේ REST API සමඟ ඔබේ යෙදුම් වලට TTS.ai ඒකාබද්ධ කරන්න. පහසු සංක්රමණය සඳහා OpenAI අනුකූල ආකෘතිය.
දර්ශකය
TTS.ai API සියලු වේදිකාවේ විශේෂාංග සඳහා වැඩසටහන්ගත ප්රවේශයක් සපයයි: පෙළ-කතා සංස්ලේෂණය, කථා-පෙළ පරිවර්තනය, හඬ ක්ලෝන, ශ්රව්ය වැඩිදියුණු කිරීම, සහ තවත්. API JSON ඉල්ලීම / ප්රතිචාර ශරීර සමඟ සම්මත REST සම්මුති භාවිතා කරයි.
API යතුර
ඔබගේ API යතුර ලබා ගන්න ගිණුම් සැකසුම්. Pro සහ Enterprise සැලසුම් මත ලබා ගත හැක.
මූලික URL
https://api.tts.ai/v1/
අවසරදීම
දරන්නා ටෝකනය හරහා Authorization ශීර්ෂකය
අවසරදීම
/v1/tts/ කිසිදු auth තොරව වැඩ, දක්වා 5,000 අක්ෂර / දින IP එක්, අපගේ නිදහස් ආකෘති ඕනෑම භාවිතා (piper, vits, melotts, kokoro). ලබා ගැනීමට නොමිලේ ගිණුමක් සඳහා ලියාපදිංචි වන්න 15,000 බෝනස් අක්ෂර සහ වාරික ආකෘති වෙත ප්රවේශය.
වාරික ආකෘති හා ඉහළ අනුපාත සීමා සඳහා, මෙම දරන්නා ටෝකනය සමග සහතික Authorization ශීර්ෂකය.
Authorization: Bearer sk-tts-your-api-key-here
SDKs
නිල SDKs ඔබේ අයදුම්පතට ඒකාබද්ධ කිරීමට පහසු කරයි 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 | අකුරු 1,000 කට |
| TTS (සම්මත ආකෘති: Kokoro, CosyVoice 2, ආදිය) | අකුරු 2,000 | අකුරු 1,000 කට |
| TTS (විකල්ප ආකෘති: කටුස්සන්, Chatterbox, ආදිය) | අකුරු 4,000 | අකුරු 1,000 කට |
| කථාව පෙළටName | අකුරු 2,000 | මිනිත්තුවට ශ්රව්ය |
| හඬ ක්ලෝන කිරීම | අකුරු 4,000 | අකුරු 1,000 කට |
| හඬ වෙනස් කරන්නName | 3 ණය | මිනිත්තුවට ශ්රව්ය |
| ශ්රව්ය වැඩිදියුණු කිරීම | අකුරු 2,000 | මිනිත්තුවට ශ්රව්ය |
| ශ්රව්ය ඉවත් කිරීම / ශාක බෙදීම | අකුරු 3,000-4,000 | මිනිත්තුවට ශ්රව්ය |
| කථා පරිවර්තනයName | අකුරු 5,000 | මිනිත්තුවට ශ්රව්ය |
| හඬ සංවාදය | 3 ණය | වරකට |
| යතුරු සහ BPM සොයන්නා | නිදහස් | -- |
| ශ්රව්ය පරිවර්තකය | නිදහස් | -- |
පෙළ සිට කථාවName
පෙළ කටහඬ ශ්රව්ය බවට පරිවර්තනය කරන්න. ඉල්ලා ඇති සංයුතියේ ශ්රව්ය ගොනුව ආපසු ලබාදේ.
ඉල්ලුම් ශරීරය
| පරාමිතීන් | වර්ගය | අවශ්ය | විස්තරය |
|---|---|---|---|
| model | string | නෑ | ආකෘති අංකය (උදා, kokoro, chatterbox, piper). අතහැර දැමූ විට, අපි ඉල්ලා language සහාය වන ආකෘතිය ස්වයංක්රීයව තෝරා — en/ja/zh/ko/fr/de/it/pt/es/hi/ru සඳහා kokoro, අනෙකුත් සහාය වන භාෂා සඳහා piper (ar/pl/nl/cs/da/fi/el/hu/tr/uk/vi/etc.). |
| text | string | ඔව් | කටහඬ බවට පරිවර්තනය කිරීමට පෙළ. ප්රති-අවශ්යතා කැප්: 500 අක්ෂර (නිශ්චිත), 5,000 (නිදහස් ගිණුම), 1,000,000 (ගෙවුම් සැලැස්ම). දිගු ආදාන ස්වයංක්රීය-chunked සේවාදායක පැත්තේ වේ. |
| 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-31December thirty-first, nineteen ninety-nine 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.Full example
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 ආකෘතිය: whisper (පෙරනිමි), faster-whisper, sensevoice |
| 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"
}
]
}
හඬ ක්ලෝන කිරීම
ක්ලෝන හඬ කථාව ජනනය කරන්න. උපුටා ශ්රව්ය හා පෙළ උඩුගත කරන්න.
ඉල්ලුම් ශරීරය (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
එක් භාෂාවකින් තවත් කතා ශ්රව්ය පරිවර්තනය. එක් ඇමතුමක් දී, පෙළ-කතා, පරිවර්තනය, සහ පෙළ-කතා ඒකාබද්ධ.
ඉල්ලුම් ශරීරය (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
භාෂා ශෛලිය පරිවර්තනය, හැඟීම්, අන්තර්ගතය තබා ගැනීමේදී හෝ බෙදා හැරීම. කටහඬ වෙනස් කිරීම සඳහා ප්රයෝජනවත්, pacing, හා expressionness.
ඉල්ලුම් ශරීරය (multipart/form-data)
| පරාමිතීන් | වර්ගය | අවශ්ය | විස්තරය |
|---|---|---|---|
| file | file | ඔව් | මූල කථාව ශ්රව්ය ගොනුව. උපරිම 50MB. |
| voice | string | ඔව් | ප්රථිදානය සඳහා ඉලක්ක හඬ ID |
| model | string | නෑ | ආකෘතිය: openvoice (පෙරනිමි), chatterbox |
| emotion | string | නෑ | ඉලක්ක හැඟීම: සමතුලිත, සතුටින්, සතුටින්, කෝපයෙන්, සතුටින් |
| speed | float | නෑ | වේග ගැලපුම. පෙරනිමි: 1.0. පරාසය: 0.5 සිට 2.0 |
ප්රතිචාරය
පරිවර්තනය කල ශ්රව්ය ගොනුව ද්විමය දත්ත ලෙස ආපසු ලබාදේ.
ශ්රව්ය මෙවලම්Name
වැඩි දියුණු කිරීම සඳහා ශ්රව්ය සැකසුම් අවසාන ස්ථානයන්, කටහඬ ඉවත් කිරීම, ශාක බෙදීම, සහ තවත් බොහෝ දේ.
ශ්රව්ය ගුණාත්මකභාවය වැඩි දියුණු: denoise, පැහැදිලිභාවය වැඩි දියුණු, සුපිරි විභේදනය.
| file file | වැඩිදියුණු කිරීමට ශ්රව්ය ගොනුව |
| denoise boolean | ශබ්ද ඉවත් කිරීම සක්රීය කරන්න (පෙරනිමි: සත්ය) |
| enhance_clarity boolean | කථන පැහැදිලිතාව වැඩිදියුණු කරන්න (පෙරනිමි: සත්ය) |
| super_resolution boolean | ශ්රව්ය ගුණාත්මකභාවය වැඩි කරන්න (පෙරනිමි: අසත්ය) |
| strength integer | 1-3 (ආලෝකය, මධ්යම, ශක්තිමත්). පෙරනිමි: 2 |
ද්විත්ව ස්ථර (ද්විත්ව ස්ථර) හෝ ද්විත්ව ස්ථර ද්විත්ව ස්ථර ලෙසද හැඳින්වේ.
| 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 | kbps හි ප්රථිදාන බිට් අනුපාතය: 64, 128, 192, 256, 320 |
| sample_rate integer | සාම්පල අනුපාතය: 22050, 44100, 48000 |
| channels string | mono හෝ stereo |
හඬ සංවාදය
ශ්රව්ය හෝ පෙළ යැවීමට හා සංස්ලේෂණය කථාව සමග 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 සඳහා රුචි පද්ධති ප්රාප්තිය |
| 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 callback ලබා ගැනීමට විකල්ප.
පරාමිතීන්
| පරාමිතීන් | වර්ගය | විස්තරය |
|---|---|---|
| texts | array | Array of objects: {text, model, voice}. Max 50 items. |
| webhook_url | string | Optional URL to POST results when batch completes. |
ප්රතිචාරය
{
"batch_id": "abc123",
"total": 3,
"completed": 0,
"status": "processing"
}
GET /v1/tts/batch/result/?batch_id=abc123 සමග ඡන්ද ප්රගතිය
හඬ තිළැලි කිරීම
උපුටා ගැනීම් ශ්රව්ය සිට හඬ embedding පෙර-ගණනය. ආසන්න ක්ෂණික ජනනය සඳහා පසු හඬ ක්ලෝන ඉල්ලීම් තුළ ආපසු 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
}
සෞඛ්ය පරීක්ෂාව
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
}
]
}
ශබ්ද ලැයිස්තුව
ආකෘතිය හෝ භාෂාව මඟින් විකල්ප ලෙස පෙරහන් කරන ලද සියලු භාවිතයට ඇති හඬ ලැයිස්තුවක් ලබා දෙයි.
විමසුම් පරාමිති
| පරාමිතීන් | වර්ගය | විස්තරය |
|---|---|---|
| model | string | ආකෘති ID මගින් පෙරහන් කරන්න (උදා. kokoro) |
| language | string | භාෂා කේතය අනුව පෙරහන් කරන්න (උදා. en) |
| 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 | ඔව් | /v1/tts/ හෝ /v1/voice-clone/ මගින් ලැබුණු කාර්ය UUID. |
| 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
උච්චාරණ ශබ්දකෝෂය නව
විශේෂිත වචන උච්චාරණය කරන ආකාරය TTS එන්ජිම කියන්න. සුරකින ලද ඇතුළත් කිරීම් ඔබ කරන සෑම TTS ඉල්ලීම ස්වයංක්රීයව අදාළ. 200-එකතුවකට-අනුපාත සීමාව.
ඉල්ලුම් ශරීරය (POST)
| පරාමිතීන් | වර්ගය | විස්තරය |
|---|---|---|
| word | string | අභිප්රේත වචනය (උදා. GIF, Anthropic). වචන-සීමාව ගැලපේ. |
| replacement | string | උදාහරණයක් ලෙස, jiff, ann THROP ick යනාදී ලෙසින් යෙදිය හැක. |
| 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-..."
ඔබ ද ඔවුන් සුරැකීම තොරව ඉල්ලා අස්කර හැරීම සඳහා ලකුණු ලබා ගත හැකිය - වස්තුව හෝ ආකෘතිය ලෙස ඕනෑම /v1/tts / ඇමතුමක් මත pronunciations ඇතුළත් (TTS අවසාන ලකුණ params බලන්න).
ලිපිය කියවන්නා නව
ඕනෑම ලිපියක් පිටුව මත තනි ටැගය වැටී සහ සංචාරකයන් ක්ලික් පිටුව narrates බව ස්ථාවර කියවන්නා බාර් ලබා ගන්න. ස්වයංක්රීය-අනුවාදය ශරීරය හඳුනා, අභිරුචි හඬ / ආකෘතිය / ස්ථානය / accent වර්ණය සහාය.
<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 ආකෘති අංකය. පෙරනිමි kokoro. |
data-extract | auto (පෙරනිමි) — ලිපිය / ප්රධාන /.post-අන්තර්ගතය /.entry-අන්තර්ගතය තේරීම් උත්සාහ, ඝනතම ඡේදය ක්ලැස්ටර් නැවත වැටේ. හෝ යම් මූලද්රව්යයක් ඉලක්ක කිරීමට ඕනෑම CSS තේරීම් සමත්. |
data-position | bottom (පෙරනිමි) හෝ top. |
data-color | උපුටා වර්ණය (යම් CSS වර්ණය). පෙරනිමි #e60000. |
data-min-chars / data-max-chars | ලිපිය අවම-අක්ෂර (පෙරනිමි 200) වඩා කෙටි නම් බාර් මඟහරින්න. උපරිම-අක්ෂර (පෙරනිමි 50,000) දී කැප් ආදාන. |
ටයිටැනික් හි ටයිටැනික් ටී.එම්.එස්.
සවන්දීම බොත්තම් විජෙට්ටුවName
රේඛීය බොත්තම-ශෛලිය embed. එහි ටැගය අසල රූපගත හා බොත්තම-සංවිධානය කෙටි ස්නිපෙට් වාදනය. ඉහත ලිපිය කථානායක සිට වෙනස් හැඩය (අවශ්යතා අනුව පිටුව-පුළුල් බාර් එන්නත් කරන හා මුළු ලිපිය narrates).
<script src="https://tts.ai/widget.js"
data-voice="af_bella"
data-model="kokoro"
data-style="full"
data-theme="light"></script>
සුරකින ලද ශබ්ද (පවතින ක්ලෝන)
එක් වරක් උපුටා ශ්රව්ය ප්රවේශ, නැවත ස්ථාවර voice_id ලබා, පසුව සෑම ඇමතුමක් ශ්රව්ය නැවත-පූරණය වෙනුවට TTS ඉල්ලීම් එම id උපුටා. ඉහළ පරිමාව ඒකාබද්ධ සඳහා කදිම.
හඬක් උඩුගත කරන්න
POST
https://tts.ai/api/v1/user-voices/
අවසරදීම අවශ්යයි
ක්ෂේත්ර: ගොනුව (අවශ්ය, 5-30s ශ්රව්ය), නම (අවශ්ය), භාෂාව (විකල්ප, පෙරනිමි EN), ආකෘතිය (විකල්ප — zh / ja / ko වෙනත් openvoice සඳහා cosyvoice2 ස්වයංක්රීය-පිළිගනී), consent_confirmed (අවශ්ය, ඕනෑම truthy අගය).
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": "openvoice",
"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 හි සුරකින ලද හඬ භාවිත කරන්න
/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/
කේත උදාහරණ
පෙළ සිට කථාව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"])
හඬ ක්ලෝන කිරීම
# 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)
පෙළ සිට කථාව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"
හඬ ක්ලෝන කිරීම
# 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 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 ක්ෂේත්රය.
{
"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 |
ප්රමාණවත් අක්ෂර නැහැ. / මිලදී ගැනීම / දී වැඩි මිලදී. |
| 403 | forbidden |
ඔබ මෙම සම්පත ප්රවේශ වීමට අවසර නැත (උදා. වෙනත් පරිශීලකයෙකුගේ රැකියාව පෝලිම්). API ප්රවේශය සෑම සැලැස්ම මත ඇතුළත් වේ. |
| 404 | not_found |
ආකෘතිය හෝ හඬ හමු නොවිනි. |
| 413 | file_too_large |
ගොනුව උඩුගත කිරීම සඳහා අවසර නැත. |
| 429 | rate_limited |
ඉල්ලීම් බොහෝය. අනුපාත සීමා ශීර්ෂක පරීක්ෂා කරන්න. |
| 500 | internal_error |
සේවාදායක දෝෂය. පසුව උත්සාහ කරන්න. |
| 503 | model_loading |
ආකෘතිය පූරණය වෙමින් පවතී. තත්පර කිහිපයකින් නැවත උත්සාහ කරන්න. |
වෙබ්හූක්ස්
දිගු ධාවනය කාර්යයන් සඳහා (කඳ බෙදීම, කණ්ඩායම් 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"
}
හදන්න ලෑස්තිද?
ඔබේ API යතුර ලබා ගන්න සහ ඔබේ අයදුම්පත් බවට ඒකාබද්ධ ආරම්භ TTS.ai.