ሰነዶች
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 ቁልፉን ከ የሂሳብ ምርጫዎች. በፕሮ እና ኢንተርፕራይዝ ዕቅዶች ላይ ይገኛል
መሠረታዊ URL
https://api.tts.ai/v1/
ማረጋገጫ
የቀን/ሰዓት ቶኬን Authorization የገጽ አናት
ማረጋገጫ
ሁሉንም API ጥያቄዎች በመጠባበቂያ ቶኬን በኩል ማረጋገጫን ይጠይቃሉ Authorization የገጽ አናት.
Authorization: Bearer sk-tts-your-api-key-here
ሴኮንዶች
የመንግስት 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 | ፊደላት |
| መተላለፊያ | 30 | 3 | ፊደላት |
| ለ | 60 | 5 | ፊደላት |
| ኩባንያ | 300 | 20 | ፊደላት |
የፍጥነት ገደብ ርዕሶች በእያንዳንዱ መልስ ውስጥ ይገኙበታል: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.
የክሬዲት ዋጋ
| አገልግሎት | ዋጋ | ዩኒት |
|---|---|---|
| TTS (ነጻ ሞዴሎች: Piper, VITS, MeloTTS) | አንቀጽ | ፊደል(ሎች) |
| TTS (አስፈላጊ ሞዴሎች: ኮኮሮ, ኮሲቮይስ 2, ወዘተ.) | ፊደላት | ፊደል(ሎች) |
| TTS (Premium ሞዴሎች: Tortoise, Chatterbox, ወዘተ.) | አንቀጽ | ፊደል(ሎች) |
| ንግግር ወደ ጽሑፍ | ፊደላት | የድምፅ መጠን |
| የድምፅ ክሎኒንግ | አንቀጽ | ፊደል(ሎች) |
| የድምፅ መለወጫ | አንቀጽ | የድምፅ መጠን |
| የድምፅ ማሻሻያ | ፊደላት | የድምፅ መጠን |
| የድምፅ ማስወገድ / የድምፅ ክፍፍል | ፊደላት | የድምፅ መጠን |
| የንግግር ትርጉም | አንቀጽ | የድምፅ መጠን |
| የድምፅ ውይይት | አንቀጽ | ዙር |
| የፊደል ቅርጽ ምርጫዎች | ነጻ | -- |
| የድምፅ መለወጫ | ነጻ | -- |
ጽሑፉን ወደ ንግግር ለውጥ
ጽሑፉን ወደ ንግግር ድምፅ ይለውጡ. የድምፅ ፋይሉን በተጠየቀው ቅርጸት ይመልሳል
የጠየቀው አካል
| መለኪያ | ዓይነት | ያስፈልጋል | መግለጫ የለም |
|---|---|---|---|
| model | string | አዎ | ሞዴል ID (ለምሳሌ kokoro, chatterbox, piper) |
| text | string | አዎ | ወደ ንግግር የሚለወጥ ጽሑፍ (በየጠየቁት 100,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 -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
መልስ
የድምፅ ፋይሉን በሁለት-አቅጣጫዊ መረጃ ከሚስማማ Content-Type አናት (audio/mpeg, audio/wav, ወዘተ.) ጋር ይመልሳል
Content-Type: audio/mpeg
Content-Length: 48256
X-Credits-Used: 2
X-Credits-Remaining: 498
ንግግር ወደ ጽሑፍ
ድምፅን ወደ ጽሑፍ ይለውጡ. 99 ቋንቋዎችን በራስ-ሰር ለይቶ ማወቅን ይደግፋል።
የጠየቀው አካል (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 |
መልስ
{
"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 ሰከንዶች ይታሰባል) |
| text | string | አዎ | የድምፅ ፋይል |
| model | string | አዎ | ክሎን ሞዴል: chatterbox (የተቀመጠው), cosyvoice2, gpt-sovits |
| format | string | አዎ | የምርቱ ቅርጸት: mp3 (የተለመደው), wav, flac |
| language | string | አዎ | የቋንቋ ኮድ ዒላማ. የተመረጠው ሞዴል ሊደግፈው ይገባል |
መልስ
የድምፅ ፋይሉን እንደ ቢያንስ መረጃ ይመለሳል፣ እንደ TTS መጨረሻ ነጥብ ተመሳሳይ ነው።
የድምፅ መለወጫ
ድምጹን እንደ ሌላ ድምፅ እንዲሰማ ይለውጡ። የድምፅ ምንጭን ጫን እና የመጨረሻ ድምፅን ይምረጡ።
የጠየቀው አካል (multipart/form-data)
| መለኪያ | ዓይነት | ያስፈልጋል | መግለጫ የለም |
|---|---|---|---|
| file | file | አዎ | የድምፅ ፋይል (MP3, WAV, FLAC) |
| target_voice | string | አዎ | ወደሚቀየርበት የድምፅ አይዲ (/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 | አዎ | የድምፅ ፋይል በመጀመሪያ ቋንቋ. |
| 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
}
ንግግር ወደ ንግግር
የንግግር ዘይቤን፣ ስሜትን ወይም ይዘትን በማስቀመጥ ላይ ማስተካከል። ለድምፅ፣ ለፍጥነት እና ለግልጽነት ማስተካከል ጠቃሚ ነው።
የጠየቀው አካል (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 |
መልስ
የድምፅ ፋይሉን እንደገና ያስተካክላል
የድምፅ መሣሪያዎች
የድምፅ ማቀነባበሪያ መጨረሻ ነጥቦችን ለማሻሻል, የድምፅ ማስወገድ, ቅርንጫፍ መክፈል, እና ሌሎችም.
የድምፅ ጥራት ማሻሻል: ድምፅ ማጥፋት, ግልጽነት ማሻሻል, ከፍተኛ ልዩነት.
| file file | የድምፅ ፋይል |
| denoise boolean | የድምፅ ማስወገጃን አስጀምር (የተለመደው፦ እውነት) |
| enhance_clarity boolean | የንግግር ግልጽነትን ማሻሻል (የተለመደው: እውነት) |
| super_resolution boolean | የድምፅ ጥራት ይጨምሩ (የተለመደው: ስህተት) |
| strength integer | 1-3 (ቀላል, መካከለኛ, ጠንካራ)። ቅድመ ዕይታ፦ 2 |
ድምፆችን ከኢንስትሩመንቶች (ድምፅ ማስወገድ) ለይተው ወይም ወደ ቅርንጫፎች ይከፋፍሉ
| file file | የድምፅ ፋይል |
| model string | demucs (መነሻ) ወይም spleeter |
| stems integer | የጥጥ ብዛት: 2, 4, 5, ወይም 6 (የተለመደው: 2) |
| 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 | የምርጫው ቢትሬት በኪ.ቢ.ፒ.: 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 | አዎ | የቀን መቁጠሪያውን ቀለም |
| 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 ማምረት ብዙ ጽሑፎችን ያቅርቡ. ሁሉም ስራዎች ከተፈጸሙ በኋላ የዌብሆክ ጥሪን ተቀበሉ
መለኪያዎች
| መለኪያ | ዓይነት | መግለጫ የለም |
|---|---|---|
| texts | array | Array of objects: {text, model, voice}. Max 50 items. |
| webhook_url | string | Optional URL to POST results when batch completes. |
መልስ
{
"batch_id": "abc123",
"total": 3,
"completed": 0,
"status": "processing"
}
የምርጫው ሂደት /v1/tts/batch/result/?batch_id=abc123 ጋር GET
የድምፅ መተካት
ከመዝገብ ቤት ውስጥ የድምፅ መተካት ይጫኑ
መለኪያዎች
| መለኪያ | ዓይነት | መግለጫ የለም |
|---|---|---|
| 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
}
የጤና ምርመራ
የጂፒዩ ሰርቨር ሁኔታን፣ የተጫኑ ሞዴሎችን፣ የፍተሻ መጠንን ይመልከቱ። ምንም ማረጋገጫ አይጠበቅም። ለ30 ሰከንዶች ተደብቋል
መልስ
{
"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
}
ምሳሌዎች
ጽሑፉን ወደ ንግግር ለውጥ
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')}")
ንግግር ወደ ጽሑፍ
# 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)
ጽሑፉን ወደ ንግግር ለውጥ
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();
ንግግር ወደ ጽሑፍ
// 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);
ጽሑፉን ወደ ንግግር ለውጥ
# 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
ንግግር ወደ ጽሑፍ
# 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 |
ሞዴል ይጫናል. በጥቂት ሰከንዶች ውስጥ ይሞክሩ |
ዌብሆክስ
ለረጅም ጊዜ የሚሠሩ ስራዎች (የስቴም ክፍፍል፣ የባች ቲቲኤስ) 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"
}
ለመገንባት ዝግጁ ነህ?
የእርስዎን API ቁልፍ ማግኘት እና TTS.ai ወደ ፕሮግራሞችዎ ማቀናጀት ይጀምሩ.