API ஆவணமாக்கம்

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

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

சுருக்கம்

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 தலைப்பு.

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

அடிப்படை URL

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

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

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

விகித எல்லைகள்

API விகித வரம்புகள் திட்டப்படி மாறுபடும்:

திட்டம் கோரிக்கைகள்/நிமிடம் Concurrent அதிகபட்ச உரை நீளம்
புரொ 60 5 5000 எழுத்துக்கள்
எண்டர்பிரைஸ் 300 20 50000 எழுத்துக்கள்

விகித எல்லை தலைப்புகள் ஒவ்வொரு பதில்களிலும் சேர்க்கப்பட்டுள்ளன: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.

கடன் செலவுகள்

சேவை செலவு Unit
TTS (தனியார் மாதிரிகள்: Piper, VITS, MeloTTS) 1 புள்ளி ஒவ்வொரு 1,000 எழுத்துக்களுக்கும்
TTS (நிலையான மாதிரிகள்: Kokoro, CosyVoice2, etc.) 2 புள்ளிகள் ஒவ்வொரு 1,000 எழுத்துக்களுக்கும்
TTS (பிரீமியம் மாதிரிகள்: Tortoise, Chatterbox, etc.) 4 புள்ளிகள் ஒவ்வொரு 1,000 எழுத்துக்களுக்கும்
உரையிலிருந்து பேசுName 2 புள்ளிகள் நிமிடத்திற்கு ஒலி
குரல் படிமம்Name 4 புள்ளிகள் ஒவ்வொரு 1,000 எழுத்துக்களுக்கும்
குரல் மாற்றிName 3 புள்ளிகள் நிமிடத்திற்கு ஒலி
ஒலி மேம்பாடு 2 புள்ளிகள் நிமிடத்திற்கு ஒலி
குரல் நீக்குதல் / குரல் பிரித்தல் 3-4 மதிப்பெண்கள் நிமிடத்திற்கு ஒலி
உரையாடல் மொழிபெயர்ப்பு 5 புள்ளிகள் நிமிடத்திற்கு ஒலி
குரல் உரையாடல்Name 3 புள்ளிகள் சுழற்சிக்கு
விசை & BPM தேடுபொறி இலவசம் --
ஒலி மாற்றிName இலவசம் --

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

POST /v1/tts/

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

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

அளபுருவகைதேவைப்படும்விளக்கம்
model string ஆமாம் மாதிரி அடையாளம் (உதாரணமாக, kokoro, chatterbox, piper)
text string ஆமாம் உரையை உரையாடலுக்கு மாற்றவும் (Pro க்கு அதிகபட்சம் 5,000 எழுத்துக்கள், Enterprise க்கு 50,000)
voice string ஆமாம் குரல் அடையாளம் (உள்ள குரல்களை பட்டியலிட /v1/voices/ பயன்படுத்தவும்)
format string இல்லை வெளியீட்டு வடிவம்: mp3 (முன்னிருப்பு), wav, flac, ogg
speed float இல்லை பேசும் வேக பெருக்கல். முன்னிருப்பு: 1.0. வரம்பு: 0.5 முதல் 2.0 வரை
language string இல்லை மொழி குறியீடு (உ.ம்., en, es). நீக்கப்பட்டால் தானே கண்டறியப்படும்.
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

பதில்

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

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 இல்லை இயல்பான ஒலிப்பதிவாளரைப் பாதுகாக்க முயற்சிக்கவும்

பதில்

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 to 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/

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

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 fileAudio file to analyze
பதில்
{
  "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வெளியீட்டு பிட்விகிதம் kbps: 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
}

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

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
}

குறியீட்டு உதாரணங்கள்

உரையிலிருந்து பேசு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 credits for this request.",
    "credits_required": 4,
    "credits_available": 2
  }
}
HTTP நிலைError Codeவிளக்கம்
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"
}
Webhook results are available for download for 24 hours after completion. Make sure to download them promptly.

உருவாக்கத் தயாரா?

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