POST/api/global-chatbot/demo/voice-speak
Convierte texto a voz (Text-to-Speech) para la salida de audio en la página demo, si está activada.
`POST /api/global-chatbot/demo/voice-speak` convierte texto a voz cuando la función de voz está activa para la demo. El endpoint se utiliza en la página demo pública y no está concebido como API general de Text-to-Speech. No requiere autenticación de dashboard, pero aplica una comprobación fija de Origin para `https://zentor-app.de` y `https://www.zentor-app.de`. La solicitud contiene el texto que debe reproducirse y las opciones de voz previstas por el esquema documentado. El cliente solo debe enviar texto que realmente deba pronunciarse en el diálogo demo. Entradas vacías, formatos inválidos o una función de voz desactivada deben tratarse como error. Cambiar localmente la Origin o llamar desde otro dominio no elude la comprobación del servidor. La operación genera audio y por ello no debe tratarse como una lectura idempotente pura. Enviar varias veces el mismo texto puede iniciar varias operaciones de procesamiento. La interfaz demo debe deshabilitar el botón mientras se procesa y finalizar correctamente una reproducción en curso antes de iniciar otra. Un flujo realista empieza con una respuesta del bot en la demo. El usuario activa la salida de voz; la página envía el texto de respuesta a `voice-speak`, recibe los datos de audio o la respuesta de audio documentada y la reproduce en el navegador. Si la solicitud falla por una Origin no permitida, la interfaz no debe invocar un servicio de sustitución arbitrario, sino mostrar la función de voz como no disponible. No deben enviarse contraseñas, tokens ni contenidos confidenciales. El canal demo es público y no está destinado a datos empresariales secretos. Las respuestas de audio tampoco deberían almacenarse permanentemente en logs públicos. Este endpoint está técnicamente separado del SIP-Voicebot. La telefonía funciona en instancias SIP aisladas por tenant y solo Master Admin la activa; `voice-speak` no controla números ni inicia llamadas. Por accesibilidad, la demo debe mostrar siempre el texto completo además del audio. La voz no debe contener información ausente visualmente. Los navegadores pueden bloquear la reproducción hasta que haya una interacción del usuario, por lo que el inicio debe realizarse mediante clic. La cancelación y nueva reproducción deben poder controlarse correctamente.
Autenticación y seguridad
No se requiere autenticación
Comprobación de Origin fijada en https://zentor-app.de / https://www.zentor-app.de (no configurable, sustituye al Widget-Token en la ruta de demo).
Idempotente: Sí
Parámetros
visitor_id(body, string, obligatorio)— Debe ser un UUID válidotext(body, string, obligatorio)— Texto que debe convertirse a vozRespuesta de ejemplo
{"ok":false,"error":{"code":"VOICE_UNAVAILABLE","message":"Sprachfunktion aktuell nicht verfügbar."}}Códigos de error
400 INVALID_VISITOR_ID — Falta visitor_id o no es un UUID válido.403 ORIGIN_DENIED — La Origin de la solicitud no es zentor-app.de.503 VOICE_UNAVAILABLE — La función de voz no está disponible actualmente.Evidencia de prueba en vivo
Casos negativos (400 INVALID_VISITOR_ID, 503 VOICE_UNAVAILABLE, ambos con header Origin correcto) verificados live. También existe una variante GET de la misma ruta (streaming nativo mediante <audio src>, mismo comportamiento). Equivalente demo de widget.voice_speak.