Cómo Encontrar Errors En Tus Respuestas SSML

¿Alguna vez has ricevuto un messaggio de cryptic error al desarrollar para Alexa? Esta es una frustración común cuando Alexa Google Assistant no entienden una respuesta. Ambas platforms 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 standard. Y nessuno fornisce dettagli per dire por qué tu respuesta es mala.
Me he encontrado con este problema muchas veces durante lo sviluppo. Incluso llegué a esto en producción para ciertos casos estremos 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 codice 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. Per esempio, en Alexa si está utilizando ask-sdk, puedes llamar a verificyAndFix desde un response interceptor. Esto te permite hacer una validación last religione 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 che contiene una nueva cadena SSML y una matriz de errores ( un objeto vacío si el SSML está limpio).
Per esempio, supón que estás tratando de reducir la velocidad del habla usando una etiqueta prosody. En Alexa, un valore 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, ma non è compatibile con Google. Il seguente codice catturerà questo:
const ssmlCheck = require(‘ssml-check’);ssmlCheck.examine(‘ Ehi come stai? ‘, piattaforma: ‘tutti’).then((errors) =>
(errors);
//
//
Internamente, ssml-check utilizza una libreria centrale chiamata ssml-examine-core. ssml-examine-core è progettato per eseguire controlli strettamente sintattici con dipendenze minime. Infatti, in tutti gli esempi precedenti, ssml-verify-core avrebbe potuto essere sostituito da ssml-examine. ssml-verify si basa su controlli sintattici fornendo verifiche aggiuntive, come validare che i file audio rispettino i formati richiesti da Amazon Google. Impostando validateAudioFiles nella struttura delle opzioni, saprà se ha un formato di file audio valido (HTTPS, velocità del bit appropriata, frequenza di campionamento, e così via.). Per esempio, il seguente codice verificherà un file audio:
const ssmlCheck = require(‘ssml-examine’);ssmlCheck.test(‘ un gatto che fa le fusa PURR (sound didn\’t load) ‘, piattaforma: ‘google’, validateAudioFiles: vero).then((errors) =>
(errors);applicazioni di intelligenza artificiale
);// gli errori saranno undefined poiché questo file OGG è un file audio valido in Google
Puoi correggere alcuni di questi errori nel tuo codice, anche dinamicamente con generateAndFix, in base al comportamento desiderato. Puoi registrare la risposta. puoi restituire un messaggio di errore generico in modo che l'utente sappia di aver incontrato un problema.
Spero che troverai ssml-examine e ssml-check-core utili quanto me per migliorare le tue risposte. I moduli sono open source, quindi se trovi condizioni che non sono coperte, non esitare a contribuire!

Lascia un Commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito utilizza Akismet per ridurre lo spam. Scopri come i tuoi dati dei commenti vengono elaborati.