La adopción masiva de inteligencia artificial en nuestra vida cotidiana y las demandas cambiantes de los usuarios están impulsando la aceptación y el conocimiento de las aplicaciones de voz. A medida que lo diital se va colando en nuestras vidas, desarrollamos un mayor nivel de comodidad en los dispositivos IoT, como sensores de movimiento, sistemas inteligentes y asistentes de voz.
A medida que las marcas continúan considerando cómo van a aprovechar este nuevo canal, necesitan aprender algunos métodos nuevos para brindar estabilidad y una buena y constante calidad en los servicios que ofrecen. En este artículo, empoderamos a tu asistente de voz para que su importancia crezca gracias a proporcionar una experiencia de calidad.
Tabla de contenidos
¿Qué es una «aplicación de voz»?
No tenemos que hacerlo más complicado que esto: una «aplicación de voz» es una aplicación con una interfaz de usuario que puede ser operada por voz.
Para la interacción, el usuario habla por un micrófono en lugar de usar una pantalla táctil, un teclado u otro dispositivo de entrada táctil. La aplicación de voz envía la salida de voz generada por computadora al dispositivo de altavoz.
Tecnología involucrada en el proceso
Analicemos esto en las tecnologías que se requieren para una desarrollar y poner en producción un aplicación de voz. Recuerda que tienes que establecer una comunicación de audio bidireccional del usuario con la aplicación.
Voz a texto (reconocimiento de voz)
El comando de voz del usuario se convierte en texto, porque es mucho más fácil para una computadora entender el lenguaje humano a partir del texto que a partir de datos de audio.
Comprensión del lenguaje natural
El motor NLU extrae el significado del comando de voz y lo convierte en una forma comprensible para una computadora. Por lo general, esto significa extraer la intención y las entidades.
Generación de lenguaje natural
La aplicación de voz tiene que traducir de alguna manera el contenido generado por computadora a algo comprensible para los usuarios humanos: lenguaje natural.
Texto a voz (síntesis de voz)
Para presentar el idioma generado al usuario, debe convertirse en datos de audio mediante el uso de una voz de computadora.
Pruebas automatizadas
Dado el volumen de tecnología empleado en este proceso y dada la naturaleza de las interacciones conversacionales con una aplicación de voz, está claro que necesitamos una forma de simular una conversación de dos lados para automatizar el proceso de prueba:
- Por un lado, tenemos que simular a un usuario diciendo un comando de voz a la aplicación de voz.
- Por otro lado, tenemos que afirmar la respuesta de la aplicación de voz para cumplir con nuestros objetivos de prueba.
Simulación de la voz del usuario
Los componentes básicos para la prueba automatizada de los comandos de voz son los archivos de audio que se envían a la aplicación de voz. Hay varias opciones igualmente viables para generar estos archivos de audio, y una estrategia de prueba holística debe hacer uso de todas estas opciones. Para alcanzar una alta cobertura de prueba, debes considerar variaciones en múltiples dimensiones:
- Hablantes nativos frente a hablantes no nativos
- Hombre vs mujer vs neutral vs niño
- Audio de ancho de banda alto frente a ancho de banda bajo (puesto en trabajo de oficina frente a llamada telefónica)
- Red estable vs inestable
- Hardware de alta calidad frente a hardware de baja calidad
- Ruido de fondo
Grabaciones de audio
A pequeña escala, la opción más fácil es usar tu micrófono y grabar tu propia voz. Con un equipo de testers de voz, puedes crear tu propia biblioteca de muestras de audio para probar. El gran problema de este enfoque es la baja cobertura de las pruebas que depende principalmente de la diversidad de tu equipo y/o muestra.
Voces sintéticas
Si bien hace algunos años era bastante fácil distinguir una voz generada por computadora de una voz humana real, mientras tanto, las voces sintéticas se han vuelto ubicuas y con los últimos avances en machine learning y redes neuronales artificiales, la calidad de los servicios de generación de voz disponibles, es convincente.
Hay voces sintéticas disponibles para todos, desde gratuitas hasta costosas, desde código abierto hasta servicios en la nube, desde baja calidad hasta alta calidad, desde bajo uso de recursos hasta clústeres de supercomputadoras. Existen productos que reducen el esfuerzo de integración técnica, como Botium Speech Processing.
Una gran ventaja de usar voces sintéticas es la opción de generar archivos de audio sobre la marcha cuando se ejecutan los casos de prueba, en lugar de tener una biblioteca de archivos de audio.
Ruido de fondo y calidad de audio
Una buena solución de prueba de voz (como Botium) tendrá múltiples opciones para introducir ruido artificial en los archivos de audio, para simular una red inestable y condiciones ambientales ruidosas y más, las cosas que son difíciles de simular, especialmente al grabar t us propios archivos de audio.
Afirmar la corrección
El punto principal en las pruebas es verificar la corrección del sistema bajo prueba. Para una aplicación web típica, esto significaría, por ejemplo, comparar el contenido de la pantalla visible con el contenido de la pantalla esperado. Para una aplicación de voz, esto significa comparar la respuesta de audio con la respuesta esperada, pero en casi todos los casos no es factible comparar la transmisión de audio a nivel de byte.
Texto de respuesta
La forma obvia es aplicar el reconocimiento de voz a la respuesta de audio y comparar en un nivel de texto sin formato: los ingenieros de automatización de pruebas están acostumbrados a las afirmaciones de texto. Es importante tener en cuenta las deficiencias de los motores de reconocimiento de voz: debido a la naturaleza del machine learning, las transcripciones a veces no son 100 % precisas.
La solución de prueba debe admitir el uso de adaptaciones de homófonos, y puedes pensar en afirmar la tasa de error de palabras (WER) en lugar de la coincidencia directa de texto para lidiar con una precisión subóptima.
Calidad de audio
Incluso sin el reconocimiento de voz, es posible evaluar métricas sobre la calidad de la transmisión de audio en sí. Un método estándar para la evaluación automatizada de la calidad del habla en un sistema de telefonía es, por ejemplo, PESQ.
Métricas no funcionales
Además de lo anterior, es posible afirmar varias métricas no funcionales, como el tiempo de respuesta y el volumen de la transmisión de audio.
Canales de la aplicación de voz
Ahora que conocemos los artefactos y las métricas que necesitamos para probar una aplicación de voz, debemos identificar los puntos de integración que podemos usar para las pruebas automatizadas. No hay una respuesta obvia a esto, ya que depende de la tecnología, el canal de publicación y también las opciones de implementación. Una estrategia de prueba holística considerará todo esto y también adaptará el conjunto de pruebas para que se ejecute en múltiples niveles:
- End-2-End para verificar la experiencia del usuario final en diferentes plataformas
- Nivel de API para verificar funciones de audio a gran escala
- Pruebas no funcionales
Transmisión de audio frente a archivos de audio
Desde una perspectiva tecnológica, requiere un enfoque diferente, ya sea que la tecnología funcione con transmisión de audio o mediante el intercambio de archivos de audio.
Audio Streaming envía un flujo constante de datos de audio desde el usuario a la aplicación de voz y viceversa. Tecnologías que cubren este servicio son por ejemplo:
- Sistemas IVR con PSTN o VOIP
- API de Websocket (tráfico bidireccional)
Para intercambiar archivos de audio, se carga un fragmento de audio con un principio y un final definidos en la aplicación de voz y se descarga la respuesta. Tecnologías de ejemplo:
- API de proveedores de chatbot con servicios de voz integrados como Dialogflow
- API REST personalizadas
Sistemas IVR
Los sistemas IVR son un tipo de aplicación de voz muy común y existen desde hace mucho tiempo. Para probar los sistemas IVR es necesario simular llamadas telefónicas vía PSTN (la red telefónica pública) o vía VOIP (voz sobre IP). Se establece un flujo de audio entre el sistema IVR y el software de automatización de pruebas, los datos de audio se inyectan en este flujo de audio y se recuperan de él.
La prueba automática de sistemas IVR a gran escala es posible con Botium Box y su conector VOIP/PSTN.
Hardware de sonido
También hay aplicaciones de voz disponibles en los teléfonos inteligentes sin usar la telefonía, usando el micrófono y el altavoz del dispositivo del teléfono inteligente. Un ejemplo son las aplicaciones de traducción como Google Translate.
Botium Connector para Voice Apps utiliza Perfect Audio Functions para probar sitios web y aplicaciones de teléfonos inteligentes controlados por voz; en este caso, la transmisión de audio al micrófono y desde el altavoz se redirige a Botium.
Chatbot Provider APIs
Hay varios productos disponibles para crear y publicar chatbots y algunos de ellos también ofrecen extensiones para publicar aplicaciones de voz en lugar de chatbots basados en texto.
Para aquellos productos que tienen API disponibles, este es un punto de integración factible para probar la voz a nivel de API. Ejemplos de estas API son:
- Amazon Alexa con el servicio de voz de Alexa
- Amazon Lex admite entrada de voz
- Dialogflow ES y CX tienen soporte integrado para entrada y salida de voz
- Rasa se puede conectar a servicios de voz
- Y muchas más que están por llegar
API personalizadas
Las empresas están publicando asistentes de voz integrados en su sitio web o en su aplicación para teléfonos inteligentes. Esos asistentes de voz generalmente están conectados a un sistema de back-end que maneja las funciones de voz que consumen recursos en el lado del servidor.
Las API utilizadas para conectarse al sistema back-end también se pueden usar para la automatización de pruebas en el nivel de API; las tecnologías típicas son:
- API HTTP/JSON para intercambiar archivos de audio
- Terminales Socket.io o Websocket para establecer flujos de audio bidireccionales
¡Puedes leer más sobre cómo Botium te ayudará en tus primeros pasos para probar aplicaciones de voz en Botium Box Wiki!