Τεκμηρίωση API
Ενσωμάτωση TTS.ai στις εφαρμογές σας με REST API μας. 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 σας από Ρυθμίσεις λογαριασμού. Διαθέσιμο στα σχέδια Pro και Enterprise.
URL βάσηςName
https://api.tts.ai/v1/
Auth
Σημάδι Bearer μέσω Authorization κεφαλίδα
Ταυτοποίηση
Όλες οι αιτήσεις API απαιτούν εξακρίβωση ταυτότητας μέσω ενός σήματος Bearer στο Authorization κεφαλίδα.
Authorization: Bearer sk-tts-your-api-key-here
URL βάσηςName
Όλα τα τελικά σημεία είναι σχετικά με αυτό το URL βάσης. Για παράδειγμα, το τελικό σημείο TTS είναι:
Όρια ποσοστών
Τα όρια του ποσοστού API ποικίλλουν ανάλογα με το σχέδιο:
| Σχέδιο | Αιτήσεις/λεπτό | Concurrent | Μέγιστο μήκος κειμένου |
|---|---|---|---|
| Pro | 60 | 5 | 5.000 chars |
| ΕντερπράιζCity name (optional, probably does not need a translation) | 300 | 20 | 50,000 chars |
Οι κεφαλίδες ορίου ταχύτητας περιλαμβάνονται σε κάθε απάντηση: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.
Πιστωτικά έξοδα
| Υπηρεσία | Κόστος | Μονάδα |
|---|---|---|
| TTS (Δωρεάν μοντέλα: Piper, VITS, MeloTTS) | 1 πίστωση | ανά 1.000 χαρακτήρες |
| TTS (τυπικά μοντέλα: Kokoro, CosyVoice 2, κ.λπ.) | 2 πιστώσεις | ανά 1.000 χαρακτήρες |
| TTS (Πremium μοντέλα: Tortoise, Chatterbox κ.λπ.) | 4 πιστώσεις | ανά 1.000 χαρακτήρες |
| Ομιλία προς κείμενο | 2 πιστώσεις | ανά λεπτό ήχου |
| Κλωνοποίηση φωνής | 4 πιστώσεις | ανά 1.000 χαρακτήρες |
| Αλλαγή φωνής | 3 πιστώσεις | ανά λεπτό ήχου |
| Ενίσχυση ήχου | 2 πιστώσεις | ανά λεπτό ήχου |
| Φωνητική αφαίρεση/Διαχωρισμός στέμματος | 3-4 πιστώσεις | ανά λεπτό ήχου |
| Μετάφραση λόγου | 5 πιστώσεις | ανά λεπτό ήχου |
| Φωνητική συνομιλία | 3 πιστώσεις | ανά στροφή |
| Κλειδί & BPM FinderName | Ατελώς | -- |
| Μετατροπέας ήχουName | Ατελώς | -- |
Κείμενο σε λόγο
Μετατροπή κειμένου σε ομιλία ήχου. Επιστρέφει το αρχείο ήχου με την αιτούμενη μορφή.
Αιτούμενος φορέας
| Παράμετρος | Τύπος | Απαιτείται | Περιγραφή εμπορευμάτων |
|---|---|---|---|
| model | string | Ναι. | Υπόδειγμα ID (π.χ., kokoro, chatterbox, piper) |
| text | string | Ναι. | Κείμενο για μετατροπή σε ομιλία (μέγ. 5.000 chars για Pro, 50.000 για Enterprise) |
| voice | string | Ναι. | Voice ID (use /v1/voices/ to list available voices) |
| format | string | Όχι. | Μορφότυπος εξόδου: mp3 (default), wav, flac, ogg |
| speed | float | Όχι. | Πολλαπλασιαστής ταχύτητας ομιλίας. Προκαθορισμένο: 1.0. Εύρος: 0.5 to 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
Απάντηση
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
Ομιλία προς κείμενο
Υποστηρίζει 99 γλώσσες με αυτόματη προστασία.
Αιτούμενος φορέας (multipart/form-data)
| Παράμετρος | Τύπος | Απαιτείται | Περιγραφή εμπορευμάτων |
|---|---|---|---|
| file | file | Ναι. | Αρχείο ήχου (MP3, WAV, FLAC, OGG, M4A, MP4, WebM). Max 100MB. |
| model | string | Όχι. | Μοντέλο STT: whisper (default), faster-wisper, sensevoice |
| language | string | Όχι. | Κωδικός γλώσσας. auto for auto-detection (default). |
| 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 | Όχι. | Μοντέλο Clone: chatterbox (default), cosyvoice2, gpt-sovits |
| format | string | Όχι. | Μορφότυπος εξόδου: mp3 (default), wav, flac |
| language | string | Όχι. | Ο κωδικός γλώσσας-στόχου πρέπει να υποστηρίζεται από το επιλεγμένο μοντέλο. |
Απάντηση
Επιστρέφει το αρχείο ήχου ως δυαδικά δεδομένα, όπως το τελικό σημείο TTS.
Αλλαγή φωνής
Μετατρέψτε τον ήχο για να ακούγεται σαν μια διαφορετική φωνή. Ανεβάστε τον ήχο πηγή και επιλέξτε μια φωνή στόχο.
Αιτούμενος φορέας (multipart/form-data)
| Παράμετρος | Τύπος | Απαιτείται | Περιγραφή εμπορευμάτων |
|---|---|---|---|
| file | file | Ναι. | Πηγή αρχείο ήχου (MP3, WAV, FLAC). Max 50MB. |
| target_voice | string | Ναι. | ID φωνής στόχου για μετατροπή σε (χρήση <κωδικοποιητή>/v1/φωνές/κωδ.> στη λίστα διαθέσιμων φωνών) |
| model | string | Όχι. | Μοντέλο μετατροπής φωνής: openvoice (default), knn-vc |
| format | string | Όχι. | Μορφότυπος εξόδου: wav (default), 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 | Ναι. | Πηγή αρχείο ήχου στην πρωτότυπη γλώσσα. Max 100MB. |
| target_language | string | Ναι. | Κωδικός γλώσσας-στόχου (π.χ., es, fr, de, ja) |
| 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 | Ναι. | ID φωνής στόχου για την ομιλία εξόδου |
| model | string | Όχι. | Υπόδειγμα: openvoice (default), chatterbox |
| emotion | string | Όχι. | Συναίσθημα στόχου: ουδέτερο , happy, sad, angry, excited |
| speed | float | Όχι. | Ρύθμιση ταχύτητας. Προκαθορισμένο: 1.0. Εύρος: 0.5 to 2.0 |
Απάντηση
Επιστρέφει το μεταμορφωμένο αρχείο ήχου ως δυαδικά δεδομένα.
Εργαλεία ήχου
Τελικά σημεία επεξεργασίας ήχου για την ενίσχυση, τη φωνητική αφαίρεση, τον διαχωρισμό των στελεχών, και πολλά άλλα.
Ενισχύστε την ποιότητα ήχου: denoise, βελτίωση της σαφήνειας, σούπερ ανάλυση.
| file file | Αρχείο ήχου για την ενίσχυση |
| denoise boolean | Ενεργοποίηση αποκωδικοποίησης (προεπιλογή: true) |
| 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 |
Αφαίρεση ηχώ και 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 | Μορφότυπος στόχος: mp3, wav, flac, ogg, m4a, aac |
| bitrate integer | bitrate εξόδου σε kbps: 64, 128, 192, 256, 320 |
| sample_rate integer | Ποσοστό δείγματος: 22050, 44100, 48000 |
| channels string | mono ή stereo |
Φωνητική συνομιλία
Στείλτε ήχο ή κείμενο και λάβετε μια απάντηση AI με συντεταγμένη ομιλία.
Αιτούμενος φορέας (multipart/form-data ή JSON)
| Παράμετρος | Τύπος | Απαιτείται | Περιγραφή εμπορευμάτων |
|---|---|---|---|
| audio | file | Όχι.* | Εισαγωγή ήχου (είτε audio είτε text required) |
| text | string | Όχι.* | Εισαγωγή κειμένου (είτε audio είτε text required) |
| voice | string | Όχι. | Φωνή για απόκριση AI. Προκαθορισμένο: af_bella |
| tts_model | string | Όχι. | Μοντέλο TTS για απόκριση. Προκαθορισμένο: kokoro |
| 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
}
Μοντέλα λίστας
Επιστρέφει μια λίστα με όλα τα διαθέσιμα μοντέλα με τις δυνατότητές τους.
Απάντηση
{
"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
}
]
}
Φωνές λίσταςName
Επιστρέφει μια λίστα με όλες τις διαθέσιμες φωνές, προαιρετικά φιλτραρισμένο από το μοντέλο ή τη γλώσσα.
Παράμετροι ερωτήσεων
| Παράμετρος | Τύπος | Περιγραφή εμπορευμάτων |
|---|---|---|
| model | string | Φίλτρο με ID μοντέλου (π.χ., koro) |
| language | string | Φίλτρο με κωδικό γλώσσας (π.χ., en) |
| gender | string | Φίλτρο ανά φύλο: αρσενικό , θήλυ , ουδέτερο |
Απάντηση
{
"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 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 |
Το μοντέλο φορτώνει, ξαναπροσπάθησε σε λίγα δευτερόλεπτα. |
ΓουέμπγουκςCity name (optional, probably does not need a translation)
Για εργασίες μεγάλης διάρκειας (split stem, TTS παρτίδα), μπορείτε να παρέχετε μια παράμετρο webhook_url. Όταν ολοκληρωθεί η εργασία, θα μετακινήσουμε το αποτέλεσμα στο 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 στις εφαρμογές σας.