תיעוד API
Integrate TTS.ai לתוך היישומים שלך עם שאר API שלנו תבנית תאימה OpenAI להגירה קלה.
סקירה
TTS.ai.API מספק גישה תוכנית לכל מאפייני הפלטפורמה: סינתזה בין טקסט לדיבור, תמליל דיבור לטקסט, שיבוט קול, שיפור שמע ועוד. ה-API משתמש במוסכמות מנוחה סטנדרטיות עם גופי JSON בקשה/response.
מפתח API
קבל מפתח API שלך מ הגדרות חשבון. זמין על תוכניות פרו Enterprise.
כתובת בסיס
https://api.tts.ai/v1/
Auth
סמל נושא באמצעות Authorization כותרת
אימות
/v1/tts/ עבודה ללא כל auth, עד 5,000 תווים / יום לIP, באמצעות כל המודלים בחינם שלנו (piper, vits, melotts, kokoro). להירשם לחשבון חינם כדי לקבל 15,000 דמויות בונוס וגישה למודלים פרמיה.
עבור מודלים פרמיה והגבלת קצב גבוהה יותר, אימות עם אסימון Bearer ב Authorization כותרת.
Authorization: Bearer sk-tts-your-api-key-here
SDKs
SDKים רשמיים מקלים על שילוב של 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');
כתובת בסיס
לדוגמה, נקודת הסיום של TTS היא:
קצב הגבלה
הגבלת קצב API משתנה על ידי תכנית:
| תוכנית | בקשות / min | במקביל | אורך טקסט מקסימאלי |
|---|---|---|---|
| חופשי | 10 | 2 | 500 chars |
| התחל@ title: window | 30 | 3 | 1,000,000 chars |
| בעד | 60 | 5 | 1,000,000 chars |
| Enterprise | 300 | 20 | 50,000 chars |
כל הכותרות כוללות כל תגובה: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.
עלויות אשראי
| שירות | מחיר | יחידה |
|---|---|---|
| TTS (דוגמניות חופשיות: פייפר, VITS, Melotts) | 1,000 תווים | לכל 1,000 תווים |
| TTS (דגמים סטנדרטיים: קוקורו, קוסי Voice 2, וכו'). | 2,000 תווים | לכל 1,000 תווים |
| TTS (דגמי פרמיום: צב, Chatterbox, וכו '). | 4,000 תווים | לכל 1,000 תווים |
| נאום לטקסט | 2,000 תווים | דקה של שמע |
| שיכפול קול | 4,000 תווים | לכל 1,000 תווים |
| משנה קול | 3,000 תווים | דקה של שמע |
| שיפור שמע | 2,000 תווים | דקה של שמע |
| Vocal Removal / Stem Splacking | 3,000-4,000 תווים | דקה של שמע |
| תרגום נאום | 5,000 תווים | דקה של שמע |
| שיחה קולית | 3,000 תווים | לפי תור |
| מוצא מקשים ו- BPM | חופשי | -- |
| ממיר שמע | חופשי | -- |
טקסט לדיבור
המרת טקסט לקול דיבור. מחזיר קובץ שמע בפורמט המבוקש.
מבקש גוף
| פרמטר | סוג | נדרש | תיאור |
|---|---|---|---|
| model | string | לא. | דוגמה ID (e.g., echokokoro*/ code), ecody*chatterbox*/ cody**formula_2/code_code/code). אם אנו בוחרים במודל התומך ב־* conduction*/ conduction***code*cokoro/ code* עבור en/ja/zh/ zh/ deit/ deit/hiptes/ hirufifyr / other languctions. |
| text | string | כן. | טקסט כדי להמיר לדיבור. קלטים ארוכים הם צד שרת אוטומטי-chunked. |
| voice | string | כן. | זיהוי קול (שימוש ב־ ) / V1/ voices/\\ {/ code) לרשימת הקולות הזמינים |
| format | string | לא. | פורמט פלט: Écode\\ code) / default (*code_wav*/ code), Ócode_flac) / code* |
| speed | float | לא. | מכפיל מהירות אם כבר מדברים. ברירת המחדל היא etcode >1.0/ code. ריינג': etquode0. 5*/ code > to etcond.0/ code |
| language | string | לא. | קוד השפה (e.g., equaden*/ code), etcodes () / code). Auto-decripted if defaulted. |
| instructions | string | לא. | Keywords: Accessing / Dission cues (É500 chars). e.g. kode |
| pronunciations | object | array | לא. | עקיפת ההגייה ל-request. או קידוד {\ {\ {\ an9} Name |
| stream | boolean | לא. | אפשר תגובת זרימה. ברירת מחדל: \\ קוד |
בקשת דוגמה
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
עטיפה של מספרים, תאריכים, מטבע, מספרי טלפון, ראשי תיבות ב־ \\ seay- as transcription- as
| פרשן- as | קלט | מדוברת כ |
|---|---|---|
cardinal | 1234 | one thousand two hundred thirty-four |
ordinal | 21 | twenty-first |
date | 1999-12-31 | דצמבר 31, 1999 |
time | 14:30 | two thirty PM |
telephone | +1-555-867-5309 | plus one five five five eight six seven… |
currency | $1,234.56 | one thousand two hundred thirty-four dollars and fifty-six cents |
spell-out | NASA | N A S A |
ברירת המחדל של פורמט התאריך היא etcode\\ comdy > for English and *code*dmy*/ code) במקום אחר; לעקוף עם etcode_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."
}
תגובה
The TTS endpoint queues your request and returns a JSON response with a job UUID. You then poll for the result.
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
Poll this endpoint every 1-2 seconds until status is completed or failed.
{
"status": "completed",
"result_url": "https://api.tts.ai/static/downloads/77b71db5.../output.mp3"
}
{
"status": "processing"
}
Step 3: Download audio
Fetch the 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)
Streaming alternative: For supported models (Kokoro, MeloTTS), use POST /v1/tts/stream/ for real-time Server-Sent Events (SSE) streaming — no polling needed.
נאום לטקסט
סמן אודיו לטקסט. תומך ב-99 שפות עם זיהוי אוטומטי.
מבקש גוף (multipart/form-data)
| פרמטר | סוג | נדרש | תיאור |
|---|---|---|---|
| file | file | כן. | קובץ שמע (MP3, WAV, FLAC, OGG, M4A, MP4, WebM). |
| model | string | לא. | מודל STT: *Whisphisper >/ confault (default), *codeer- whisphisper*/ code* |
| language | string | לא. | קוד שפה. קוד auto_/ code) עבור זיהוי אוטומטי (default). |
| timestamps | boolean | לא. | כלול חותמת זמן ברמת מילה. ברירת מחדל: ° code > / code |
| diarize | boolean | לא. | אפשר דיאריזציה של רמקול. ברירת מחדל: |
תגובה
{
"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 שניות מומלץ). מקס 20MB. |
| text | string | כן. | טקסט לדבר בקול המשובט. |
| model | string | לא. | מודל שכפול: etcode_chatterbox >/ conduction (default), *code_cosyould2/ code), etcode Égpt- sovits_/ code |
| format | string | לא. | פורמט פלט: Ócode >mp3/ code (default), *code_wav*/ code), Ócode_flac_/ code |
| language | string | לא. | קוד שפת היעד חייב להיות נתמך על ידי המודל הנבחר. |
תגובה
מחזיר את קובץ השמע כנתונים בינאריים, כמו נקודת הסיום של TTS.
משנה קול
המרת שמע לצליל כמו קול אחר. העלה שמע מקור ובחר קול יעד.
מבקש גוף (multipart/form-data)
| פרמטר | סוג | נדרש | תיאור |
|---|---|---|---|
| file | file | כן. | קובץ שמע מקור (MP3, WAV, FLAC). |
| target_voice | string | כן. | זיהוי קול היעד כדי להמיר ל (שימוש ב־ equode >/ v1/ coulds/ Kew/ code) לרשימת הקולות הזמינים |
| model | string | לא. | מודל המרת קול: etcode > openole*/ code (default), *code_knn- vc*/ code |
| format | string | לא. | פורמט פלט: Ócode_wav >/ confault (default), Ócode_mp3/ code |
בקשת דוגמה
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 | כן. | קובץ שמע מקור בשפה המקורית. מקס 100MB. |
| target_language | string | כן. | קוד השפה של המטרה (e.g., etcode), kode) |
| 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
}
נאום לדיבור
שנה סגנון דיבור, רגש או שליחה תוך שמירה על התוכן. שימושי כדי להתאים את הטון, לצעוד ולהביע הבעה.
מבקש גוף (multipart/form-data)
| פרמטר | סוג | נדרש | תיאור |
|---|---|---|---|
| file | file | כן. | קובץ שמע של מקור, מקס 50MB. |
| voice | string | כן. | זיהוי קול יעד עבור נאום היציאה |
| model | string | לא. | דגם: Kode > openoice >/ code (default), * Code ) Chatterbox >/ code |
| emotion | string | לא. | רגש היעד: □ neutral >/ code*, echode* happy*/ code*, etcode* / code* kode* |
| speed | float | לא. | התאמות מהירות. ברירת המחדל היא etcode.1. 0/ code. טווח: Ócode0. 5*/ code* 2. 0/ code |
תגובה
מחזיר את קובץ השמע בתור מידע בינארי.
כלי שמע
נקודות קצה לעיבוד קול לשיפור, הסרת קול, פיצול גזע, ועוד.
הגדל את איכות השמע: הטעייה, שיפור בהירות, רזולוציה סופר.
| 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 | פורמט פלט: Ócode_wav >/ code), ) conduction > / code_code_code_flac) |
הסר הד וReverb מהקלטות שמע.
| 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 | פורמט היעד: □ codument >/ code) / code_wav*/ code_, ) code_flac) / code), {codeg) / code* code* ac) / code* |
| bitrate integer | קצב פעימות פלט ב־ kbps: 64, 128, 192, 256, 320 |
| sample_rate integer | קצב הדגימה: 22050, 44100, 48000 |
| channels string | mono או stereo |
שיחה קולית
שלח אודיו או טקסט ולקבל תגובה AI עם דיבור מסונתז.
מבקש גוף (multipart/form-data או JSON)
| פרמטר | סוג | נדרש | תיאור |
|---|---|---|---|
| audio | file | לא.* | קלט אודיו (* audio) / code) or * code > Text > Query |
| text | string | לא.* | קלט טקסט (* audio) / code) or * code > Text > נדרש) |
| voice | string | לא. | קול לתגובת אינטליגנציה מלאכותית. ברירת מחדל: Écode >af_bella |
| tts_model | string | לא. | מודל TTS לתגובה. ברירת מחדל: Ócokoro >/ code |
| 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
}
Batch TTS
שלח טקסטים מרובים עבור דור TTS מקביל. אופציונלית לקבל קריאת הוק אינטרנט בחזרה כאשר כל העבודה הושלמה.
פרמטרים
| פרמטר | סוג | תיאור |
|---|---|---|
| texts | array | Array of objects: {text, model, voice}. Max 50 items. |
| webhook_url | string | כתובת אופציונלית לתוצאות POST כאשר הקבוצה מסתיימת. |
תגובה
{
"batch_id": "abc123",
"total": 3,
"completed": 0,
"status": "processing"
}
התקדמות סקר עם Get/v1/tts/batch/result/? batch_id=abc123
Embeding קול
Comput a coulding voice from reference advord. use the returned embed_id in follow voice revolutions for near-instant generation.
פרמטרים
| פרמטר | סוג | תיאור |
|---|---|---|
| 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, מודלים טעונים, וגודל תור. אין צורך באימות. cached במשך 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 | סינון לפי מספר־ זיהוי של מודל (למשל, קידוד) kokokoro >/ code) |
| language | string | סינון לפי קוד השפה (e.g., file_/code) |
| gender | string | סינון לפי מגדר: {\ woman} woman {\ code}, {echod} famille {code}, {code} {echod} {@} Name |
תגובה
{
"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 או WebVT. התוצאה היא מטמון בדיסק כך שקריאה שנייה לאותו Uuid היא קריאת דיסק.
פרמטרים שאילתה
| פרמטר | נדרש | תיאור |
|---|---|---|
| uuid | כן. | Objob UUID returned by /v1/tts / or /v1/ voice-clone /. |
| format | לא. | (default) or (*codt) / code_code. |
| download | לא. | ) conduction >/ code) כדי לשלוח את etcodent- Disiposition: attachment > / code) אז הדפדפן שומר במקום להציג. |
| language | לא. | רמז למודל ההיערכות (אוטו-נתפש אם יושמט). |
curl "https://api.tts.ai/v1/speech/subtitles/?uuid=$UUID&format=srt&download=1" -o subtitles.srt
מילון הגייה חדש
תגיד למנוע TTS איך לבטא מילים ספציפיות רשומות שמורות באופן אוטומטי לכל בקשת TTS שאתה עושה.
מבקש גוף (POST)
| פרמטר | סוג | תיאור |
|---|---|---|
| word | string | Word to overpress (e.g. equode > / code), *Anthropic). word- conduction matched. |
| replacement | string | איך לאיית את זה למודל (e.g. equff*/code), koden THROP ick_/code. |
| language | string | קוד ISO אופציונלי. ריק = חל על כל השפות. |
| case_sensitive | boolean | Default false. Match case exactly when 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-..."
באפשרותך גם לעבור עקיפה של כל בקשה מבלי לשמור אותם, כולל קידוד )/ conductions (/ code_ conductions) על כל vi1/tts/ call as an object or an array (ראו את endpoint parms).
מאמר קריין חדש
זרוק תווית בודדת של etcrip) / code) על כל עמוד מאמר ומבקרים לקבל בר קריאה קבוע המקריין את הדף בלחיצה. אוטומטי־ מחיק את גוף המאמר, תומך בקול מותאם אישית / תנוחה / צבע מבטא.
<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 | Publishable key (pk-tts...). |
data-voice | זיהוי קול. ברירת מחדל Éaf_bella*/ code. @ title: window |
data-model | זיהוי מודל TTS. ברירת מחדל Ócokoro*/ code) |
data-extract | (default) trys article/main/.post- contentent/. entry- contentent sectors, falls back to dumpst packet. or pass any CSS chector to polect a specificificant. |
data-position | {\ Code} bottom {\ code} (default) or {ecode} Top {* code} |
data-color | צבע מבטא (כל צבע CSS). ברירת המחדל היא EE60000/ code. |
data-min-chars / data-max-chars | דלג על הבר אם המאמר קצר יותר מ-min-chars (default 200). |
מקור ב־ GitHub: equia href=\\
הקשב לודג' ט כפתור
NAME OF TRANSLATORS
<script src="https://tts.ai/widget.js"
data-voice="af_bella"
data-model="kokoro"
data-style="full"
data-theme="light"></script>
קולות שמורים (שכפולים מתמידים)
העלה שמע הפניה פעם אחת, לקבל בחזרה קול_id מתמיד, לאחר מכן התייחסות ש-ID בבקשות TTS במקום להעלות מחדש אודיו כל שיחה. אידיאלי לאינטגרציות נפח גבוה.
העלה קול
POST
https://tts.ai/api/v1/user-voices/
Auth נדרש
phports: file (required, 5-30s adio), name (required), language (optional, default en), model (optional value), collections cosy2 for zh/ Ja/ko other opencole), configured_conformated (required, any ruthy value).
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"
}
השתמש בקול המוצל בטי-טי-אס.
POST to / api/v1/tts/ (NOTE: Web VPS host, not api.tts.ai) with user_could_id. אנו מעמיסים את השמע שלך ואת המסלול לצינור השיבוט.
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
Archive / represent (free) Name
קולות ארכיונים נשארים בחשבון שלך אבל אי אפשר להשתמש בהם בטי-טי-אס, שימושיים למשתמשים רדומים, כך שהרשימה שלך תישאר נקייה.
POST https://tts.ai/api/v1/user-voices/uv_a1b2c3d4e5f6/archive/
POST https://tts.ai/api/v1/user-voices/uv_a1b2c3d4e5f6/reactivate/
דוגמאות קוד
טקסט לדיבור
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
צפנים של שגיאה
כל השגיאות מחזירות תגובה של ג'ייסון עם 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 |
לא מספיק טיפוסים, לקנות יותר במחיר. |
| 403 | forbidden |
אין לך הרשאה לגשת למשאב זה (לדוגמה, לסקור עבודה של משתמש אחר). הגישה API עצמה כלולה בכל תוכנית. |
| 404 | not_found |
דגם או קול לא נמצאו. |
| 413 | file_too_large |
הקובץ המועלה עולה על הגבלת הגודל. |
| 429 | rate_limited |
יותר מדי בקשות. |
| 500 | internal_error |
שגיאה בשרת. נסה שוב מאוחר יותר. |
| 503 | model_loading |
הדגם נטען, נסה שוב בעוד כמה שניות. |
קרסי רשתName
עבור משימות ארוכות טווח (התפלגות סטם, אצווה TTS), באפשרותך לספק פרמטר קידוד >/ 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 ליישומים שלך.