תיעוד API

Integrate TTS.ai לתוך היישומים שלך עם שאר API שלנו תבנית תאימה OpenAI להגירה קלה.

מנוחה API OpenAI Compatable תגובות JSON תמיכה בזרימה

סקירה

TTS.ai.API מספק גישה תוכנית לכל מאפייני הפלטפורמה: סינתזה בין טקסט לדיבור, תמליל דיבור לטקסט, שיבוט קול, שיפור שמע ועוד. ה-API משתמש במוסכמות מנוחה סטנדרטיות עם גופי JSON בקשה/response.

מפתח API

קבל מפתח API שלך מ הגדרות חשבון. זמין על תוכניות פרו Enterprise.

כתובת בסיס

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

Auth

סמל נושא באמצעות Authorization כותרת

אימות

כל בקשות API דורש אימות באמצעות אסימון Bearer Authorization כותרת.

כותרת HTTP
Authorization: Bearer sk-tts-your-api-key-here
שמור על הסוד שלך API מפתח. אל תחלוק את זה בקוד של הלקוח, במאגרים ציבוריים או בולי עץ. סובב מפתחות באופן קבוע מהגדרות החשבון שלך.

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")
GitHub

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

כתובת בסיס

כתובת בסיס: https://api.tts.ai/v1/

לדוגמה, נקודת הסיום של TTS היא:

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

קצב הגבלה

הגבלת קצב API משתנה על ידי תכנית:

תוכנית בקשות / min במקביל אורך טקסט מקסימאלי
חופשי 10 2 500 chars
התחל@ title: window 30 3 100,000 chars
בעד 60 5 100,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 חופשי --
ממיר שמע חופשי --

טקסט לדיבור

POST /v1/tts/

המרת טקסט לקול דיבור. מחזיר קובץ שמע בפורמט המבוקש.

מבקש גוף

פרמטרסוגנדרשתיאור
model string כן. ID מודל (e.g., etcokokoro*/ code), Ócode) *chatterbox*/ code), echode* Fiper_/ code*
text string כן. טקסט כדי להמיר לדיבור (Max 100,000 chars לכל בקשה)
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.
stream boolean לא. אפשר תגובת זרימה. ברירת מחדל: \\ קוד

בקשת דוגמה

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

תגובה

מחזיר את קובץ השמע כנתונים בינאריים עם etcondio- Type*/code) header (*code Éaudio/mpeg), etcodedio/wav* / code, וכו').

כותרות תגובה
Content-Type: audio/mpeg
Content-Length: 48256
X-Credits-Used: 2
X-Credits-Remaining: 498

נאום לטקסט

POST /v1/stt/

סמן אודיו לטקסט. תומך ב-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 לא. אפשר דיאריזציה של רמקול. ברירת מחדל:

תגובה

תגובת 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 כן. אודיו קולי הפניה (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.

משנה קול

POST /v1/voice-convert/

המרת שמע לצליל כמו קול אחר. העלה שמע מקור ובחר קול יעד.

מבקש גוף (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
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 כן. קובץ שמע מקור בשפה המקורית. מקס 100MB.
target_language string כן. קוד השפה של המטרה (e.g., etcode), kode)
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 כן. קובץ שמע של מקור, מקס 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

תגובה

מחזיר את קובץ השמע בתור מידע בינארי.

כלי שמע

נקודות קצה לעיבוד קול לשיפור, הסרת קול, פיצול גזע, ועוד.

POST /v1/audio/enhance/

הגדל את איכות השמע: הטעייה, שיפור בהירות, רזולוציה סופר.

file fileקובץ שמע להגדלה
denoise booleanאפשר דינואה (ברירת מחדל: אמת)
enhance_clarity booleanהגדל בהירות הדיבור (ברירת מחדל: אמת)
super_resolution booleanאיכות שמע גבוהה (ברירת מחדל: שווא)
strength integer1-3 (אור, בינוני, חזק). ברירת מחדל: 2
POST /v1/audio/separate/

קולות נפרדים מאינסטרומנטליים (הסרת קול) או פיצול לגזעים.

file fileקובץ שמע להפרדה
model stringdemucs (ברירת מחדל) או spleeter
stems integerמספר הגבעולים: 2, 4, 5, או 6 (ברירת מחדל: 2)
format stringפורמט פלט: Ócode_wav >/ code), ) conduction > / code_code_code_flac)
POST /v1/audio/dereverb/

הסר הד וReverb מהקלטות שמע.

file fileקובץ שמע לתהליך
type stringecho or reverb (default: both)
intensity integer1-5 (default: 3)
POST /v1/audio/analyze/ חופשי

נתח אודיו כדי לזהות מפתח, 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"]
}
POST /v1/audio/convert/ חופשי

המרת שמע בין פורמטים.

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 stringmono או stereo

שיחה קולית

POST /v1/voice-chat/

שלח אודיו או טקסט ולקבל תגובה 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 לא. המשך בשיחה קיימת

תגובה

תגובת 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
}

Batch TTS

POST /v1/tts/batch/

שלח טקסטים מרובים עבור דור TTS מקביל. אופציונלית לקבל קריאת הוק אינטרנט בחזרה כאשר כל העבודה הושלמה.

פרמטרים

פרמטרסוגתיאור
textsarrayArray of objects: {text, model, voice}. Max 50 items.
webhook_urlstringOptional URL to POST results when batch completes.

תגובה

תגובת JSON
{
  "batch_id": "abc123",
  "total": 3,
  "completed": 0,
  "status": "processing"
}

התקדמות סקר עם Get/v1/tts/batch/result/? batch_id=abc123

Embeding קול

POST /v1/voice-embed/

Comput a coulding voice from reference advord. use the returned embed_id in follow voice revolutions for near-instant generation.

פרמטרים

פרמטרסוגתיאור
filefileReference audio file (WAV, MP3, FLAC).
modelstringCloning model (default: chatterbox). Supported: chatterbox, cosyvoice2, openvoice, gpt-sovits, spark, indextts2, qwen3-tts.

תגובה

תגובת JSON
{
  "embed_id": "emb_abc123",
  "model": "chatterbox",
  "duration_ms": 450
}

בדיקת בריאות

GET /v1/health/

בדוק מצב שרת GPU, מודלים טעונים, וגודל תור. אין צורך באימות. cached במשך 30 שניות.

תגובה

תגובת JSON
{
  "status": "online",
  "latency_ms": 45,
  "queue_size": 3,
  "models_loaded": ["kokoro", "chatterbox", "cosyvoice2"]
}

רשימת מודלים

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 סינון לפי מספר־ זיהוי של מודל (למשל, קידוד) kokokoro >/ code)
language string סינון לפי קוד השפה (e.g., file_/code)
gender string סינון לפי מגדר: {\ woman} woman {\ code}, {echod} famille {code}, {code} {echod} {@} Name

תגובה

תגובת 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
}

דוגמאות קוד

טקסט לדיבור

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')}")

נאום לטקסט

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)

טקסט לדיבור

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

נאום לטקסט

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

טקסט לדיבור

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

נאום לטקסט

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

צפנים של שגיאה

כל השגיאות מחזירות תגובה של ג'ייסון עם 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 התוצאה של הכתובת שלך.

Application of Webhook
{
  "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"
}
תוצאות הוובהוק זמינות להורדה למשך 24 שעות לאחר השלמתן. ודא להוריד אותן מיד.

מוכן לבנות?

קבל מפתח API שלך ולהתחיל שילוב TTS.ai ליישומים שלך.