API ஆவணமாக்கம்
TTS.aiஐ எங்கள் REST API யுடன் உங்கள் பயன்பாடுகளில் ஒருங்கிணைக்கவும். எளிதாக மாற்றுவதற்கான OpenAI-க்கு ஏற்ற வடிவம்.
பொதுவான
இந்த TTS.ai API அனைத்து தள அம்சங்களுக்கும் நிரலாக்க அணுகலை வழங்குகிறது: உரை-இன்-பேச்சு சேர்க்கை, பேச்சு-இன்-பேச்சு மாற்றம், குரல் ஒப்புமை, ஒலி மேம்பாடு, மற்றும் மேலும். இந்த API JSON கோரிக்கை/பதிவு உடல்களுடன் தரமான REST விதிகள் பயன்படுத்துகிறது.
API விசை
உங்கள் API விசையை இங்கே பெறவும் கணக்கு அமைப்புகள். Pro மற்றும் Enterprise திட்டங்களில் கிடைக்கும்.
அடிப்படை URL
https://api.tts.ai/v1/
உரிமம்
போர்டர் டாக்கன் மூலம் Authorization தலைப்பு
உரிமம்
/v1/tts/ எந்த உரிமமும் இல்லாமல் வேலை செய், IP க்கு 5,000 எழுத்துக்கள்/நாள் வரை, எங்கள் இலவச மாதிரிகளில் எதை வேண்டுமானாலும் பயன்படுத்தி (piper, vits, melotts, kokoro). ஒரு இலவச கணக்கில் பதிவு செய்து 15,000 கூடுதல் எழுத்துக்களை பெறவும், பிரீமியம் மாடல்களுக்கு அணுகவும்.
பிரீமியம் மாதிரிகள் மற்றும் உயர் விகித எல்லைகளுக்கு, ஒரு பேர்ர் டாக்கன் மூலம் உறுதிப்படுத்தவும் Authorization தலைப்பு.
Authorization: Bearer sk-tts-your-api-key-here
எஸ்டிடிகேக்கள்
அதிகாரப்பூர்வ 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) | 1000 எழுத்துக்கள் | ஒவ்வொரு 1,000 எழுத்துக்களுக்கும் |
| TTS (நிலையான மாதிரிகள்: Kokoro, CosyVoice2, etc.) | 2000 எழுத்துக்கள் | ஒவ்வொரு 1,000 எழுத்துக்களுக்கும் |
| TTS (பிரீமியம் மாதிரிகள்: Tortoise, Chatterbox, etc.) | 4,000 எழுத்துக்கள் | ஒவ்வொரு 1,000 எழுத்துக்களுக்கும் |
| உரையிலிருந்து பேசுName | 2000 எழுத்துக்கள் | ஒலி |
| குரல் படிமம்Name | 4,000 எழுத்துக்கள் | ஒவ்வொரு 1,000 எழுத்துக்களுக்கும் |
| குரல் மாற்றிName | 3000 எழுத்துக்கள் | ஒலி |
| ஒலி மேம்பாடு | 2000 எழுத்துக்கள் | ஒலி |
| குரல் நீக்கம் / குரல் பிரித்தல் | 3,000-4,000 எழுத்துக்கள் | ஒலி |
| உரையாடல் மொழிபெயர்ப்பு | 5,000 எழுத்துக்கள் | ஒலி |
| குரல் உரையாடல்Name | 3000 எழுத்துக்கள் | சுழற்சிக்கு |
| விசை & BPM தேடுபொறி | இலவச | -- |
| ஒலி மாற்றிName | இலவச | -- |
உரையிலிருந்து பேசு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 (கடனாக செலுத்த வேண்டிய திட்டம்). நீண்ட உள்ளீடுகள் சேவையகத்தின் பக்கத்தில் தானியங்கியாக பிரிக்கப்படும். |
| voice | string | ஆம் | குரல் அடையாளம் (உள்ள குரல்களை பட்டியலிட /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"
}
]
}
குரல் படிமம்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 | ஆம் | மாற்ற வேண்டிய இலக்கு குரல் அடையாளம் (உள்ள குரல்களை பட்டியலிட /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
பதில்
மாற்றப்பட்ட ஒலி கோப்பினை இரும தரவாக திருப்பித் தரும்.
உரையாடல் மொழிபெயர்ப்பு
ஒரு மொழியிலிருந்து மற்றொரு மொழிக்கு பேசப்பட்ட ஒலியை மொழிபெயர்க்கவும். ஒரே அழைப்பில் உரைக்கு உரையாடல், மொழிபெயர்ப்பு மற்றும் உரைக்கு உரையாடல் ஆகியவற்றை இணைக்கிறது.
கோரிக்கை உடல் (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 | ஆம் | வெளியீட்டுப் பேச்சுக்காக இலக்கு குரல் அடையாளம் |
| model | string | இல்லை | மாதிரி: openvoice (முன்னிருப்பு), chatterbox |
| emotion | string | இல்லை | இலக்கு உணர்வு: neutral, happy, sad, angry, excited |
| speed | float | இல்லை | வேக மாற்றம். முன்னிருப்பு: 1.0. வரம்பு: 0.5 முதல் 2.0 வரை |
பதில்
மாற்றப்பட்ட ஒலி கோப்பினை இரும தரவாக திருப்பித்தரும்.
ஒலி கருவிகள்Name
மேம்படுத்தல், குரல் நீக்குதல், ஸ்டெம் பிரித்தல் மற்றும் பலவற்றிற்கு ஒலி செயலாக்க முடிவு புள்ளிகள்.
ஒலி தரத்தை மேம்படுத்து: இரைச்சலை நீக்கு, தெளிவை மேம்படுத்து, மிக உயர்ந்த தெளிவுத்திறன்.
| file file | மேம்படுத்த வேண்டிய ஒலி கோப்பு |
| denoise boolean | இரைச்சல் நீக்கலை செயல்படுத்து (முன்னிருப்பு: உண்மை) |
| enhance_clarity boolean | பேச்சு தெளிவை மேம்படுத்து (முன்னிருப்பு: உண்மை) |
| super_resolution boolean | ஒலி தரத்தை மேம்படுத்து (முன்னிருப்பு: பொய்) |
| strength integer | 1-3(இளஞ்சிவப்பு, நடுத்தர, கடுமையான). முன்னிருப்பு: 2 |
இவை குரல்களை இசைக்கருவிகளிலிருந்து பிரித்து (குரல் நீக்கம்) அல்லது விதைகளை பிரித்து (stems) விடும்.
| 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 | மாதிரி விகிதம்: 22050, 44100, 48000 |
| 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 உருவாக்கத்திற்காக பல உரைகளை சமர்பிக்கவும். அனைத்து பணிகளும் முடிந்த பிறகு வலைகூக்கு திரும்ப அழைப்பினை பெறவும்.
அளபுருக்கள்
| அளபுரு | வகை | & விவரக்குறிப்புகள் |
|---|---|---|
| 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 உடன் வாக்களிப்பு முன்னேற்றம்
குரல் உட்பொதித்தல்
குறிப்பு ஒலியிலிருந்து ஒரு குரல் உட்பொதிவை முன் கணக்கிடவும். அடுத்த குரல் ஒத்தமைப்பு கோரிக்கைகளில் திரும்பிய உட்பொதிந்த அடையாளத்தை பயன்படுத்தவும்.
அளபுருக்கள்
| அளபுரு | வகை | & விவரக்குறிப்புகள் |
|---|---|---|
| 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 | மாதிரி அடையாளம் மூலம் வடிகட்டு (உதாரணமாக, 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
}
உரை புதிய
எந்த முடிந்த 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 முடிவுப் புள்ளிப் பரிமாணங்களைப் பாருங்கள்).
கட்டுரை வாசகர் புதிய
எந்த கட்டுரை பக்கத்திலும் ஒரு < 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 | குரல் அடையாளம். முன்னிருப்பு af_bella. |
data-model | TTS மாதிரி அடையாளம். முன்னிருப்பு kokoro. |
data-extract | auto (முன்னிருப்பு) — article/main/.post-content/.entry-content தேர்வுகளை முயற்சிக்கிறது, மிகவும் அடர்த்தியான பத்திக் குழுவிற்கு திரும்புகிறது. அல்லது குறிப்பிட்ட உறுப்பை நோக்கமாகக் கொண்ட எந்த CSS தேர்வையும் கடத்தும். |
data-position | bottom (முன்னிருப்பு) அல்லது top. |
data-color | உச்சரிப்பு வண்ணம் (எந்த CSS வண்ணம்). முன்னிருப்பு #e60000. |
data-min-chars / data-max-chars | கட்டுரை குறைந்த எழுத்துக்களை விட குறைவாக இருந்தால் பட்டை தவிர்க்கவும் (முன்னிருப்பு 200). அதிக எழுத்துக்களை பயன்படுத்து (முன்னிருப்பு 50, 000). |
சேமிக்கப்பட்ட குரல்கள் (தொடர்பான மாதிரிகள்)
ஒருமுறை ஒரு குறிப்பு ஒலியை ஏற்றவும், ஒரு நிலையான குரல் அடையாளத்தை திரும்பப் பெறவும், பின்னர் ஒவ்வொரு அழைப்புகளிலும் ஒலியை மீண்டும் ஏற்றுவதன் பதிலாக TTS கோரிக்கைகளில் அந்த அடையாளத்தை குறிப்பிடவும். அதிக அளவு ஒருங்கிணைப்புகளுக்கு சிறந்தது.
ஒரு குரலை ஏற்றுக
POST
https://tts.ai/api/v1/user-voices/
உரிமம் தேவை
பல பகுதிகள் கொண்ட வடிவம். புலங்கள்: கோப்பு (தேவை, 5-30s ஒலி), பெயர் (தேவை), மொழி (தேர்வு, முன்னிருப்பு en), மாதிரி (தேர்வு — zh/ja/ko else openvoice க்கு cosyvoice2 ஐ தானே தேர்வு செய்கிறது), அனுமதி_உறுதிப்படுத்தப்பட்டது (தேவை, எந்த உண்மை மதிப்பும்).
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 இல் சேமிக்கப்பட்ட குரலை பயன்படுத்து
POST to /api/v1/tts/ (NOTE: web VPS host, not api.tts.ai) with 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"])
குரல் படிமம்Name
# 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"
குரல் படிமம்Name
# 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 |
தேவையான எழுத்துக்கள் இல்லை. / pricing / இல் அதிகம் வாங்கவும். |
| 403 | forbidden |
இந்த மூலத்தை அணுக உங்களுக்கு அனுமதி இல்லை (உதாரணமாக மற்றொரு பயனரின் பணியை கேட்க). API அணுகல் ஒவ்வொரு திட்டத்திலும் உள்ளடக்கப்பட்டுள்ளது. |
| 404 | not_found |
மாதிரி அல்லது குரல் கிடைக்கவில்லை. |
| 413 | file_too_large |
ஏற்றப்பட்ட கோப்பு அளவு வரம்புகளை மீறி உள்ளது. |
| 429 | rate_limited |
மிகவும் அதிகமான கோரிக்கைகள். வீத வரம்பு தலைப்புகளை சரிபார்க்கவும். |
| 500 | internal_error |
சேவையக பிழை. பிறகு மீண்டும் முயற்சிக்கவும். |
| 503 | model_loading |
மாதிரி ஏற்றப்படுகிறது. சில நொடிகளில் மீண்டும் முயற்சிக்கவும். |
வெப்ஹூக்குகள்
நீண்ட காலம் நடக்கும் பணிகளுக்காக (stem splitting, batch TTS), நீங்கள் ஒரு webhook_url அளவுருவை வழங்கலாம். பணி முடிந்ததும், நாங்கள் உங்கள் URL க்கு முடிவுகளை POST செய்வோம்.
{
"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 ஒருங்கிணைக்க தொடங்கவும்.