API मिसिलीकरण

हाम्रो REST API संग आफ्नो अनुप्रयोगहरूमा TTS.ai एकीकृत गर्नुहोस्। सजिलो माइग्रेसनको लागि OpenAI-संगत ढाँचा।

REST एपीआई 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 कुञ्जी

यसबाट तपाईँको एपीआई कुञ्जी प्राप्त गर्नुहोस् खाता सेटिङ. प्रो र उद्यम योजनाहरूमा उपलब्ध।

आधार यूआरएल

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

प्रमाणीकरण गर्नुहोस्

बेयरर टोकन मार्फत Authorization हेडर

प्रमाणीकरण

सबै एपीआई अनुरोध मा एक बोक्ने टोकन मार्फत प्रमाणीकरण आवश्यक Authorization हेडर.

एचटीटीपी हेडर
Authorization: Bearer sk-tts-your-api-key-here
तपाईँको API कुञ्जी गोप्य राख्नुहोस् । यसलाई क्लाइन्ट-साइड कोड, सार्वजनिक भण्डार, वा लगमा साझेदारी नगर्नुहोस् । तपाईँको खाता सेटिङबाट नियमित रूपमा कुञ्जीहरू घुमाउनुहोस् ।

आधार यूआरएल

आधार यूआरएल: https://api.tts.ai/v1/

सबै अन्त्यबिन्दुहरू यो आधार यूआरएलसँग सम्बन्धित छन् । उदाहरणका लागि, TTS अन्त्यबिन्दु:

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

दर सीमा

एपीआई दर सीमा योजना द्वारा भिन्न हुन्छ:

प्लान अनुरोध/मिनेट Concurrent अधिकतम पाठ लम्बाइ
प्रो 60 5 ५००० क्यारेक्टर
उद्यम 300 20 ५०,००० क्यारेक्टर

दर सीमा हेडर प्रत्येक प्रतिक्रियामा समावेश गरिएको छ: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.

ऋण लागत

सेवा लागत एकाइ
TTS (मुफ्त नमूनाहरू: पाइपर, VITS, MeloTTS) १ क्रेडिट प्रति १००० क्यारेक्टर
TTS (मानक नमूना: Kokoro, CosyVoice2, आदि) २ क्रेडिट प्रति १००० क्यारेक्टर
TTS (प्रिमियम मोडेल: Tortoise, Chatterbox, आदि) ४ क्रेडिट प्रति १००० क्यारेक्टर
पाठमा भाषणName २ क्रेडिट प्रति मिनेट अडियो
आवाज क्लोनिङ ४ क्रेडिट प्रति १००० क्यारेक्टर
आवाज परिवर्तनकर्ताName ३ क्रेडिट प्रति मिनेट अडियो
अडियो सुधार २ क्रेडिट प्रति मिनेट अडियो
स्वर हटाउनुहोस् / आवाज विभाजन गर्नुहोस् ३-४ क्रेडिट प्रति मिनेट अडियो
वक्तव्य अनुवाद ५ क्रेडिट प्रति मिनेट अडियो
आवाज कुराकानी ३ क्रेडिट प्रति पालो
कुञ्जी र बीपीएम फेला पार्ने स्वतन्त्र --
अडियो रूपान्तरणकर्ताName स्वतन्त्र --

पाठ वाचकComment

POST /v1/tts/

पाठलाई बोल्ने अडियोमा रूपान्तरण गर्नुहोस् । अनुरोध गरिएको ढाँचामा अडियो फाइल फर्काउँछ ।

अनुरोध मुख्य भाग

परिमितिप्रकार:आवश्यकवर्णन:
model string हो नमूना आईडी (जस्तै, kokoro, chatterbox, piper)
text string हो भाषणमा रूपान्तरण गरिने पाठ (प्रोका लागि अधिकतम ५,००० क्यारेक्टर, उद्यमका लागि ५०,०००)
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/

पाठमा अडियो प्रतिलिपि गर्नुहोस् । स्वचालित पत्ता लगाउनेसँग ९९ भाषाहरू समर्थन गर्दछ ।

अनुरोध मुख्य भाग (multipart/form-data)

परिमितिप्रकार:आवश्यकवर्णन:
file file हो अडियो फाइल (MP3, WAV, FLAC, OGG, M4A, MP4, WebM) । अधिकतम १०० मेगाबाइट ।
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 हो सन्दर्भ आवाज अडियो (१०-३० सेकेन्ड सिफारिस गरिएको) । अधिकतम २० मेगाबाइट ।
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) । अधिकतम ५० मेगाबाइट ।
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 हो मौलिक भाषामा स्रोत अडियो फाइल । अधिकतम १०० मेगाबाइट ।
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
}

बोल्नलाई बोल्नुहोस्

POST /v1/speech-to-speech/

विषयवस्तु राख्दा भाषण शैली, भावना, वा वितरण परिवर्तन गर्नुहोस् । टोन समायोजन गर्नका लागि उपयोगी, पेसिंग, र अभिव्यक्तिशीलता ।

अनुरोध मुख्य भाग (multipart/form-data)

परिमितिप्रकार:आवश्यकवर्णन:
file file हो स्रोत भाषण अडियो फाइल । अधिकतम ५० मेगाबाइट ।
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/

अडियो गुणस्तर बढाउनुहोस्: denoise, स्पष्टता सुधार, सुपर रिजोल्युसन।

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केबीपीएसमा निर्गत बिटरेट: ६४, १२८, १९२, २५६, ३२०
sample_rate integerनमूना दर: २2050, 44100, 48000
channels stringmono वा stereo

आवाज कुराकानी

POST /v1/voice-chat/

अडियो वा पाठ पठाउनुहोस् र सिन्थेसाइज गरिएको भाषणसँग एआई प्रतिक्रिया प्राप्त गर्नुहोस्।

अनुरोध मुख्य भाग (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 नमूना आईडीद्वारा फिल्टर गर्नुहोस् (जस्तै, 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
}

सङ्केत उदाहरण

पाठ वाचकComment

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)

पाठ वाचकComment

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

पाठ वाचकComment

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 पर्याप्त क्रेडिट छैन. / मूल्य / मा थप खरिद.
403 forbidden तपाईँको योजनामा एपीआई पहुँच उपलब्ध छैन ।
404 not_found नमूना वा आवाज फेला परेन ।
413 file_too_large अपलोड गरिएको फाइलले साइज सीमा नाघेको छ ।
429 rate_limited धेरै अनुरोध । दर सीमा हेडर जाँच गर्नुहोस् ।
500 internal_error सर्भर त्रुटि । पछि फेरि प्रयास गर्नुहोस् ।
503 model_loading नमूना लोड हुँदैछ । केही सेकेन्डमा पुन: प्रयास गर्नुहोस् ।

वेबहुक

लामो चलिरहेको कार्यहरूका लागि (स्टेम विभाजन, ब्याच TTS), तपाईँले webhook_url परिमिति प्रदान गर्न सक्नुहुन्छ । कार्य पूरा हुँदा, हामी तपाईँको यूआरएलमा परिणाम पोस्ट गर्नेछौं ।

वेबहुक पेलोड
{
  "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 परिणाम डाउनलोड गर्न उपलब्ध छन् 24 समाप्ति पछि घण्टा. तिनीहरूलाई तुरुन्तै डाउनलोड गर्न निश्चित गर्नुहोस्.

निर्माण गर्न तयार?

आफ्नो एपीआई कुञ्जी प्राप्त र आफ्नो आवेदन मा TTS.ai एकीकृत सुरु.