POST/api/global-chatbot/demo/voice-speak
Transformă textul în vorbire (Text-to-Speech) pentru redarea audio de pe pagina de demo, dacă este activată.
`POST /api/global-chatbot/demo/voice-speak` transformă textul în vorbire, dacă funcția vocală este activată pentru demo. Endpoint-ul este folosit de pagina publică de demo și nu este destinat ca API general de conversie text-în-vorbire, utilizabil liber. Nu este necesară autentificarea în dashboard; în schimb, se aplică o verificare fixă a originii pentru `https://zentor-app.de` și `https://www.zentor-app.de`. Cererea conține textul de redat și opțiunile vocale prevăzute în schema documentată. Clientul ar trebui să trimită doar textul care trebuie efectiv rostit în dialogul demo. Intrările goale, formatele nevalide sau o funcție vocală neactivată trebuie tratate ca erori. O modificare locală a originii sau un apel de pe un domeniu străin nu ocolește verificarea de pe server. Operațiunea generează audio și, prin urmare, nu trebuie considerată o operațiune idempotentă de simplă citire. Trimiterea repetată a aceluiași text poate declanșa mai multe procesări. Interfața demo ar trebui să dezactiveze butonul de redare în timpul procesării și să oprească curat redările în curs înainte de a porni una nouă. Un flux realist începe cu un răspuns al botului în demo. Utilizatorul activează redarea vocală, pagina trimite textul răspunsului către `voice-speak`, primește datele audio, respectiv răspunsul audio documentat, și le redă în browser. Dacă cererea eșuează din cauza unei origini nepermise, interfața nu are voie să apeleze un serviciu de înlocuire oarecare, ci ar trebui să afișeze funcția vocală ca indisponibilă. Parolele, tokenurile sau conținutul confidențial nu își au locul în cerere. Canalul demo este public și nu este destinat datelor secrete ale companiei. Nici răspunsurile audio nu ar trebui stocate permanent în loguri publice. Endpoint-ul este separat tehnic de voicebotul SIP. Telefonia rulează în instanțe SIP izolate pentru fiecare tenant și este activată exclusiv de Master Admin; `voice-speak` nu controlează niciun număr de telefon și nu inițiază niciun apel telefonic. Pentru accesibilitate, demo-ul ar trebui să afișeze întotdeauna textul complet alături de ieșirea audio. Redarea vocală nu trebuie să conțină informații care lipsesc vizual. Browserele pot bloca redarea cât timp nu a avut loc nicio interacțiune a utilizatorului; de aceea, pornirea ar trebui declanșată în mod intenționat printr-un clic. Întreruperea și reluarea redării trebuie să fie posibile în mod controlat.
Autentificare și securitate
Nu este necesară autentificarea
Verificarea originii este fixată pe https://zentor-app.de / https://www.zentor-app.de (nu este configurabilă, înlocuiește tokenul de widget pe calea demo).
Idempotent: Da
Parametri
visitor_id(body, string, obligatoriu)— Trebuie să fie o UUID validătext(body, string, obligatoriu)— Text de transpus în vorbireExemplu de răspuns
{"ok":false,"error":{"code":"VOICE_UNAVAILABLE","message":"Funcția de vorbire nu este disponibilă în prezent."}}Coduri de eroare
400 INVALID_VISITOR_ID — lipsește visitor_id sau nu este o UUID validă.403 ORIGIN_DENIED — Sursa cererii nu este zentor-app.de.503 VOICE_UNAVAILABLE — Funcția de vorbire nu este disponibilă în prezent.Dovadă test live
Cazuri negative (400 INVALID_VISITOR_ID, 503 VOICE_UNAVAILABLE, fiecare cu antet Origin corect) verificate live. Există și o variantă GET a aceleiași căi (streaming nativ <audio src>, comportament identic). Echivalent demo al lui widget.voice_speak.