API દસ્તાવેજ
અમારી REST API સાથે તમારા કાર્યક્રમોમાં TTS.ai ને એકીકૃત કરો. સરળ સ્થળાંતર માટે OpenAI-સુસંગત બંધારણ.
સમીક્ષા
The TTS.ai API provides programmatic access to all platform features: text-to-speech synthesis, speech-to-text transcription, voice cloning, audio enhancement, and more. The API uses standard REST conventions with JSON request/response bodies.
API કી
તમારી API કી અહીંથી મેળવો ખાતા સુયોજનો. Pro અને Enterprise યોજનાઓ પર ઉપલબ્ધ છે.
આધાર URL
https://api.tts.ai/v1/
સત્તાધિકરણ
વડે બેરીર ટોકન Authorization હેડર
સત્તાધિકરણ
બધી API વિનંતીઓને આમાં વહનકર્તા ટોકન મારફતે સત્તાધિકરણની જરૂર છે Authorization હેડર.
Authorization: Bearer sk-tts-your-api-key-here
આધાર URL
બધા અંતબિંદુઓ આ આધાર URL સાથે સંબંધિત છે. ઉદાહરણ તરીકે, TTS અંતબિંદુ છે:
દર મર્યાદાઓ
API દર મર્યાદા યોજના દ્વારા બદલાય છે:
| પ્લાન | વિનંતીઓ/મિનિટ | Concurrent | મહત્તમ લખાણ લંબાઈ |
|---|---|---|---|
| પ્રોફેશનલ | 60 | 5 | ૫૦૦૦ અક્ષરો |
| એન્ટરપ્રાઇઝ | 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) |
| text | string | હા | બોલવામાં ફેરવવા માટેનું લખાણ (Pro માટે મહત્તમ ૫,૦૦૦ અક્ષરો, Enterprise માટે ૫૦,૦૦૦) |
| voice | string | હા | અવાજ ID (ઉપલબ્ધ અવાજોની યાદી કરવા માટે /v1/voices/ વાપરો) |
| format | string | નહી | આઉટપુટ બંધારણ: mp3 (મૂળભૂત), wav, flac, ogg |
| speed | float | નહી | બોલવાની ઝડપ ગુણક. મૂળભૂત: 1.0. સીમા: 0.5 થી 2.0 |
| language | string | નહી | ભાષા કોડ (દા.ત., en, es). આપોઆપ શોધાયેલ જો કાઢી નાખેલ હોય. |
| stream | boolean | નહી | સ્ટ્રીમિંગ જવાબને સક્રિય કરો. મૂળભૂત: false |
ઉદાહરણ વિનંતી
curl -X POST https://api.tts.ai/v1/tts/ \
-H "Authorization: Bearer sk-tts-your-key" \
-H "Content-Type: application/json" \
-d '{
"model": "kokoro",
"text": "Hello from TTS.ai! This is a test.",
"voice": "af_bella",
"format": "mp3"
}' \
--output output.mp3
જવાબ
Returns the audio file as binary data with appropriate Content-Type header (audio/mpeg, audio/wav, etc.).
Content-Type: audio/mpeg
Content-Length: 48256
X-Credits-Used: 2
X-Credits-Remaining: 498
બોલવાથી લખાણName
ઓડિયોને લખાણમાં રૂપાંતરિત કરો. આપોઆપ શોધ સાથે ૯૯ ભાષાઓને આધાર આપે છે.
વિનંતી બોડી (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 | હા | સંદર્ભ અવાજ ઓડિયો (૧૦-૩૦ સેકન્ડની ભલામણ કરવામાં આવે છે). મહત્તમ ૨૦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 | નહી | મૂળ સ્પીકરને સંગ્રહવાનો પ્રયત્ન કરો |
જવાબ
{
"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 | Audio 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"]
}
ઓડિયો બંધારણો વચ્ચે ફેરવો.
| 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
}
મોડેલોની યાદી
તેમની ક્ષમતા સાથે બધા ઉપલબ્ધ મોડેલોની યાદી પાછી આપે છે.
જવાબ
{
"models": [
{
"id": "kokoro",
"name": "Kokoro",
"type": "tts",
"tier": "standard",
"languages": ["en", "ja", "ko", "zh", "fr"],
"supports_cloning": false,
"supports_streaming": true,
"credits_per_1k_chars": 2
},
{
"id": "chatterbox",
"name": "Chatterbox",
"type": "tts",
"tier": "premium",
"languages": ["en"],
"supports_cloning": true,
"supports_streaming": true,
"credits_per_1k_chars": 4
}
]
}
અવાજોની યાદી
બધા ઉપલબ્ધ અવાજોની યાદી પાછી આપે છે, વૈકલ્પિક રીતે મોડેલ અથવા ભાષા દ્વારા ગાળાયેલ છે.
પ્રશ્ન પરિમાણો
| પરિમાણો | પ્રકાર | વર્ણન |
|---|---|---|
| model | string | મોડેલ ID દ્વારા ગાળો (દા.ત., kokoro) |
| language | string | ભાષા કોડ દ્વારા ગાળો (દા.ત., en) |
| gender | string | લિંગ દ્વારા ગાળક: male, female, neutral |
જવાબ
{
"voices": [
{
"id": "af_bella",
"name": "Bella",
"model": "kokoro",
"language": "en",
"gender": "female",
"preview_url": "https://api.tts.ai/v1/voices/preview/af_bella.mp3"
}
],
"total": 142
}
કોડ ઉદાહરણો
લખાણને બોલવામાંName
import requests
API_KEY = "sk-tts-your-key"
# Text to Speech
response = requests.post(
"https://api.tts.ai/v1/tts/",
headers={"Authorization": f"Bearer {API_KEY}"},
json={
"model": "kokoro",
"text": "Hello from TTS.ai!",
"voice": "af_bella",
"format": "mp3"
}
)
with open("output.mp3", "wb") as f:
f.write(response.content)
print(f"Credits used: {response.headers.get('X-Credits-Used')}")
બોલવાથી લખાણName
# Speech to Text
with open("recording.mp3", "rb") as f:
response = requests.post(
"https://api.tts.ai/v1/stt/",
headers={"Authorization": f"Bearer {API_KEY}"},
files={"file": f},
data={"model": "faster-whisper", "timestamps": "true"}
)
result = response.json()
print(result["text"])
અવાજ ક્લોનિંગ
# Voice Cloning
with open("reference.wav", "rb") as ref:
response = requests.post(
"https://api.tts.ai/v1/tts/clone/",
headers={"Authorization": f"Bearer {API_KEY}"},
files={"reference_audio": ref},
data={
"text": "This speech uses a cloned voice.",
"model": "chatterbox"
}
)
with open("cloned_output.mp3", "wb") as f:
f.write(response.content)
લખાણને બોલવામાંName
const API_KEY = 'sk-tts-your-key';
// Text to Speech
const response = await fetch('https://api.tts.ai/v1/tts/', {
method: 'POST',
headers: {
'Authorization': `Bearer ${API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
model: 'kokoro',
text: 'Hello from TTS.ai!',
voice: 'af_bella',
format: 'mp3'
})
});
const audioBlob = await response.blob();
const audioUrl = URL.createObjectURL(audioBlob);
const audio = new Audio(audioUrl);
audio.play();
બોલવાથી લખાણName
// Speech to Text
const formData = new FormData();
formData.append('file', audioFile);
formData.append('model', 'faster-whisper');
const response = await fetch('https://api.tts.ai/v1/stt/', {
method: 'POST',
headers: { 'Authorization': `Bearer ${API_KEY}` },
body: formData
});
const result = await response.json();
console.log(result.text);
લખાણને બોલવામાંName
# Text to Speech
curl -X POST https://api.tts.ai/v1/tts/ \
-H "Authorization: Bearer sk-tts-your-key" \
-H "Content-Type: application/json" \
-d '{"model":"kokoro","text":"Hello!","voice":"af_bella","format":"mp3"}' \
-o output.mp3
બોલવાથી લખાણName
# Speech to Text
curl -X POST https://api.tts.ai/v1/stt/ \
-H "Authorization: Bearer sk-tts-your-key" \
-F "file=@recording.mp3" \
-F "model=faster-whisper" \
-F "timestamps=true"
અવાજ ક્લોનિંગ
# Voice Cloning
curl -X POST https://api.tts.ai/v1/tts/clone/ \
-H "Authorization: Bearer sk-tts-your-key" \
-F "reference_audio=@reference.wav" \
-F "text=This uses a cloned voice." \
-F "model=chatterbox" \
-o cloned.mp3
ઓડિયો સુધારો
# Audio Enhancement
curl -X POST https://api.tts.ai/v1/audio/enhance/ \
-H "Authorization: Bearer sk-tts-your-key" \
-F "file=@noisy_audio.mp3" \
-F "denoise=true" \
-F "enhance_clarity=true" \
-o enhanced.mp3
ભૂલ કોડ્સ
બધી ભૂલો JSON પ્રત્યુત્તર સાથે પરત કરે છે error ક્ષેત્ર.
{
"error": {
"code": "insufficient_credits",
"message": "You do not have enough credits for this request.",
"credits_required": 4,
"credits_available": 2
}
}
| HTTP સ્થિતિ | Error Code | વર્ણન |
|---|---|---|
| 400 | bad_request |
અયોગ્ય વિનંતી પરિમાણો. વિગતો માટે ભૂલ સંદેશો ચકાસો. |
| 401 | unauthorized |
ગુમ થયેલ અથવા અયોગ્ય API કી. |
| 402 | insufficient_credits |
પૂરતા ક્રેડિટ્સ નથી. /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 ને એકીકૃત કરવાનું શરૂ કરો.