Cómo Encontrar Errores En Tus Respuestas SSML

¿Alguna vez has recibido un mensaje de cryptic error al desarrollar para Alexa? Esta es una frustración común cuando Alexa Google Assistant no entienden una respuesta. Ambas plataformas esperan una respuesta utilizando SSML (Speech Synthesis Markup Language). Las respuestas SSML son cadenas XML que se adhieren a ciertas etiquetas, atributos y valores permitidos. Estas plataformas son sensibles a las desviaciones de este estándar. Y ninguno proporciona detalles para decirte por qué tu respuesta es mala.
Me he encontrado con este problema muchas veces durante el desarrollo. Incluso llegué a esto en producción para ciertos casos extremos que rompen algunas reglas, como no incluir un ampersand sin escape (&).
Para resolver esto, creé un módulo NPM llamado ssml-verify Ssml-check toma una respuesta SSML y busca formatos, etiquetas y valores válidos. Admite etiquetas específicas de Alexa y Google Assistant, y también te dirá si una respuesta funcionará en ambas plataformas. Puedes consultar este módulo en acción ingresando cadenas SSML en este enlace
Solicitud de verificación de SSML
Integrar ssml-check en tu código es fácil. La biblioteca expone dos funciones verify y verificarAndFix Tienes que poner el texto SSML y una estructura opcional que indica la plataforma para verificar. La verificación validará tu SSML, mientras que verificyAndFix proporcionará adicionalmente una cadena SSML corregida. Esto es muy útil si deseas asegurar que está devolviendo una respuesta válida. Por ejemplo, en Alexa si está utilizando ask-sdk, puedes llamar a verificyAndFix desde un response interceptor. Esto te permite hacer una validación last religión tecnológica antes de regresar a Alexa:
El valor de retorno de check es una Promise que se resuelve en una matriz de errores ( undefined si el SSML está limpio). El valor de retorno de verifiedAndFix es una Promise que se resuelve en un objeto que contiene una nueva cadena SSML y una matriz de errores ( un objeto vacío si el SSML está limpio).
Por ejemplo, supón que estás tratando de reducir la velocidad del habla usando una etiqueta prosody. En Alexa, un valor válido para la tasa debe ser de al menos el 20%. El siguiente fragmento muestra qué devuelve si intentas establecer la tasa al 5%:
const ssmlCheck = require(‘ssml-test’);ssmlCheck.test(‘ Hey world ‘).then((errors) => inteligencia artificial cuatro
(errors);
//
//
Con el error object, el campo de tipo te indica el type de error encontrado. Si se establece en tag”, obtendrás detalles sobre qué etiqueta tiene un error en los campos de tag, attribute y worth. El tipo también puede ser un error más genérico como Invalid & character” Too many audio information”.
Supongamos que estás desarrollando una talent usando un marco como Jovo que permite que tu código se ejecute tanto en Alexa como en Google Assistant. Estás haciendo uso de la etiqueta amazon:effect para proporcionar una respuesta. Funciona muy bien en Alexa, pero no es compatible con Google. El siguiente código captará esto:
const ssmlCheck = require(‘ssml-check’);ssmlCheck.examine(‘ Hey how are you? ‘, platform: ‘all’).then((errors) =>
(errors);
//
//
Internamente, ssml-check utiliza una biblioteca central llamada ssml-examine-core. ssml-examine-core está diseñado para realizar controles estrictamente sintácticos con dependencias mínimas. De hecho, en todos los ejemplos anteriores, ssml-verify-core podría haber sido sustituido por ssml-examine. ssml-verify se basa en comprobaciones sintácticas al proporcionar comprobaciones adicionales, como validar que los archivos de audio cumplan con los formatos requeridos por Amazon Google. Al establecer el validateAudioFiles en la estructura de opciones, sabrá si tiene un formato de archivo de audio válido (HTTPS, velocidad de bits adecuada, frecuencia de muestreo, and so forth.). Por ejemplo, el siguiente código verificará un archivo de audio:
const ssmlCheck = require(‘ssml-examine’);ssmlCheck.test(‘ a cat purring PURR (sound didn\’t load) ‘, platform: ‘google’, validateAudioFiles: true).then((errors) =>
(errors);inteligencia artificial aplicaciones
);// los errores serán undefined ya que este archivo OGG es un archivo de audio válido en Google
Puedes corregir algunos de estos errores en tu código, incluso dinámicamente con generateAndFix, según el comportamiento deseado. Puedes registrar la respuesta. puedes devolver un mensaje de error genérico para que el usuario sepa que ha encontrado un problema.
Espero que encuentres ssml-examine y ssml-check-core tan útiles como yo para mejorar tus respuestas. Los módulos son de código abierto, por lo que si encuentras condiciones que no están cubiertas, ¡no dudes en contribuir!

0

Leave A Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.