Η υπηρεσία λειτουργεί σε δοκιμαστική λειτουργία — η beta δοκιμή βρίσκεται σε εξέλιξη. Είναι πιθανά σφάλματα.
Αρχική/Τεκμηρίωση API

Τεκμηρίωση API για ενσωματώσεις

REST API για voiceover, παραγωγή streaming, τον κατάλογο φωνών, τη δημιουργία της δικής σας φωνής και μεταγραφή.

# Text-to-speech (voice — id from GET /api/v1/voices) curl https://hancvoice.com/api/v1/tts \ -H "X-API-Key: $HANCVOICE_KEY" \ -H "Content-Type: application/json" \ -d '{ "voice": "de_at_f1", "text": "Hallo! Das ist HancVoice.", "language": "de" }' --output out.wav
import fs from "node:fs/promises"; const response = await fetch("https://hancvoice.com/api/v1/tts", { method: "POST", headers: { "X-API-Key": process.env.HANCVOICE_KEY, "Content-Type": "application/json" }, body: JSON.stringify({ voice: "de_at_f1", text: "Hallo! Das ist HancVoice.", language: "de" }) }); const audio = Buffer.from(await response.arrayBuffer()); await fs.writeFile("out.wav", audio);
import os, requests response = requests.post( "https://hancvoice.com/api/v1/tts", headers={ "X-API-Key": os.environ["HANCVOICE_KEY"], "Content-Type": "application/json", }, json={ "voice": "de_at_f1", "text": "Hallo! Das ist HancVoice.", "language": "de", }, ) open("out.wav", "wb").write(response.content)
REST
διεπαφή ενσωμάτωσης
Μηχανή
παραγωγή voiceover
318
φωνές στον κατάλογο
WAV
μορφή απάντησης API
Δυνατότητες

Σχεδιασμένο για ενσωμάτωση

Σύγχρονη παραγωγή

Ένα αίτημα POST επιστρέφει ένα έτοιμο αρχείο WAV.

REST χωρίς SDK

Παραδείγματα για cURL, Node.js και Python μέσω απλού HTTP.

Λειτουργία streaming

Ένα ξεχωριστό endpoint για σενάρια streaming.

10 γλώσσες + Auto

Ένα endpoint, η παράμετρος γλώσσας: ρωσικά, αγγλικά, γερμανικά, γαλλικά, ισπανικά, ιταλικά, πορτογαλικά, κινέζικα, ιαπωνικά και κορεατικά.

Σύστημα, προσαρμοσμένες και παραλλαγές

Χρησιμοποιήστε τη βιβλιοθήκη, αποθηκευμένες προσαρμοσμένες φωνές και παραλλαγές ήχου.

Φιλοξενία EU

Διακομιστές σε EU, GDPR.

Αναφορά

API v1 — endpoints

GET/api/v1/voicesΚατάλογος φωνών: id, γλώσσα, φύλο, στυλ, άδεια, δείγμα
GET/api/v1/voices/{voice}/avatarAvatar φωνής (ανεβασμένη εικόνα ή παραγόμενο gradient)
GET/api/v1/languagesΥποστηριζόμενες γλώσσες: κωδικός, όνομα, βαθμίδα, αριθμός φωνών
POST/api/v1/ttsΣύνθεση ομιλίας → WAV ή MP3 (παράμετρος format)
POST/api/v1/tts_streamΣυνθετική ροή (chunked PCM) για χαμηλή καθυστέρηση — καθαρή ροή χωρίς post-effects και χωρίς mp3
POST/api/v1/voices/createΔημιούργησε μια φωνή: name, audio_b64 (≤10 MB base64), ref_text (=audio λέξη προς λέξη), consent="voice-data-consent,privacy", language? → voice id
GET/api/v1/voices/mineΟι δικές σου φωνές (δημιουργημένα clones + αγορασμένες): voice (slug), name, language, kind, sample_url — απαιτείται API key
POST/api/v1/transcribeΜεταγραφή ενός σύντομου αποσπάσματος: audio_b64, language? (πλήρες όνομα) → text. Η διάρκεια μετρά στο μηνιαίο όριο minutes μεταγραφής του πλάνου
GET/api/v1/statusΕτοιμότητα μηχανής (πράκτορες σε πραγματικό χρόνο): ready, model_ready, engine_up, latency_ms
POST/api/v1/warmupΠροθέρμανε τη μηχανή πριν από μια κλήση (χωρίς χρέωση χαρακτήρων)

GET /api/v1/voices — φίλτρα: q (αναζήτηση με όνομα/style), language (ru, en, de…), gender (male/female), limit (προεπιλογή 200, μέγιστο 500), offset. Πέρασε το πεδίο voice από την απάντηση στο POST /tts.

# GET /api/v1/voices?language=ru&gender=male&limit=200 { "object": "list", "total": 152, "count": 152, "voices": [ { "voice": "de_at_f1", "name": "Greta", "language": "de-AT", "gender": "female", "style": "Young", "description": "Female voice — Austrian German, young, joyful, for presentations.", // in the response language (?locale=) "labels": { // filter on the *_key fields: they are stable and never translated "gender": "female", "language": "de-AT", "language_name": "Austrian German", "accent": "Austrian German", "age": "young", // age is "" unless the catalogue marks it "style": "Young", "style_key": "young", "use_case": "presentations", "use_case_key": "presentations", "emotion": "joyful", "emotion_key": "joyful" }, "license": "commercial", "badge": null, // null | "beta" | "soon" (soon = synthesis disabled) "sample_url": "https://hancvoice.com/api/v1/voices/de_at_f1/sample", // permanent link, redirects to the current file "avatar_url": "https://hancvoice.com/api/v1/voices/de_at_f1/avatar" } ] }

Άβαταρ & γλώσσες. Άβαταρ: 302 στην εικόνα ή σε μια SVG gradient — βάλ’ το απευθείας στο <img>. Γλώσσες: tier = main (ready) | beta | soon.

# GET /api/v1/languages — supported languages (code, name, tier, voice count) { "object": "list", "total": 24, "languages": [ { "code": "de", "name": "German", "native_name": "Deutsch", "tier": "main", "voice_count": 32 } ] } # GET /api/v1/voices/{voice}/avatar → 302 to image, or a generated SVG. Use directly in <img src>. <img src="https://hancvoice.com/api/v1/voices/de_at_f1/avatar" width="64" />
Πρόσβαση

Ταυτοποίηση

Όλα τα endpoints απαιτούν ένα API key: την κεφαλίδα X-API-Key: <key> ή Authorization: Bearer <key> (εκτός από GET /api/v1/voices, GET /api/v1/status, GET /api/v1/languages και GET /api/v1/voices/{voice}/avatar — open). Το κλειδί δημιουργείται στον λογαριασμό σου → στην ενότητα “API”; το API είναι διαθέσιμο από το Starter plan και πάνω (αλλιώς 403). Η σύνθεση χρεώνει χαρακτήρες στο πλάνο του κλειδιού — με μηδενικό υπόλοιπο επιστρέφει 402. Το rate limit είναι ανά πλάνο: Starter — 30 αιτήσεις/λεπτό, Pro — 120, Business — 300, Scale — 600 (fallback 60); αν το ξεπεράσεις → 429, η κεφαλίδα Retry-After.

POST /api/v1/tts

Παράμετροι

voiceID φωνής από το GET /api/v1/voices. ⚠️ Αν το πεδίο λείπει, η σύνθεση επιστρέφει στην προεπιλεγμένη φωνή (de_at_n1) και οι χαρακτήρες χρεώνονται κανονικά — πέρασε πάντα το ID ρητά.
textκείμενο προς φωνή; το μέγιστο μήκος εξαρτάται από το πλάνο του κλειδιού (απαιτείται)
languageΣυνήθως δεν χρειάζεται: η γλώσσα αναγνωρίζεται από το κείμενο και η φωνή διαβάζει το κείμενο σε αυτή τη γλώσσα. Χωρίς προφορά η φωνή ακούγεται μόνο στις δικές της γλώσσες — verified_languages στο GET /api/v1/voices· σε άλλες γλώσσες διατηρεί την προφορά της και η απάντηση το δηλώνει: X-Synthesis-Language, X-Voice-Language, X-Language-Verified: false. Η παράμετρος λαμβάνεται υπόψη μόνο για φωνή χωρίς δική της γλώσσα, όταν το κείμενο είναι πολύ σύντομο για να αναγνωριστεί η γλώσσα: de, en, ru, fr, es, it, pt, zh, ja, ko (επίσης de-DE, en-US …) και πλήρη ονόματα (German, English …). Επίσης Auto: η μηχανή ανιχνεύει τη γλώσσα από το κείμενο — ο μόνος τρόπος να συνθέσεις μια beta γλώσσα με τη δική σου φωνή.
instructσυναίσθημα/style στα Αγγλικά, π.χ. "calm, friendly" (προαιρετικό)
emotionσυναίσθημα studio-voice (για φωνές με ηχογραφημένες συναισθηματικές αναφορές): χαρούμενο, ενθουσιασμένο, τρυφερό, ήρεμο, λυπημένο, σοβαρό, τεταμένο, θυμωμένο, φοβισμένο, έκπληκτο (προαιρετικό· χωρίς την παράμετρο — ουδέτερο)
saturationκορεσμός/αρμονικό «χρωματισμό» του ηχοχρώματος (μεταεπεξεργασία): {"preset":"tube"|"tape"|"air","intensity":0–1} (προαιρετικό)
speedρυθμός ομιλίας 0.5–2.0 (προαιρετικό) Τιμές εκτός εύρους περικόπτονται στο πλησιέστερο όριο· η απάντηση τότε περιέχει X-Effects-Failed: speed_clamped_to_….
gain_dbένταση −24…+24 dB (προαιρετικό)
eqισοσταθμιστής ηχοχρώματος: {"bands":[{"hz":80,"db":4}, …]} (προαιρετικό)
effectπροεπιλογή ήχου: radio, audiobook, podcast, phone, cinematic, megaphone, vintage, deep, bright, warm, narrator_warm, intimate, spacious, whisper, concert; χαρακτήρες: robot, cartoon, chipmunk, monster, villain, echo_hall; studio: studio_announcer, studio_natural, studio_rich. Premium εφέ (characters, studio, cinematic, concert, megaphone, vintage) — μόνο στα επί πληρωμή πλάνα, αλλιώς αγνοούνται (προαιρετικό)
seedένας αριθμός για ντετερμινιστική επανάληψη του ίδιου voiceover (προαιρετικό)
cleantrue — νευρωνική αποθορυβοποίηση (ξεχωριστά από το effect, προαιρετικό)
backgroundφόντο/ατμόσφαιρα: rain, thunder, sea, forest, birds, wind, stream, night, street, cafe, crowd, fire (προαιρετικό)
bg_levelένταση φόντου 0.05–0.8 (προαιρετικό, προεπιλογή 0.25)
lead_silence_msσιωπή στην αρχή του ήχου, ms (προαιρετικό, για agents· προεπιλογή 0)
format"wav" (προεπιλογή) ή "mp3" (προαιρετικό)
response_formatΈξοδος τηλεφωνίας (B2B/IVR): g711_alaw_8k, g711_ulaw_8k, g722_16k, opus, pcm_s16le_24k. Η απάντηση είναι η ροή κωδικοποιητή + κεφαλίδα X-Audio-Format (προαιρετικό)
containerμόνο με response_format: wav (container, προεπιλογή) ή raw (ακατέργαστα frames για SIP/RTP) (προαιρετικό)

Η απάντηση είναι ένα δυαδικό αρχείο ήχου: audio/wav ή audio/mpeg (αν format=mp3)· για τηλεφωνικό response_format, το αντίστοιχο container του κωδικοποιητή (δείτε X-Audio-Format).

POST /api/v1/tts_stream

Σύνθεση streaming

Δέχεται voice, text, language, instruct, speed, gain_db, eq, effect, background, bg_level, saturation, seed και segments (έως 40 στοιχεία: text, instruct έως 200 χαρακτήρες, silence 0–3000 ms). Απάντηση: ακατέργαστο PCM — 24 kHz, 16-bit, μονοφωνικό, little-endian (application/octet-stream, chunked)· δεν υπάρχει WAV header, ορίστε εσείς το sample rate.

# POST /api/v1/tts_stream → PCM stream (application/octet-stream, chunked) { "voice": "de_at_f1", "text": "Hallo! Das ist Streaming-Synthese.", "language": "de" }
POST /api/v1/voices/create

Δημιουργία φωνής

nameόνομα φωνής (απαιτείται)
audio_b64δείγμα ηχογράφησης σε base64, ≤10 MB (απαιτείται)
ref_textΑπομαγνητοφώνηση της ηχογράφησης — λέξη προς λέξη, μέγιστο 2000 χαρακτήρες (περισσότερο → 400 ref_text_too_long). Αν το κείμενο δεν ταιριάζει με τον ήχο, η φωνή ακούγεται παραμορφωμένη.
consentσυμβολοσειρά συναίνεσης — περάστε ακριβώς "voice-data-consent,privacy" (δεδομένα φωνής, GDPR); χωρίς αυτό — 400 (απαιτείται)
languageγλώσσα δείγματος, πλήρες όνομα (Russian, English…) ή κωδικός ISO· προεπιλογή German (προαιρετικό)

Περάστε το πεδίο voice από την απόκριση στο POST /tts. Η τιμή voice παρακάτω είναι ενδεικτικό παράδειγμα· το πραγματικό αναγνωριστικό προέρχεται από την απόκριση. Η δημιουργία δικής σας φωνής είναι διαθέσιμη σε επί πληρωμή πλάνο· ο αριθμός των δικών σας φωνών είναι απεριόριστος — η δημιουργία μίας κοστίζει 25.000 χαρακτήρες από το υπόλοιπό σας (η αποθήκευση και η χρήση της είναι δωρεάν).

# Response — 200 OK (voice value is an example) { "ok": true, "voice": "usr_a1b2c3", "name": "My voice", "language": "German" }
GET /api/v1/voices/mine

Οι δικές σας φωνές

Το GET /api/v1/voices επιστρέφει μόνο το δημόσιο κατάλογο. Για να δείτε ΤΙΣ ΔΙΚΕΣ ΣΑΣ φωνές — τόσο όσες δημιουργήθηκαν μέσω API όσο και όσες δημιουργήθηκαν στον λογαριασμό/στούντιό σας — κάντε αυθεντικοποίηση με το API key σας και καλέστε αυτό το endpoint. Επιστρέφει τα δικά σας κλώνους (kind="own") και φωνές που αγοράστηκαν στο Marketplace (kind="marketplace"). Περάστε το πεδίο voice (slug) στο POST /api/v1/tts.

# GET /api/v1/voices/mine — your own voices (API key required) curl https://hancvoice.com/api/v1/voices/mine \ -H "X-API-Key: $HANCVOICE_KEY" # Response — 200 OK { "object": "list", "count": 1, "voices": [ { "voice": "usr_a1b2c3", "name": "My voice", "language": "German", "gender": null, "kind": "own", "sample_url": "https://hancvoice.com/voice-samples/usr_a1b2c3.wav", "avatar_url": "https://hancvoice.com/generated-audio/voice-avatars/usr_a1b2c3.webp" } ] }

Το gender είναι null για τις δικές σας φωνές (δεν αποθηκεύεται)· το sample_url μπορεί να είναι null αν δεν υπάρχει δείγμα. Όταν γίνεται σύνθεση με τη δική σας φωνή, η γλώσσα λαμβάνεται από τη φωνή και υπερισχύει της παραμέτρου language στο POST /tts.

Πλήρης ροή copy-paste — δημιουργία, λίστα, σύνθεση (αντικαταστήστε το παράδειγμα κλειδιού με το δικό σας από Account → API):

# Full own-voice flow — create → list (mine) → synthesize. # Example key below — replace it with your own key from Account → API. KEY="sk-live-9f3c1a7b4e2d8c6f0a5b3e1d7c9f2a4b6d8e0c1a3f5b7d9e" # 1) Create your voice (skip if you already have one in your account) curl -X POST https://hancvoice.com/api/v1/voices/create \ -H "X-API-Key: $KEY" -H "Content-Type: application/json" \ -d '{"name":"My voice","ref_text":"exact transcript of the recording","audio_b64":"<24kHz sample, base64>","consent":"voice-data-consent,privacy"}' # → {"ok":true,"voice":"usr_a1b2c3","name":"My voice","language":"German"} # 2) List your own voices → take the "voice" (slug) curl https://hancvoice.com/api/v1/voices/mine -H "X-API-Key: $KEY" # 3) Synthesize with your voice curl -X POST https://hancvoice.com/api/v1/tts \ -H "X-API-Key: $KEY" -H "Content-Type: application/json" \ -d '{"voice":"usr_a1b2c3","text":"Hallo, das ist meine eigene Stimme.","language":"de"}' --output out.wav
POST /api/v1/transcribe

Απομαγνητοφώνηση

audio_b64ήχος σε base64· προορίζεται για σύντομο απόσπασμα (απαιτείται)
languageμόνο το ΠΛΗΡΕΣ όνομα της γλώσσας: Russian, English, German, French, Italian, Spanish, Portuguese, Chinese, Japanese, Korean — συν 14 beta γλώσσες (Bulgarian, Czech, Greek, Ukrainian, Polish και άλλες) ως υπόδειξη αναγνώρισης, και το κυριολεκτικό "auto" (οι κωδικοί ISO ΔΕΝ γίνονται δεκτοί εδώ, σε αντίθεση με το /tts· χωρίς την παράμετρο — αυτόματη ανίχνευση) (προαιρετικό)

Οι χαρακτήρες χρεώνονται ανά πλάνο (≈1 λεπτό ήχου = 1000 χαρακτήρες)· ισχύει το μηνιαίο όριο του πλάνου σε λεπτά απομαγνητοφώνησης.

# Response — language = vom Engine erkannter ISO-Code (z. B. de, en, ru) { "text": "Transkribierter Text des Fragments.", "language": "de" }
GET /api/v1/status · POST /api/v1/warmup

Κατάσταση και προθέρμανση

GET /api/v1/status (χωρίς κλειδί) — ετοιμότητα του κινητήρα για πραγματικό χρόνο. POST /api/v1/warmup (με κλειδί· δεν χρεώνει χαρακτήρες) προθερμαίνει τον κινητήρα πριν από μια σειρά κλήσεων.

# GET /api/v1/status { "ready": true, "model_ready": true, "engine_up": true, "latency_ms": 42 }
# POST /api/v1/warmup { "ok": true, "warmed": true, "warm_ms": 318 }
Απόκριση

Κεφαλίδες και το πεδίο code

Content-Typeaudio/wav ή audio/mpeg (ανάλογα με την παράμετρο format)· για /tts_stream — application/octet-stream
X-Effects-Failedεφέ που ΔΕΝ εφαρμόστηκαν (στην μηχανή ή περικόπηκαν από το πλάνο), χωρισμένα με κόμματα — ο ήχος επιστρέφει χωρίς αυτά
X-CacheHIT / MISS — αν η απόκριση προήλθε από την κρυφή μνήμη. Σημείωση: με API key, ένα cache HIT χρεώνεται όπως ένα MISS (η κρυφή μνήμη εξοικονομεί χρόνο δημιουργίας, όχι χαρακτήρες).
Retry-Afterσε 429 — σε πόσα δευτερόλεπτα να γίνει νέα προσπάθεια του αιτήματος

Το πεδίο code στο σώμα σφάλματος (αναγνώσιμο από μηχανή): plan_required — χρειάζεται ανώτερο πλάνο· voice_limit — το όριο φωνών του πλάνου· plan_quota — το μηνιαίο όριο λεπτών μεταγραφής έχει εξαντληθεί· email_unverified — επαληθεύστε το email σας· voice_conflict — το όνομα της φωνής είναι ήδη σε χρήση (κατά τη δημιουργία φωνής).

Κωδικοί απόκρισης

Σφάλματα

200Επιτυχία — το σώμα της απόκρισης περιέχει το αρχείο ήχου
400Κατεστραμμένο JSON ή κενό κείμενο. Άγνωστη γλώσσα επιστρέφει το 4xx του engine (π.χ. 400) με κωδικό engine_bad_request — το ίδιο και στα /v1/tts και /v1/tts_stream
401Λείπει ή είναι άκυρο το API key (X-API-Key / Authorization header)
402Δεν υπάρχουν αρκετοί χαρακτήρες στο υπόλοιπο του κλειδιού — ανανεώστε το πλάνο
403Η λειτουργία δεν είναι διαθέσιμη στο τρέχον πλάνο (π.χ. API — από Starter, custom voice — από επί πληρωμή πλάνο) ή δεν υπάρχει πρόσβαση στη φωνή
409Σύγκρουση (voice_conflict): μια φωνή με αυτό το όνομα υπάρχει ήδη — επιλέξτε άλλο όνομα κατά τη δημιουργία φωνής
413Το αρχείο είναι πολύ μεγάλο: για custom voice ο ήχος είναι >10 MB (base64)
429Υπέρβαση ορίου ρυθμού (ανά πλάνο: Starter 30, Pro 120, Business 300, Scale 600 ανά λεπτό· /voices/create 5/min, /warmup 20/min). Τηρήστε την κεφαλίδα Retry-After. Κωδικός: rate_limited. Ξεχωριστά: concurrency_limit (επίσης 429) σημαίνει πάρα πολλά ταυτόχρονα εκτελούμενα αιτήματα ενός λογαριασμού (ανά πακέτο: Starter 2, Pro 3, Business 4, Scale 6 συνθέσεις παράλληλα) — επαναλάβετε μόλις ολοκληρωθεί ένα. Χωρίς Retry-After, καθώς η αναμονή εξαρτάται από το δικό σας αίτημα.
500Εσωτερικό σφάλμα (π.χ. η βάση δεδομένων δεν είναι διαθέσιμη στο GET /v1/voices) — δοκιμάστε ξανά αργότερα.
502Ο engine σύνθεσης/μεταγραφής δεν απάντησε (Bad Gateway) — περιμένετε λίγο και δοκιμάστε ξανά
503Ο engine κοιμάται/δεν είναι διαθέσιμος ή η υπηρεσία είναι υπερφορτωμένη — δοκιμάστε ξανά σε λίγα δευτερόλεπτα

Το σώμα του σφάλματος είναι JSON { "error": "description", "code": "machine-readable" }. Πιθανές τιμές code: auth_required, plan_required, rate_limited, concurrency_limit, no_credits, voice_create_credits, bad_request, empty_text, text_too_long, ref_text_too_long, name_too_long, voice_limit, voice_conflict, voice_access, plan_quota, no_audio, engine_busy, engine_unavailable, engine_error, billing_unavailable, temporarily_unavailable. Σε αποτυχία δεν χρεώνονται χαρακτήρες — εκτός αν ο πελάτης διακόψει ένα stream (ο ήχος που παραδόθηκε χρεώνεται αναλογικά).

Όλοι οι κωδικοί σφάλματος

Πλήρης λίστα μηχανικών κωδικών στο πεδίο code: auth_required (401) · plan_required (403, API από Starter) · text_too_long, bad_request, name_required, ref_text_required, ref_text_too_long, name_too_long, audio_b64_required, consent_required, voice_required (400) · voice_access · voice_not_found (404) · no_credits (402) · body_too_large, audio_too_large (413) · concurrency_limit (429, concurrency) · rate_limited (429, με Retry-After) · engine_bad_request (engine 4xx) · engine_error, engine_unavailable, engine_not_configured, temporarily_unavailable, mp3_failed, telephony_failed, transcribe_failed (5xx) · client_abort (499, ο πελάτης διέκοψε τη σύνδεση).

Λεπτομέρειες

Πρακτικές λεπτομέρειες που είναι εύκολο να σας ξεφύγουν: το σώμα του αιτήματος περιορίζεται σε 2 MB για τα /v1/tts και /v1/tts_stream (αλλιώς 413) και σε base64 30 MB για το /v1/transcribe · το speaker είναι συνώνυμο του voice · ο δείκτης παύσης ‖ (U+2016) που τοποθετείται στο κείμενο δίνει ακριβώς 400 ms σιωπής · το instruct περικόπτεται σιωπηλά σε 500 χαρακτήρες και το lead_silence_ms περιορίζεται σε 5000 · χωρίς seed χρησιμοποιείται η τιμή 4242, ώστε η έξοδος να είναι αναπαραγώγιμη από προεπιλογή (αλλάξτε μόνοι σας το seed αν θέλετε διαφοροποίηση) · χωρίς language θεωρείται τα Γερμανικά · το GET /v1/languages δέχεται ?locale · το όριο ρυθμού μετράται ξεχωριστά ανά endpoint· τα δικά του όρια: /voices/create 5/min, /warmup 20/min, /voices/mine 60/min, ανοιχτά GET endpoints 120/min ανά IP · το POST /v1/voices/clone είναι ψευδώνυμο του /voices/create.

Κατάλογος

Εφέ και φόντα

Η παράμετρος effect — μία προεπιλογή ανά αίτημα. Τα δωρεάν είναι διαθέσιμα σε όλους· τα premium — σε επί πληρωμή πακέτα.

Παράδοση (δωρεάν)radio — ξηρή μετάδοση · audiobook — audiobook · narrator_warm — θερμός αφηγητής · podcast — podcast · phone — τηλέφωνο · intimate — κοντινό · spacious — ευρύ · whisper — ψίθυρος · deep — πιο χαμηλό · bright — πιο φωτεινό · warm — πιο θερμό
Στούντιο (premium)studio_announcer — εκφωνητής μετάδοσης · studio_natural — φυσικό στούντιο · studio_rich — πλούσιο «ακριβό» · cinematic — κινηματογραφικό · concert — αίθουσα · megaphone — μεγαφωνο · vintage — vintage
Χαρακτήρες (premium)robot — ρομπότ · cartoon — καρτουνίστικο · chipmunk — chipmunk · monster — τέρας · villain — κακός · echo_hall — αίθουσα ηχούς
Φόντα (φόντο)Φύση: rain (βροχή) · thunder (καταιγίδα) · sea (θάλασσα) · forest (δάσος) · birds (πουλιά) · wind (αέρας) · stream (ρυάκι) · night (νύχτα). Πόλη: street (δρόμος) · cafe (καφέ) · crowd (πλήθος). Ζεστό: fire (τζάκι). Ένταση — bg_level 0.05–0.8
eq (ηχόχρωμα)8 ζώνες: 80, 160, 300, 600, 1500, 3500, 6500, 10500 Hz, καθεμία −12…+12 dB. Παράδειγμα: {"bands":[{"hz":80,"db":-4},{"hz":3500,"db":3}]} — αφαιρέστε το βούισμα, προσθέστε καθαρότητα
Ποσοστώσεις

Όρια

Ρυθμός αιτημάτωνανάλογα με το πλάνο του κλειδιού: Starter — 30/λεπτό, Pro — 120/λεπτό, Business — 300/λεπτό, Scale — 600/λεπτό. Τερματικά με δικό τους σκληρό όριο, ανεξάρτητα από το πλάνο: POST /v1/voices/create — 5/λεπτό, POST /v1/warmup — 20/λεπτό, GET /v1/status — 60/λεπτό ανά IP, GET /v1/voices — 120/λεπτό ανά IP.
Μήκος κειμένουοι μέγιστοι χαρακτήρες ανά POST /api/v1/tts εξαρτώνται από το πλάνο του κλειδιού
Υπόλοιπο χαρακτήρωνη σύνθεση χρεώνει χαρακτήρες στο πλάνο του κλειδιού· με μηδενικό υπόλοιπο — 402
Απομαγνητοφώνηση≈1 λεπτό ήχου = 1000 χαρακτήρες· ισχύουν οι μηνιαίες μονάδες του πλάνου: Pro 100, Business 300, Scale 800 λεπτά. Τα Free και Starter ΔΕΝ περιλαμβάνουν απομαγνητοφώνηση — το API απαντά 403 (plan_required). Εξαντλημένη ποσόστωση → 403 (plan_quota).
Μέγεθος αρχείουδημιουργία φωνής: δείγμα ≤10 MB (base64), αλλιώς 413
Παράδειγμα

Πλήρες αίτημα

POST /api/v1/tts { "voice": "cml_de", "text": "Heute ist das Wetter wunderbar.", "language": "de", "instruct": "calm, friendly", "speed": 1.0, "effect": "podcast", "eq": { "bands": [ { "hz": 3500, "db": 3 } ] }, "background": "rain", "bg_level": 0.2, "format": "mp3" } → 200 OK, Content-Type: audio/mpeg (binary file)

Αποκτήστε ένα κλειδί σε ένα λεπτό

Αποκτήστε ένα API key →
POST /api/v1/ttsGET /api/v1/voicesAPI σελίδα SEO