API દસ્તાવેજ

અમારી REST API સાથે તમારા કાર્યક્રમોમાં TTS.ai ને એકીકૃત કરો. સરળ સ્થળાંતર માટે OpenAI-સુસંગત બંધારણ.

REST API OpenAI સુસંગત 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 ૫૦૦૦ અક્ષરો
એન્ટરપ્રાઇઝ 300 20 ૫૦,૦૦૦ અક્ષરો

દર મર્યાદા હેડરો દરેક જવાબમાં સમાવેલ છે: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.

ક્રેડિટ ખર્ચ

સેવા ખર્ચ એકમ
TTS (મુક્ત મોડેલો: Piper, VITS, MeloTTS) ૧ ક્રેડિટ પ્રતિ ૧,૦૦૦ અક્ષરો
TTS (મૂળભૂત મોડેલો: કોકોરો, કોસીવોઇસ ૨, વગેરે) ૨ ક્રેડિટ પ્રતિ ૧,૦૦૦ અક્ષરો
TTS (પ્રીમિયમ મોડેલો: Tortoise, Chatterbox, વગેરે) ૪ ક્રેડિટ્સ પ્રતિ ૧,૦૦૦ અક્ષરો
બોલવાથી લખાણName ૨ ક્રેડિટ ઓડિયોની મિનિટમાં
અવાજ ક્લોનિંગ ૪ ક્રેડિટ્સ પ્રતિ ૧,૦૦૦ અક્ષરો
અવાજ બદલનારName ૩ ક્રેડિટ ઓડિયોની મિનિટમાં
ઓડિયો સુધારો ૨ ક્રેડિટ ઓડિયોની મિનિટમાં
અવાજ દૂર કરો / અવાજ વિભાજિત કરો ૩-૪ ક્રેડિટ ઓડિયોની મિનિટમાં
ભાષાંતર ૫ ક્રેડિટ ઓડિયોની મિનિટમાં
અવાજ સંવાદ ૩ ક્રેડિટ દર ફરતે
કી શોધનાર (BPM) મુક્ત --
ઓડિયો રૂપાંતરક મુક્ત --

લખાણને બોલવામાંName

POST /v1/tts/

લખાણને ભાષણ ઓડિયોમાં રૂપાંતરિત કરો. વિનંતી થયેલ બંધારણમાં ઓડિયો ફાઇલ પાછી આપે છે.

વિનંતી બોડી

પરિમાણોપ્રકારજરૂરીવર્ણન
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
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/

ઓડિયોને લખાણમાં રૂપાંતરિત કરો. આપોઆપ શોધ સાથે ૯૯ ભાષાઓને આધાર આપે છે.

વિનંતી બોડી (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

જવાબ

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

અવાજ ક્લોનિંગ

POST /v1/tts/clone/

ક્લોન થયેલ અવાજમાં ભાષા પેદા કરો. સંદર્ભ ઓડિયો અને લખાણ અપલોડ કરો.

વિનંતી બોડી (multipart/form-data)

પરિમાણોપ્રકારજરૂરીવર્ણન
reference_audio file હા સંદર્ભ અવાજ ઓડિયો (૧૦-૩૦ સેકન્ડની ભલામણ કરવામાં આવે છે). મહત્તમ ૨૦MB.
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). મહત્તમ ૫૦MB.
target_voice string હા માં રૂપાંતરિત કરવા માટે લક્ષ્ય અવાજ ID (ઉપલબ્ધ અવાજોની યાદી કરવા માટે /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 હા મૂળભૂત ભાષામાં સ્ત્રોત ઓડિયો ફાઈલ. મહત્તમ ૧૦૦MB.
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 હા સ્ત્રોત બોલવાની ઓડિયો ફાઈલ. મહત્તમ ૫૦MB.
voice string હા આઉટપુટ ભાષા માટે લક્ષ્ય અવાજ ID
model string નહી મોડેલ: openvoice (મૂળભૂત), chatterbox
emotion string નહી લક્ષ્ય લાગણી: neutral, happy, sad, angry, excited
speed float નહી ઝડપ સુયોજન. મૂળભૂત: 1.0. વિસ્તાર: 0.5 થી 2.0

જવાબ

રૂપાંતરિત ઓડિયો ફાઇલને બાઇનરી માહિતી તરીકે પરત કરે છે.

ઓડિયો સાધનો

વધારા માટે ઓડિયો પ્રક્રિયા અંતબિંદુઓ, અવાજ દૂર કરવા, સ્ટેમ વિભાજિત કરવા, અને વધુ.

POST /v1/audio/enhance/

ઓડિયો ગુણવત્તા સુધારો: અવાજ દૂર કરો, સ્પષ્ટતા સુધારો, સુપર રીઝોલ્યુશન.

file fileવધારવા માટેની ઓડિયો ફાઈલ
denoise booleanઅવાજ ઘટાડવાનું સક્રિય કરો (મૂળભૂત: સાચું)
enhance_clarity booleanબોલવાની સ્પષ્ટતા વધારો (મૂળભૂત: સાચું)
super_resolution booleanઓડિયો ગુણવત્તાને અપસ્કેલ કરો (મૂળભૂત: ખોટુ)
strength integer૧-૩ (આછું, મધ્યમ, મજબૂત). મૂળભૂત: ૨
POST /v1/audio/separate/

વાક્યોને સંગીત સાધનોમાંથી અલગ કરો (વાક્ય દૂર કરો) અથવા સ્ટેમ્સમાં વહેંચો.

file fileવિભાજિત કરવા માટે ઓડિયો ફાઈલ
model stringdemucs (મૂળભૂત) અથવા spleeter
stems integerસ્ટેમ્સની સંખ્યા: ૨, ૪, ૫, અથવા ૬ (મૂળભૂત: ૨)
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નમૂના દર: ૨૨૦૫૦, ૪૪૧૦૦, ૪૮૦૦૦
channels stringmono અથવા stereo

અવાજ સંવાદ

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 માટે વૈવિધ્યપૂર્ણ સિસ્ટમ પ્રોમ્પ્ટ
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 મોડેલ ID દ્વારા ગાળો (દા.ત., 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"])

અવાજ ક્લોનિંગ

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"

અવાજ ક્લોનિંગ

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 મોડેલ લાવી રહ્યા છે. થોડી સેકન્ડોમાં ફરીથી પ્રયત્ન કરો.

વેબહોક્સ

લાંબા સમય સુધી ચાલતી બાબતો માટે (સ્ટેમ વિભાજન, બેચ 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 પરિણામો સમાપ્તિ પછી ૨૪ કલાક માટે ડાઉનલોડ કરવા માટે ઉપલબ્ધ છે. તેમને તરત જ ડાઉનલોડ કરવાની ખાતરી કરો.

બનાવવા માટે તૈયાર છો?

તમારી API કી મેળવો અને તમારા કાર્યક્રમોમાં TTS.ai ને એકીકૃત કરવાનું શરૂ કરો.