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/ કોઈપણ સત્તા વગર કામ કરો, 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 | ૧,૦૦૦,૦૦૦ અક્ષરો |
| પ્રો | 60 | 5 | ૧,૦૦૦,૦૦૦ અક્ષરો |
| એન્ટરપ્રાઇઝ | 300 | 20 | ૫૦,૦૦૦ અક્ષરો |
દર મર્યાદા હેડરો દરેક જવાબમાં સમાવેલ છે: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.
ક્રેડિટ ખર્ચ
| સેવા | ખર્ચ | એકમ |
|---|---|---|
| TTS (મુક્ત મોડેલો: Piper, VITS, MeloTTS) | ૧,૦૦૦ અક્ષરો | પ્રતિ ૧,૦૦૦ અક્ષરો |
| TTS (મૂળભૂત મોડેલો: કોકોરો, કોસીવોઇસ ૨, વગેરે) | ૨,૦૦૦ અક્ષરો | પ્રતિ ૧,૦૦૦ અક્ષરો |
| TTS (પ્રીમિયમ મોડેલો: Tortoise, Chatterbox, વગેરે) | ૪ ક્રેડિટ્સ | પ્રતિ ૧,૦૦૦ અક્ષરો |
| બોલવાથી લખાણName | ૨,૦૦૦ અક્ષરો | ઓડિયો મિનિટ પ્રતિ |
| અવાજ ક્લોનિંગ | ૪ ક્રેડિટ્સ | પ્રતિ ૧,૦૦૦ અક્ષરો |
| અવાજ બદલનારName | ૩,૦૦૦ અક્ષરો | ઓડિયો મિનિટ પ્રતિ |
| ઓડિયો સુધારો | ૨,૦૦૦ અક્ષરો | ઓડિયો મિનિટ પ્રતિ |
| અવાજ દૂર કરવુ / અવાજ વિભાજિત કરવુ | ૩,૦૦૦-૪,૦૦૦ અક્ષરો | ઓડિયો મિનિટ પ્રતિ |
| ભાષાંતર | ૫,૦૦૦ અક્ષરો | ઓડિયો મિનિટ પ્રતિ |
| અવાજ સંવાદ | ૩,૦૦૦ અક્ષરો | દર ફરતે |
| કી શોધનાર (BPM) | મુક્ત | -- |
| ઓડિયો રૂપાંતરક | મુક્ત | -- |
લખાણને બોલવામાંName
લખાણને ભાષણ ઓડિયોમાં રૂપાંતરિત કરો. વિનંતી થયેલ બંધારણમાં ઓડિયો ફાઇલ પાછી આપે છે.
વિનંતી બોડી
| પરિમાણો | પ્રકાર | જરૂરી | વર્ણન |
|---|---|---|---|
| model | string | નહિં | મોડેલ ID (દા.ત., 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 | હા | દ્રશ્યમાં ફેરવવા માટેનું લખાણ. પ્રતિ-અરજીઓ મર્યાદા: ૫૦૦ અક્ષરો (અનામી), ૫,૦૦૦ (મુક્ત ખાતું), ૧,૦૦૦,૦૦૦ (પૈસા ચૂકવેલ યોજના). લાંબા ઇનપુટ્સ સર્વર-બાજુએ આપોઆપ-ચંકી થયેલ છે. |
| 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-31ડિસેમ્બર ત્રીસ- એક, નવસત્તર નવસત્તર- નવ 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.સંપૂર્ણ ઉદાહરણ
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
ઓડિયોને લખાણમાં રૂપાંતરિત કરો. આપોઆપ શોધ સાથે ૯૯ ભાષાઓને આધાર આપે છે.
વિનંતી બોડી (multipart/form-data)
| પરિમાણો | પ્રકાર | જરૂરી | વર્ણન |
|---|---|---|---|
| file | file | હા | ઓડિયો ફાઈલ (MP3, WAV, FLAC, OGG, M4A, MP4, WebM). મહત્તમ ૧૦૦MB. |
| 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 સેકન્ડો સૂચવાયેલ છે). મહત્તમ ૨૦MB. |
| 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). મહત્તમ ૫૦MB. |
| 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
જવાબ
રૂપાંતરિત ઓડિયો ફાઈલને બાઇનરી માહિતી તરીકે પાછી આપે છે.
ભાષાંતર
એક ભાષામાંથી બીજામાં બોલાયેલ ઓડિયોનું ભાષાંતર કરો. એક કોલમાં બોલવાથી લખાણ, ભાષાંતર અને લખાણથી બોલવાનું સંયોજિત કરે છે.
વિનંતી બોડી (multipart/form-data)
| પરિમાણો | પ્રકાર | જરૂરી | વર્ણન |
|---|---|---|---|
| file | file | હા | મૂળભૂત ભાષામાં સ્ત્રોત ઓડિયો ફાઈલ. મહત્તમ ૧૦૦MB. |
| 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 | હા | સ્ત્રોત બોલવાની ઓડિયો ફાઈલ. મહત્તમ ૫૦MB. |
| voice | string | હા | આઉટપુટ ભાષા માટે લક્ષ્ય અવાજ ID |
| model | string | નહિં | મોડેલ: openvoice (મૂળભૂત), chatterbox |
| emotion | string | નહિં | લક્ષ્ય લાગણી: neutral, happy, sad, angry, excited |
| speed | float | નહિં | ઝડપ સુયોજન. મૂળભૂત: 1.0. વિસ્તાર: 0.5 થી 2.0 |
જવાબ
રૂપાંતરિત ઓડિયો ફાઈલને બાઇનરી માહિતી તરીકે પાછી આપે છે.
ઓડિયો સાધનો
વધારા માટે ઓડિયો પ્રક્રિયા અંતબિંદુઓ, અવાજ દૂર કરવા, સ્ટેમ વિભાજિત કરવા, અને વધુ.
ઓડિયો ગુણવત્તા સુધારો: અવાજ દૂર કરો, સ્પષ્ટતા સુધારો, સુપર રીઝોલ્યુશન.
| file file | વધારવા માટેની ઓડિયો ફાઈલ |
| denoise boolean | અવાજ ઘટાડવાનું સક્રિય કરો (મૂળભૂત: સાચું) |
| enhance_clarity boolean | બોલવાની સ્પષ્ટતા વધારો (મૂળભૂત: સાચું) |
| super_resolution boolean | ઓડિયો ગુણવત્તાને ઉચ્ચ સ્તર પર લાવો (મૂળભૂત: ખોટો) |
| strength integer | ૧-૩ (આછું, મધ્યમ, મજબૂત). મૂળભૂત: ૨ |
સંગીત સાધનોમાંથી વાક્યોને અલગ કરો (વાક્ય દૂર કરો) અથવા સ્ટેમ્સમાં વિભાજિત કરો.
| file file | અલગ કરવા માટે ઓડિયો ફાઈલ |
| model string | demucs (મૂળભૂત) અથવા spleeter |
| stems integer | સ્ટેમ્સની સંખ્યા: ૨, ૪, ૫, અથવા ૬ (મૂળભૂત: ૨) |
| 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 | નમૂના દર: ૨૨૦૫૦, ૪૪૧૦૦, ૪૮૦૦૦ |
| 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 | જ્યારે બેચ સમાપ્ત થાય ત્યારે POST પરિણામો માટે વૈકલ્પિક URL. |
જવાબ
{
"batch_id": "abc123",
"total": 3,
"completed": 0,
"status": "processing"
}
GET /v1/tts/batch/result/?batch_id=abc123 સાથે પોલ પ્રગતિ
અવાજ જડિત
સંદર્ભ ઓડિયો માંથી અવાજ જડિત કરવાનું પહેલાથી ગણો. નજીક-તરત જ ઉત્પન્ન કરવા માટે પછીની અવાજ ક્લોનિંગ વિનંતીઓમાં પાછું મળેલ 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 સર્વર સ્થિતિ, લાવવામાં આવેલ મોડેલો, અને કતાર માપ ચકાસો. સત્તાધિકરણની જરૂર નથી. ૩૦ સેકન્ડ માટે કેશ થયેલ છે.
જવાબ
{
"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: જોડાણ મોકલવા માટે કે જેથી બ્રાઉઝર દર્શાવે છે તેની જગ્યાએ સંગ્રહ કરે. |
| language | નહિં | ગોઠવણી મોડેલ માટેની મદદ (જો છોડી દેવામાં આવે તો આપમેળે શોધાયેલ). |
curl "https://api.tts.ai/v1/speech/subtitles/?uuid=$UUID&format=srt&download=1" -o subtitles.srt
ઉચ્ચારણ શબ્દકોશ નવું
TTS એન્જિનને જણાવો કે કેવી રીતે ચોક્કસ શબ્દો ઉચ્ચારવા. સંગ્રહાયેલ પ્રવેશ આપોઆપ તમે કરેલ દરેક TTS વિનંતી પર લાગુ પડે છે. ૨૦૦-પ્રવેશ પ્રતિ-ખાતું મર્યાદા.
વિનંતી બોડી (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 અંતબિંદુ પરિમાણો જુઓ).
લેખ વાંચક નવું
કોઈપણ લેખ પાના પર એક ટેગ મૂકો અને મુલાકાતીઓ ચોક્કસ વાંચક પટ્ટી મેળવે છે કે જે ક્લિક પર પાનું વર્ણવે છે. લેખ શરીર આપોઆપ શોધે છે, વૈવિધ્યપૂર્ણ અવાજ / મોડેલ / સ્થિતિ / ભાર રંગને આધાર આપે છે.
<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 મોડેલ ID. મૂળભૂત 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 | જો લેખ ન્યૂનતમ અક્ષરો (મૂળભૂત ૨૦૦) કરતા ટૂંકો હોય તો પટ્ટીને છોડી દો. મહત્તમ અક્ષરો (મૂળભૂત ૫૦,૦૦૦) પર ઇનપુટ બંધ કરો. |
સાંભળો બટન વિજેટ
લીટીમાં બટન-શૈલી જડિત. તેની ટેગની બાજુમાં રેન્ડર કરે છે અને બટન-પ્રેરિત ટૂંકી સ્નિપેટ વગાડે છે. ઉપરના લેખ વાચક થી અલગ આકાર (જે પાનું-વિસ્તૃત પટ્ટી આપોઆપ-ઉપયોગ કરે છે અને સંપૂર્ણ લેખ વાંચે છે).
<script src="https://tts.ai/widget.js"
data-voice="af_bella"
data-model="kokoro"
data-style="full"
data-theme="light"></script>
સંગ્રહ કરેલ અવાજો (સતત ક્લોનો)
સંદર્ભ ઓડિયો એકવાર અપલોડ કરો, દ્રઢ વૉઇસ_ID પાછું મેળવો, પછી દરેક કોલ પર ઓડિયો પુનઃઅપલોડ કરવાને બદલે TTS વિનંતીોમાં તે id ને સંદર્ભ કરો. ઉચ્ચ-વોલ્યુમ સંકલનો માટે આદર્શ.
અવાજ અપલોડ કરો
POST
https://tts.ai/api/v1/user-voices/
સત્તાધિકરણ જરૂરી
બહુભાગી ફોર્મ. ક્ષેત્રો: ફાઈલ (જરુરી, ૫-૩૦s ઓડિયો), નામ (જરુરી), ભાષા (વૈકલ્પિક, મૂળભૂત en), મોડેલ (વૈકલ્પિક — zh/ja/ko માટે cosyvoice2 આપોઆપ પસંદ કરે છે, અન્યથા openvoice), સંમતિ_સમજાવેલ (જરૂરી, કોઈપણ સાચી કિંમત).
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 સાથે POST કરો. અમે ક્લોનિંગ પાઇપલાઇનમાં તમારા સંગ્રહાયેલ ઓડિયો અને માર્ગને લોડ કરીએ છીએ.
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 |
પૂરતા અક્ષરો નથી. /pricing/ પર વધુ ખરીદો. |
| 403 | forbidden |
તમારી પાસે આ સ્ત્રોતને વાપરવાની પરવાનગી નથી (દા.ત. બીજા વપરાશકર્તાની કામગીરીને પોલિંગ). API વાપરવા માટે દરેક યોજના પર સમાવેશ થાય છે. |
| 404 | not_found |
મોડેલ અથવા અવાજ મળ્યો નથી. |
| 413 | file_too_large |
અપલોડ કરેલ ફાઇલ માપ મર્યાદાને પાર કરે છે. |
| 429 | rate_limited |
ઘણી બધી વિનંતી. દર મર્યાદા હેડરો ચકાસો. |
| 500 | internal_error |
સર્વર ભૂલ. પછી ફરીથી પ્રયત્ન કરો. |
| 503 | model_loading |
મોડેલ લાવી રહ્યા છે. થોડી સેકન્ડોમાં ફરીથી પ્રયત્ન કરો. |
વેબહોક્સ
લાંબા સમય સુધી ચાલતી બાબતો માટે (સ્ટેમ વિભાજન, બેચ 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 ને એકીકૃત કરવાનું શરૂ કરો.