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) => 人工知能 4
(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. 実際のところ, en todos los ejemplos anteriores, ssml-verify-coreはssml-examineに置き換えられる可能性があります. ssml-verifyは追加のチェックを提供する際に構文チェックに基づいています, AmazonやGoogleが要求する形式にオーディオファイルが準拠しているかを検証する方法として. オプション構造でvalidateAudioFilesを設定すると, オーディオファイル形式が有効かどうかが分かります (HTTPS, 適切なビットレート, サンプリング周波数, など). Por ejemplo, 次のコードはオーディオファイルを検証します:
const ssmlCheck = require(‘ssml-examine’);ssmlCheck.test(‘ 猫がゴロゴロ鳴く音 PURR (sound didn\’t load) , platform: ‘google’, validateAudioFiles: 正しい).then((errors) =>
(errors);inteligencia artificial aplicaciones
);// このOGGファイルはGoogleで有効なオーディオファイルのため、エラーはundefinedになります
コード内のいくつかのエラーを修正できます, 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!

コメントを残す

あなたのメールアドレスは公開されません. 必須項目には印が付いています *

このサイトはスパムを減らすためにAkismetを使用しています. あなたのコメントデータがどのように処理されるか学ぶ.