API ලේඛන
අපගේ REST API සමඟ ඔබේ යෙදුම් වලට TTS.ai ඒකාබද්ධ කරන්න. පහසු සංක්රමණය සඳහා OpenAI අනුකූල ආකෘතිය.
දළ විශ්ලේෂණය
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 යතුර
ඔබගේ API යතුර ලබා ගන්න ගිණුම් සැකසුම්. Pro සහ Enterprise සැලසුම් මත ලබා ගත හැක.
මූලික URL
https://api.tts.ai/v1/
අවසරදීම
දරන්නා ටෝකනය හරහා Authorization ශීර්ෂකය
අවසරදීම
සියලු API ඉල්ලීම් තුළ දරන්නා ටොකන් හරහා සහතික කිරීම අවශ්ය Authorization ශීර්ෂකය.
Authorization: Bearer sk-tts-your-api-key-here
මූලික URL
සියළුම අවසන් ස්ථානයන් මෙම මූලික URL ලිපිනයට සාපේක්ෂ වේ. උදාහරණයක් ලෙස, TTS අවසන් ස්ථානය:
අනුපාත සීමා
API අනුපාත සීමා සැලැස්ම අනුව වෙනස් වේ:
| සැලැස්ම | ඉල්ලීම් / මිනි | Concurrent | උපරිම පෙළ දිග |
|---|---|---|---|
| ප්රො | 60 | 5 | අකුරු 5,000 |
| එන්ටර්ප්රයිස් | 300 | 20 | අකුරු 50,000 |
අනුපාතය සීමා ශීර්ෂ සෑම ප්රතිචාරයක් ඇතුළත් වේ: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.
ණය පිරිවැය
| සේවාව | පිරිවැය | ඒකකය |
|---|---|---|
| TTS (නිදහස් ආකෘති: Piper, VITS, MeloTTS) | 1 ලකුණ | අකුරු 1,000 කට |
| TTS (සම්මත ආකෘති: Kokoro, CosyVoice 2, ආදිය) | 2 උපාධි | අකුරු 1,000 කට |
| TTS (විකල්ප ආකෘති: කටුස්සන්, Chatterbox, ආදිය) | 4 උපාධි | අකුරු 1,000 කට |
| කථාව පෙළටName | 2 උපාධි | මිනිත්තුවට ශ්රව්ය |
| හඬ ක්ලෝන කිරීම | 4 උපාධි | අකුරු 1,000 කට |
| හඬ වෙනස් කරන්නName | 3 උපාධි | මිනිත්තුවට ශ්රව්ය |
| ශ්රව්ය වැඩිදියුණු කිරීම | 2 උපාධි | මිනිත්තුවට ශ්රව්ය |
| ශ්රව්ය ඉවත් කිරීම / Stem බෙදීම | 3-4 උපාධි | මිනිත්තුවට ශ්රව්ය |
| කථා පරිවර්තනයName | 5 උපාධි | මිනිත්තුවට ශ්රව්ය |
| හඬ සංවාදය | 3 උපාධි | වරකට |
| යතුරු සහ BPM සොයන්නා | නිදහස් | -- |
| ශ්රව්ය පරිවර්තකය | නිදහස් | -- |
පෙළ සිට කථාවName
පෙළ කටහඬ ශ්රව්ය බවට පරිවර්තනය කරන්න. ඉල්ලා ඇති සංයුතියේ ශ්රව්ය ගොනුව ආපසු ලබාදේ.
ඉල්ලුම් ශරීරය
| පරාමිතීන් | වර්ගය | අවශ්ය | විස්තරය |
|---|---|---|---|
| model | string | ඔව් | ආකෘති අංකය (උදා. kokoro, chatterbox, piper) |
| text | string | ඔව් | කථාව බවට පරිවර්තනය කිරීමට පෙළ (Pro සඳහා උපරිම 5,000 අක්ෂර, ව්යාපාර සඳහා 50,000) |
| voice | string | ඔව් | හඬ ID (පවතින හඬ ලැයිස්තුගත කිරීමට /v1/voices/ භාවිතා කරන්න) |
| format | string | නෑ. | ප්රතිදාන සංයුතිය: mp3 (පෙරනිමි), wav, flac, ogg |
| speed | float | නෑ. | කථා කිරීමේ වේග ගුණකය. පෙරනිමි: 1.0. පරාසය: 0.5 සිට 2.0 දක්වා |
| language | string | නෑ. | භාෂා කේතය (උදා, en, es). අතහැර දැමුවහොත් ස්වයංක්රීයව හඳුනාගනී. |
| 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
ප්රතිචාරය
Returns the audio file as binary data with appropriate Content-Type header (audio/mpeg, audio/wav, etc.).
Content-Type: audio/mpeg
Content-Length: 48256
X-Credits-Used: 2
X-Credits-Remaining: 498
කථාව පෙළට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 | නෑ. | මුල් කථිකයා රැකගැනීමට උත්සාහ කරන්න |
ප්රතිචාරය
{
"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, හා expressivity.
ඉල්ලුම් ශරීරය (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
}
ආකෘති ලැයිස්තුව
ඔවුන්ගේ හැකියාවන් සමග සියලු ලබා ගත හැකි ආකෘති ලැයිස්තුවක් ලබා දෙයි.
ප්රතිචාරය
{
"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
}
කේත උදාහරණ
පෙළ සිට කථාව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 credits for this request.",
"credits_required": 4,
"credits_available": 2
}
}
| HTTP තත්වය | Error Code | විස්තරය |
|---|---|---|
| 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 ඒකාබද්ධ කිරීම ආරම්භ කරන්න.