Dispositivos: el desafío del control por voz

Alexa los dispositivos de voz de Amazon

Alexa los dispositivos de voz de Amazon

Algunos teóricos de la tecnología dicen que los dispositivos no pueden hacer todo lo que los humanos pueden hacer.

Sin embargo, los dispositivos que usamos en nuestra vida diaria han evolucionado durante las últimas décadas.

Hemos visto cambios significativos en ellos en términos de funcionalidad, conectividad y tamaño.

Sin embargo, uno de los mayores desafíos ha sido el tamaño del dispositivo a medida que se realizan más esfuerzos para lograr un factor de forma más pequeño.

Hace unos años, surgió un nuevo desafío: el dispositivo no puede comunicarse como los humanos.

Esto llevó a que los dispositivos independientes se transformaran en dispositivos conectados con operaciones adicionales habilitadas por voz.

¿Cómo ayudan los dispositivos de voz a los humanos?

Inicialmente, se requería un toque humano para realizar cualquier acción en el dispositivo.

Ahora, con dispositivos habilitados para voz y tecnología IoT, los humanos pueden dar un comando para operar el dispositivo a través de la voz.

Estos dispositivos recién inventados convierten la voz humana en acción del dispositivo, envía comandos a otro dispositivo a través de Internet y realizan la acción deseada.

Estos dispositivos no solo pueden interactuar con humanos, sino que también pueden interactuar con otros dispositivos a través de Internet.

El gran desafío de las pruebas de dispositivos habilitados para voz

El uso diario de dispositivos habilitados para voz en todo el mundo está aumentando rápidamente.

Tener tantos países alrededor del globo que admiten más de 1000 idiomas con diferentes acentos, géneros y modulaciones de voz según el grupo de edad, hace que sea difícil verificar los dispositivos habilitados para voz.

Es casi imposible probar estos dispositivos con tantas combinaciones y permutaciones diferentes en un corto período de tiempo.

Entonces, veamos cómo podemos automatizar las pruebas de dispositivos habilitados para voz.

Automatización de pruebas de dispositivos habilitados por voz

Para evitar esfuerzos de prueba manual, necesitamos diseñar una solución de automatización que pueda usarse para probar estos dispositivos usando diferentes idiomas.

La opción más fácil es trabajar con marcos que pueden ayudar a desarrollar scripts de automatización con dichos dispositivos integrados de voz.

A partir de ahora, no hay marcos de código abierto disponibles en el mercado que brinden todas las funciones necesarias para probar la integración con dispositivos habilitados para voz.

Los desafíos aquí son cómo dar un comando al dispositivo en diferentes idiomas, cómo leer la respuesta del dispositivo y probar la salida esperada.

Para dar un comando a un dispositivo sin esfuerzos manuales, es necesario identificar un comando en formato de texto.

  • Convierta el texto en formato de audio.
  • Reproduzca el audio para que los dispositivos con voz habilitada puedan escuchar y procesar.
  • Espere una respuesta del dispositivo, grábela en un archivo de audio y, como último paso, debe convertir este audio en el texto para que coincida con el formato esperado.

Cada procedimiento de prueba del dispositivo tendrá requisitos personalizados; por lo tanto, el marco debe ser modular.

Para obtener la solución, necesitamos diseñar un marco modular y escalable donde cada paso de esta solución pueda implementarse mediante bibliotecas de código abierto o de pago disponibles en el mercado.

Hemos pensado en el diseño de 4 módulos en el marco a continuación:

Texto en varios idiomas: para convertir texto de un idioma a otro
Módulo de texto y audio: para convertir texto a mp3
Módulo de audio y texto: para convertir wav a texto
Módulo de audio: para reproducir un archivo mp3 con un dispositivo de salida de audio
Para leer datos de audio: usando un micrófono
Guardar datos de audio: en archivo wav

Solución detallada

1.-Preparar el comando del dispositivo en el idioma inglés

a.Utilice el módulo de texto en varios idiomas para convertir el comando del dispositivo en un idioma que el dispositivo pueda entender.

Utilice los servicios proporcionados por Google para la traducción, donde puede traducir texto de cualquier idioma de origen a cualquier idioma deseado.

2.-Cree un archivo de audio para el texto traducido

a.Utilice el módulo Texto-Audio para convertir texto a audio.

El audio generado se puede reproducir en el dispositivo de salida de audio.

Este módulo utiliza el servicio de texto a voz de Google en el backend.

3.- Reproducir Audio

a. Utilice el módulo de audio para reproducir un archivo mp3 en un dispositivo de salida de audio.

b.Este paso requiere un dispositivo de salida de audio y un dispositivo habilitado para voz cerca para que cuando se reproduzca el audio, el dispositivo pueda capturar el audio y procesar el comando.

4.- Grabar Audio

a.Este paso es necesario para capturar la respuesta del dispositivo habilitado para voz.

b. Utilice el módulo de audio para capturar los datos de grabación del micrófono.

Debe pasar el parámetro de duración para mencionar cuánto tiempo desea grabar y el módulo devuelve datos de muestra de audio

c. Una vez que los datos de muestra estén disponibles, deben guardarse como un archivo wav (audio).

Para lograr esto, se puede utilizar el método save_audio_to_file .

Este método toma datos de audio de muestra y los escribe en un archivo wav que luego puede reproducirse usando un dispositivo de audio o puede usarse para convertirlo en texto.

5.- Convertir audio capturado a texto

a.Utilice el módulo Texto-Audio para convertir el archivo wav a contenido de texto. Esto se logra utilizando un reconocedor de voz. Debe especificar el archivo wav de entrada y el idioma del contenido de audio.

b. Para convertir audio a texto, se pueden utilizar bibliotecas de terceros proporcionadas por varios proveedores.

6.- Traduzca el texto anterior al idioma inglés y verifíquelo con el resultado esperado en inglés

Usando estos 4 módulos anteriores, una vez puede implementar la automatización de voz para dispositivos integrados basados ​​en voz.

Escenario de la vida real para pruebas E2E de productos de automatización del hogar
El sistema de automatización del hogar consta de varios dispositivos que se pueden operar a través de la web utilizando los servicios REST.

Las cámaras de seguridad, luces, termostatos, sensores y timbres son algunos ejemplos de dispositivos de automatización del hogar.

Por ejemplo, el usuario final que es el propietario puede encender o apagar la luz de forma remota mediante portales de Internet.

Algunos de los sistemas proporcionan integración con socios externos como Alexa, Google, etc.

Las empresas proporcionan dispositivos que pueden escuchar la voz humana y realizar la acción solicitada por el usuario.

Entonces, considerando la luz como un producto de automatización del hogar y Alexa como un socio externo para el proveedor del sistema de automatización del hogar, queremos probar si la luz se puede encender / apagar a través de Alexa o no.

Para automatizar el escenario E2E, debemos realizar los pasos a continuación utilizando el marco de automatización discutido anteriormente.

1.Prepara el comando Alexa para encender la luz en inglés.

a. “Alexa, turn on light”

2.Convierta el comando anterior a un archivo mp3

3. Reproduzca un archivo mp3 cerca del dispositivo Alexa usando el altavoz conectado a la máquina de automatización.

4. Registre la respuesta de Alexa en el archivo wav.

5. Convierta el archivo de audio al texto que podría ser “Ok. Turning on the light “o” light is turned on”.

6.Verifique el texto convertido con el conjunto de resultados esperado.

7.En la verificación, solo un paso por delante, también podemos verificar el estado real de la luz de IoT usando:

Una API REST puede usarse para obtener el estado de la luz del sistema de seguridad del hogar

b. La automatización web de los portales de seguridad web se puede hacer para verificar el estado de la luz

c. Si el estado de la luz se está almacenando en la base de datos en la nube, podemos obtener los datos de la base de datos para verificar el estado

Conclusión

Usando los pasos anteriores, uno no solo puede probar la integración del sistema o las pruebas de extremo a extremo con solo un dispositivo habilitado para voz, sino que también puede probar el sistema combinando múltiples clientes o dispositivos.

Los usuarios pueden realizar una acción en uno de los dispositivos / productos con Alexa y verificar su estado con Google o Portal o viceversa.

Por ejemplo, el usuario le pide a Google que encienda la luz y luego busque el estado de la luz usando Alexa / Customer Portals.

 

 

Por Marcelo Lozano – General Publisher IT Connect Latam