API ஆவணமாக்கம்

TTS.aiஐ எங்கள் REST API யுடன் உங்கள் பயன்பாடுகளில் ஒருங்கிணைக்கவும். எளிதாக மாற்றுவதற்கான OpenAI-க்கு ஏற்ற வடிவம்.

REST API திறந்த AI பொருந்தக்கூடியது JSON பதில்கள் ஸ்டிரீமிங் ஆதரவு

பொதுவான

இந்த TTS.ai API அனைத்து தள அம்சங்களுக்கும் நிரலாக்க அணுகலை வழங்குகிறது: உரை-இன்-பேச்சு சேர்க்கை, பேச்சு-இன்-பேச்சு மாற்றம், குரல் ஒப்புமை, ஒலி மேம்பாடு, மற்றும் மேலும். இந்த API JSON கோரிக்கை/பதிவு உடல்களுடன் தரமான REST விதிகள் பயன்படுத்துகிறது.

API விசை

உங்கள் API விசையை இங்கே பெறவும் கணக்கு அமைப்புகள். Pro மற்றும் Enterprise திட்டங்களில் கிடைக்கும்.

அடிப்படை URL

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

உரிமம்

போர்டர் டாக்கன் மூலம் Authorization தலைப்பு

உரிமம்

இலவச நிலை — விசை தேவையில்லை. பெயரிடப்படாத POSTs to /v1/tts/ எந்த உரிமமும் இல்லாமல் வேலை செய், IP க்கு 5,000 எழுத்துக்கள்/நாள் வரை, எங்கள் இலவச மாதிரிகளில் எதை வேண்டுமானாலும் பயன்படுத்தி (piper, vits, melotts, kokoro). ஒரு இலவச கணக்கில் பதிவு செய்து 15,000 கூடுதல் எழுத்துக்களை பெறவும், பிரீமியம் மாடல்களுக்கு அணுகவும்.

பிரீமியம் மாதிரிகள் மற்றும் உயர் விகித எல்லைகளுக்கு, ஒரு பேர்ர் டாக்கன் மூலம் உறுதிப்படுத்தவும் Authorization தலைப்பு.

HTTP தலைப்பு
Authorization: Bearer sk-tts-your-api-key-here
உங்கள் API விசையை ரகசியமாக வைத்திருக்கவும். சேவையக பக்க குறியீட்டில், பொது கிடங்குகளில் அல்லது பதிவுகளில் அதை பகிர வேண்டாம். உங்கள் கணக்கு அமைப்புகளில் இருந்து விசைகளை முறையாக சுழற்றவும்.

எஸ்டிடிகேக்கள்

அதிகாரப்பூர்வ 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")
GitHub

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

அடிப்படை URL

அடிப்படை URL: https://api.tts.ai/v1/

அனைத்து முடிவு புள்ளிகளும் இந்த அடிப்படை URL க்கு சார்புடையவை. உதாரணமாக, TTS முடிவு புள்ளி:

POST https://api.tts.ai/v1/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

POST /v1/tts/

உரையை குரல் ஒலியாக மாற்றுகிறது. கேட்கப்பட்ட வடிவத்தில் ஒலி கோப்பினைத் தருகிறது.

கோரிக்கை உடல்

அளபுருவகைதேவையானவிளக்கம்
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
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 குறிகள்

எண்கள், தேதிகள், நாணயம், தொலைபேசி எண்கள் மற்றும் குறுக்கெழுத்துக்களை

அவற்றை விளக்குஉள்ளீடுபேசப்பட்ட
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."
}

பதில்

The TTS endpoint queues your request and returns a JSON response with a job UUID. You then poll for the result.

Step 1: Submit request

Response (JSON)
{
  "uuid": "77b71db532874ce98e84a69a2d740d4c",
  "job_id": "f21316bb-aefa-480d-8523-701d1e3184ce",
  "status": "queued",
  "credits_used": 11,
  "credits_remaining": 15000
}

Step 2: Poll for result

GET /v1/speech/results/?uuid=<job_uuid>

Poll this endpoint every 1-2 seconds until status is completed or failed.

Polling response (completed)
{
  "status": "completed",
  "result_url": "https://api.tts.ai/static/downloads/77b71db5.../output.mp3"
}
Polling response (still processing)
{
  "status": "processing"
}

Step 3: Download audio

Fetch the result_url from the completed response to download the audio file.

Full example

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

Streaming alternative: For supported models (Kokoro, MeloTTS), use POST /v1/tts/stream/ for real-time Server-Sent Events (SSE) streaming — no polling needed.

உரையிலிருந்து பேசுName

POST /v1/stt/

ஒலியை உரைக்கு மாற்றவும். தானியங்கி கண்டுபிடிப்புடன் 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

பதில்

JSON பதில்
{
  "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

POST /v1/tts/clone/

உரையாடலை ஒரு மாதிரி குரலில் உருவாக்கவும். ஒரு குறிப்பு ஒலி மற்றும் உரை ஏற்றவும்.

கோரிக்கை உடல் (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

POST /v1/voice-convert/

ஒலியை வேறு குரல் போல ஒலிக்க மாற்றவும். மூல ஒலியை ஏற்றவும் மற்றும் இலக்கு குரலை தேர்ந்தெடுக்கவும்.

கோரிக்கை உடல் (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
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

பதில்

மாற்றப்பட்ட ஒலி கோப்பினை இரும தரவாக திருப்பித் தரும்.

உரையாடல் மொழிபெயர்ப்பு

POST /v1/speech-translate/

ஒரு மொழியிலிருந்து மற்றொரு மொழிக்கு பேசப்பட்ட ஒலியை மொழிபெயர்க்கவும். ஒரே அழைப்பில் உரைக்கு உரையாடல், மொழிபெயர்ப்பு மற்றும் உரைக்கு உரையாடல் ஆகியவற்றை இணைக்கிறது.

கோரிக்கை உடல் (multipart/form-data)

அளபுருவகைதேவையானவிளக்கம்
file file ஆம் மூல ஒலி கோப்பு மூல மொழியில். அதிகபட்சம் 100MB.
target_language string ஆம் இலக்கு மொழி குறியீடு (உ.ம். es, fr, de, ja)
voice string இல்லை மொழிபெயர்க்கப்பட்ட வெளியீட்டிற்கான குரல். நீக்கப்பட்டால் தானே தேர்ந்தெடுக்கப்படும்.
preserve_voice boolean இல்லை ஒலிப்பதிவாளர்களின் உண்மையான குரல் குணங்களை பாதுகாக்க முயற்சிக்கவும். முன்னிருப்பு: false

பதில்

JSON பதில்
{
  "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

POST /v1/speech-to-speech/

உரையாடல் பாணியை மாற்று, உணர்வு, அல்லது உள்ளடக்கத்தை வைத்திருக்கும்போது வழங்குதல். குரல், வேகம் மற்றும் வெளிப்பாட்டை சரிசெய்ய பயன்படுகிறது.

கோரிக்கை உடல் (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

மேம்படுத்தல், குரல் நீக்குதல், ஸ்டெம் பிரித்தல் மற்றும் பலவற்றிற்கு ஒலி செயலாக்க முடிவு புள்ளிகள்.

POST /v1/audio/enhance/

ஒலி தரத்தை மேம்படுத்து: இரைச்சலை நீக்கு, தெளிவை மேம்படுத்து, மிக உயர்ந்த தெளிவுத்திறன்.

file fileமேம்படுத்த வேண்டிய ஒலி கோப்பு
denoise booleanஇரைச்சல் நீக்கலை செயல்படுத்து (முன்னிருப்பு: உண்மை)
enhance_clarity booleanபேச்சு தெளிவை மேம்படுத்து (முன்னிருப்பு: உண்மை)
super_resolution booleanஒலி தரத்தை மேம்படுத்து (முன்னிருப்பு: பொய்)
strength integer1-3(இளஞ்சிவப்பு, நடுத்தர, கடுமையான). முன்னிருப்பு: 2
POST /v1/audio/separate/

இவை குரல்களை இசைக்கருவிகளிலிருந்து பிரித்து (குரல் நீக்கம்) அல்லது விதைகளை பிரித்து (stems) விடும்.

file fileபிரிக்கவேண்டிய ஒலி கோப்பு
model stringdemucs (முன்னிருப்பு) அல்லது spleeter
stems integerஸ்டெம்களின் எண்ணிக்கை: 2, 4, 5, அல்லது 6(முன்னிருப்பு: 2)
format stringவெளியீட்டு வடிவம்: wav, mp3, flac
POST /v1/audio/dereverb/

ஒலி பதிவுகளிலிருந்து ஒலியெழுப்புதலை நீக்கு

file fileசெயல்படுத்த வேண்டிய ஒலி கோப்பு
type stringecho or reverb (default: both)
intensity integer1-5 (default: 3)
POST /v1/audio/analyze/ இலவசம்

விசையை, 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"]
}
POST /v1/audio/convert/ இலவசம்

ஒலி வடிவங்களுக்கு இடையே மாற்று

file fileமாற்ற வேண்டிய ஒலி கோப்பு
format stringஇலக்கு வடிவம்: mp3, wav, flac, ogg, m4a, aac
bitrate integerவெளியீட்டு பிட்விகிதம் கிபிபிஎஸ்: 64, 128, 192, 256, 320
sample_rate integerமாதிரி விகிதம்: 22050, 44100, 48000
channels stringmono அல்லது stereo

குரல் உரையாடல்Name

POST /v1/voice-chat/

ஒலி அல்லது உரை அனுப்பவும் மற்றும் ஒரு 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 இல்லை ஏற்கனவே உள்ள உரையாடலை தொடரவும்

பதில்

JSON பதில்
{
  "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

POST /v1/tts/batch/

இணையான TTS உருவாக்கத்திற்காக பல உரைகளை சமர்பிக்கவும். அனைத்து பணிகளும் முடிந்த பிறகு வலைகூக்கு திரும்ப அழைப்பினை பெறவும்.

அளபுருக்கள்

அளபுருவகை& விவரக்குறிப்புகள்
textsarrayArray of objects: {text, model, voice}. Max 50 items.
webhook_urlstringOptional URL to POST results when batch completes.

பதில்

JSON பதில்
{
  "batch_id": "abc123",
  "total": 3,
  "completed": 0,
  "status": "processing"
}

GET /v1/tts/batch/result/?batch_id=abc123 உடன் வாக்களிப்பு முன்னேற்றம்

குரல் உட்பொதித்தல்

POST /v1/voice-embed/

குறிப்பு ஒலியிலிருந்து ஒரு குரல் உட்பொதிவை முன் கணக்கிடவும். அடுத்த குரல் ஒத்தமைப்பு கோரிக்கைகளில் திரும்பிய உட்பொதிந்த அடையாளத்தை பயன்படுத்தவும்.

அளபுருக்கள்

அளபுருவகை& விவரக்குறிப்புகள்
filefileReference audio file (WAV, MP3, FLAC).
modelstringCloning model (default: chatterbox). Supported: chatterbox, cosyvoice2, openvoice, gpt-sovits, spark, indextts2, qwen3-tts.

பதில்

JSON பதில்
{
  "embed_id": "emb_abc123",
  "model": "chatterbox",
  "duration_ms": 450
}

உடல்நிலை சரிபார்ப்பு

GET /v1/health/

GPU சேவையக நிலை, ஏற்றப்பட்ட மாதிரிகள், வரிசை அளவு ஆகியவற்றை சரிபார்க்கவும். உரிமம் தேவையில்லை. 30 நொடிகளுக்கு இடைமாற்றம் செய்யப்பட்டது.

பதில்

JSON பதில்
{
  "status": "online",
  "latency_ms": 45,
  "queue_size": 3,
  "models_loaded": ["kokoro", "chatterbox", "cosyvoice2"]
}

பட்டியல் மாதிரிகள்

GET /v1/models/

அனைத்து கிடைக்கக்கூடிய மாதிரிகளின் பட்டியலையும் அவற்றின் திறன்களையும் காட்டுகிறது.

பதில்

JSON பதில்
{
  "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
    }
  ]
}

பட்டியல் குரல்கள்

GET /v1/voices/

கிடைக்கக்கூடிய அனைத்து குரல்களின் பட்டியலைத் தருகிறது, விருப்பப்படி மாதிரி அல்லது மொழியால் வடிகட்டப்பட்டது.

கேள்வி அளபுருக்கள்

அளபுருவகைவிளக்கம்
model string மாதிரி அடையாளம் மூலம் வடிகட்டு (உதாரணமாக, kokoro)
language string மொழி குறியீட்டின் படி வடிகட்டு (உ. ம். en)
gender string பாலினத்தின் படி வடிகட்டு: male, female, neutral

பதில்

JSON பதில்
{
  "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
}

உரை புதிய

GET /v1/speech/subtitles/?uuid=<job_uuid>&format=srt|vtt&download=1

எந்த முடிந்த TTS பணிக்கும் ஒத்திசைவு செய்யப்பட்ட உரைநடைகளை உருவாக்குகிறது. ஒலிக்கு மேல் Whisper அடுக்கை இயக்குகிறது மற்றும் SRT அல்லது WebVTT ஐ திரும்பத் தரும். முடிவு வட்டில் தற்காலிகமாக சேமிக்கப்படுகிறது எனவே அதே uuid க்கு இரண்டாவது அழைப்பு ஒரு வட்டு படிப்பு.

கேள்வி அளபுருக்கள்

அளபுருதேவையானவிளக்கம்
uuidஆம்/v1/tts/ அல்லது /v1/voice-clone/ ல் இருந்து திரும்பிய பணி UUID.
formatஇல்லைsrt (முன்னிருப்பு) அல்லது vtt.
downloadஇல்லை1 Content-Disposition: attachment அனுப்புவதற்கு, எனவே உலாவி காண்பிப்பதற்கு பதிலாக சேமிக்கும்.
languageஇல்லைஒழுங்கமைப்பு மாதிரிக்கான குறிப்பு (தவிர்க்கப்பட்டால் தானே கண்டறியப்படும்).
cURL
curl "https://api.tts.ai/v1/speech/subtitles/?uuid=$UUID&format=srt&download=1" -o subtitles.srt

உச்சரிப்பு அகராதி புதிய

GET POST DELETE /api/v1/pronunciations/

குறிப்பிட்ட வார்த்தைகளை எப்படி உச்சரிப்பது என்று TTS இயந்திரத்திற்கு கூறவும். சேமிக்கப்பட்ட உள்ளீடுகள் நீங்கள் செய்யும் ஒவ்வொரு TTS கோரிக்கைக்கும் தானாகவே பொருந்தும். கணக்கிற்கு 200 உள்ளீடுகள் வரையறை.

கோரிக்கை உடல் (POST)

அளபுருவகைவிளக்கம்
wordstringமேலெழுத வேண்டிய வார்த்தை (உதாரணம் GIF, Anthropic). வார்த்தை எல்லை பொருந்தியது.
replacementstringஇதற்கு உதாரணமாக jiff, ann THROP ick போன்றவை கூறப்படுகின்றன.
languagestringதேர்வுசெய்யப்பட்ட ISO குறியீடு. காலியாக உள்ள = அனைத்து மொழிகளுக்கும் பொருந்தும்.
case_sensitivebooleanமுன்னிருப்பு false. true இருந்தால் சரியான எழுத்துருவை பொருத்து.
cURL
# 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 குறியை விட்டுவிட்டு, பார்வையாளர்கள் ஒரு நிலையான வாசிப்பவர் பட்டியைப் பெறுவர், அது க்ளிக் செய்தால் பக்கத்தை விளக்கும். கட்டுரை உடலை தானியங்கியாக கண்டறிகிறது, தனிப்பயன் குரல் / மாதிரி / இடம் / உச்சரிப்பு வண்ணத்தை ஆதரிக்கிறது.

HTML
<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-modelTTS மாதிரி அடையாளம். முன்னிருப்பு kokoro.
data-extractauto (முன்னிருப்பு) — article/main/.post-content/.entry-content தேர்வுகளை முயற்சிக்கிறது, மிகவும் அடர்த்தியான பத்திக் குழுவிற்கு திரும்புகிறது. அல்லது குறிப்பிட்ட உறுப்பை நோக்கமாகக் கொண்ட எந்த CSS தேர்வையும் கடத்தும்.
data-positionbottom (முன்னிருப்பு) அல்லது top.
data-colorஉச்சரிப்பு வண்ணம் (எந்த CSS வண்ணம்). முன்னிருப்பு #e60000.
data-min-chars / data-max-charsகட்டுரை குறைந்த எழுத்துக்களை விட குறைவாக இருந்தால் பட்டை தவிர்க்கவும் (முன்னிருப்பு 200). அதிக எழுத்துக்களை பயன்படுத்து (முன்னிருப்பு 50, 000).

கெட்டோன்கள்:

கேட்க பட்டன் சாளர உரு

உள்ளமைந்த பொத்தான்- பாணி உட்பொதி. அதன் < code>< script குறிக்கு அருகில் காட்டுகிறது மற்றும் பொத்தானை இயக்கும் குறுகிய துண்டுகளை இயக்குகிறது. மேலே உள்ள கட்டுரை வாசகனை விட வேறுபட்ட வடிவம் (அது தானாகவே பக்கம்- பரப்பப்பட்ட பட்டியையும் முழு கட்டுரையும் வாசிக்கிறது).

HTML
<script src="https://tts.ai/widget.js"
    data-voice="af_bella"
    data-model="kokoro"
    data-style="full"
    data-theme="light"></script>

சேமிக்கப்பட்ட குரல்கள் (தொடர்பான மாதிரிகள்)

ஒருமுறை ஒரு குறிப்பு ஒலியை ஏற்றவும், ஒரு நிலையான குரல் அடையாளத்தை திரும்பப் பெறவும், பின்னர் ஒவ்வொரு அழைப்புகளிலும் ஒலியை மீண்டும் ஏற்றுவதன் பதிலாக TTS கோரிக்கைகளில் அந்த அடையாளத்தை குறிப்பிடவும். அதிக அளவு ஒருங்கிணைப்புகளுக்கு சிறந்தது.

விலை: சேமிப்பு இலவசம் (தினசரி கட்டணம் இல்லை, இடம் வரையறை இல்லை). ஏற்றுதல் கட்டணம்: ஒவ்வொன்றும் ஒரே நேரத்தில் 500 எழுத்துக்கள். ஒவ்வொரு பயன்பாட்டிற்கும் கூடுதல் கட்டணம்: சேமிக்கப்பட்ட குரலை குறிப்பிடும் ஒவ்வொரு TTS உருவாக்கத்திற்கும் +50 எழுத்துக்கள் சேர்க்கப்பட்டது, சாதாரண உருவாக்கத்தின் விலைக்கு மேல். உங்களுக்கு தேவையில்லாத குரல்களை காப்பகப்படுத்தி அவற்றை தூங்க வைத்திருக்கவும்; எப்போதும் மீண்டும் செயல்படுத்தவும். இரண்டும் இலவச API அழைப்புகளாகும்.

ஒரு குரலை ஏற்றுக

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

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

உரையிலிருந்து பேசுName

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

குரல் படிமம்Name

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)

உரையிலிருந்து பேசுName

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

உரையிலிருந்து பேசுName

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

உரையிலிருந்து பேசுName

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

உரையிலிருந்து பேசுName

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"

குரல் படிமம்Name

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

ஒலி மேம்பாடு

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

பிழை குறியீடுகள்

அனைத்து பிழைகளும் ஒரு 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"
}
முடிந்த பிறகு 24 மணி நேரத்திற்கு Webhook முடிவுகள் பதிவிறக்கத்திற்கு கிடைக்கும். அவற்றை உடனடியாக பதிவிறக்க உறுதி செய்யவும்.

கட்டத் தயாரா?

உங்கள் API விசை பெறவும் உங்கள் பயன்பாடுகளில் TTS.ai ஒருங்கிணைக்க தொடங்கவும்.