Cómo implementar una interfaz de usuario de voz en MCU con recursos limitados
Colaboración de Editores de DigiKey de América del Norte
2023-12-14
Los altavoces inteligentes y otros concentradores conectados forman el corazón del hogar inteligente, permitiendo a los usuarios controlar dispositivos y acceder a Internet. A medida que proliferan estos dispositivos, se aprecian dos tendencias: los usuarios prefieren el control por voz a pulsar botones o a complicados sistemas de menús, y cada vez hay más incomodidad con la conectividad continua a la nube por cuestiones de privacidad.
Sin embargo, una interfaz de usuario de voz (VUI) resistente y segura suele exigir un hardware potente y un software complejo para el reconocimiento de voz. Si no es así, es probable que el rendimiento sea deficiente y la experiencia del usuario, insatisfactoria. Además, muchos altavoces y concentradores inteligentes funcionan con batería, por lo que la interfaz VUI debe funcionar con un presupuesto de energía ajustado. Un proyecto tan ambicioso puede resultar desalentador para un desarrollador sin experiencia en interfaces de voz.
Los fabricantes de chips están respondiendo introduciendo una técnica basada en fonemas que reduce significativamente los requisitos de procesamiento. El resultado es un software VUI de gran precisión y eficacia que puede ejecutarse en microcontroladores (MCU) de 32 bits y está respaldado por herramientas de diseño fáciles de usar.
Este artículo describe los retos y casos de uso de la VUI. A continuación, presenta un software de aplicación de la unidad de microcontrolador comercial y fácil de usar y un software VUI basado en el teléfono local para aplicaciones domésticas conectadas. El artículo concluye mostrando a los desarrolladores cómo empezar con proyectos VUI utilizando MCU de Renesas, software VUI y kits de evaluación.
Los retos de crear una interfaz de usuario virtual
Una VUI es una tecnología de reconocimiento de voz que permite interactuar con una computadora, un teléfono inteligente, un sistema de automatización del hogar u otro dispositivo mediante comandos de voz. Tras los primeros retos de ingeniería, la tecnología ha madurado hasta convertirse en una interfaz de control fiable y ahora se utiliza ampliamente en altavoces inteligentes y otros dispositivos domésticos inteligentes. La principal ventaja de una VUI es su comodidad: control instantáneo desde cualquier lugar dentro del alcance de la voz sin necesidad de utilizar un teclado, ratón, botones, menús u otras interfaces para introducir comandos (Figura 1).
Figura 1: La tecnología VUI ha sido ampliamente adoptada en hogares y edificios inteligentes por su comodidad y flexibilidad. (Fuente de la imagen: Renesas)
El inconveniente de una interfaz de usuario virtual es su complejidad. La tecnología convencional se basa en el entrenamiento prolongado de un modelo con palabras o frases específicas. Pero el procesamiento del lenguaje natural es independiente del orden de las palabras, lo que exige un trabajo de desarrollo considerable y una potencia de cálculo importante para funcionar en tiempo real. Esto ha ralentizado la adopción generalizada de las VUI.
Ahora, una nueva técnica simplifica el software VUI hasta el punto de que puede ejecutarse en microcontroladores (MCU) pequeños y eficientes, como los dispositivos Arm® Cortex®-M. Esta técnica se basa en el hecho de que todas las palabras de cada lengua hablada están formadas por sonidos lingüísticos llamados fonemas. Hay muchos menos fonemas que palabras; el inglés tiene 44, el italiano 32 y la lengua tradicional hawaiana, solo 14. Si una VUI utiliza un conjunto de comandos en inglés de 200 palabras, cada palabra podría desglosarse en sus fonemas asociados a partir del conjunto de 44.
Dentro del software VUI, cada fonema podría identificarse mediante un código numérico (o un "token"), y los distintos tokens formarían la lengua. Almacenar palabras como sonidos requiere muchos recursos informáticos y ocupa mucho más espacio de memoria que los fonemas almacenados como fichas. El procesamiento de los tokens de fonemas (y, por tanto, de las palabras de órdenes) en el orden previsto simplifica aún más el cálculo y permite ejecutar el software VUI localmente en una modesta unidad de microcontrolador (figura 2).
Figura 2: La representación de palabras mediante fonemas exige menos recursos de los microcontroladores. (Fuente de la imagen: Renesas)
Esto significa que las eficiencias de software logradas mediante el uso de fonemas permiten que el procesamiento se ejecute localmente. La eliminación de la necesidad de procesamiento en la nube significa que no hay necesidad de conectividad continua a Internet, lo que introduce problemas de privacidad del usuario y seguridad de los datos.
Renesas ha mostrado un paquete de software VUI comercial basado en el principio de fonemas como parte de su ecosistema. El software, denominado Cyberon DSpotter, crea un algoritmo VUI lo suficientemente optimizado como para ejecutarse en MCU de la serie RA de Renesas con núcleos ARM Cortex-M4 y M33.
Desarrollo con Cyberon DSpotter
Cyberon DSpotter se basa en una biblioteca de fonemas y combinaciones de fonemas. Se trata de un enfoque alternativo al tradicional y pesado entrenamiento informático de algoritmos para reconocer palabras concretas. Para descomponer las palabras en fonemas y luego representarlos como tokens, el desarrollador puede utilizar la herramienta de modelado DSpotter.
DSpotter es un software integrado (no en la nube) que funciona como solución local de activación de voz y reconocimiento de comandos con una sólida reducción de ruido. Consume un mínimo de recursos y es muy preciso. Dependiendo de la unidad de microcontrolador seleccionada, también se puede implementar la transferencia segura de datos.
DSpotter pregunta por cada palabra o frase del comando, que la herramienta descompone en fonemas. A continuación, el conjunto de comandos y los datos de apoyo para la VUI se incorporan a un archivo binario que el desarrollador incluye en el proyecto junto con la biblioteca Cyberon. La biblioteca y el archivo binario se utilizan conjuntamente en la unidad de microcontrolador para apoyar el reconocimiento de los comandos de voz deseados.
La herramienta DSpotter crea "CommandSets" que pueden ser conectados lógicamente por el programa del desarrollador para crear una VUI con diferentes niveles. Esto permite órdenes de varios niveles, como "Me gustaría poner la bombilla en posición alta, por favor": las palabras de la orden son "bombilla", seguida de "poner" y "alta". Cada comando de un grupo tiene su propio índice, al igual que cada comando dentro de un nivel (Figura 3).
Figura 3: La herramienta DSpotter permite la creación de "CommandSets" que pueden ser conectados lógicamente por el programa del desarrollador para crear una VUI con diferentes niveles. (Fuente de la imagen: Renesas)
La biblioteca DSpotter procesa el sonido entrante y busca los fonemas que coinciden con los comandos de la base de datos. Cuando encuentra una coincidencia, devuelve los números de índice y grupo. Esta disposición permite que el código de la aplicación principal cree una sentencia de interruptor jerárquica para procesar las palabras/frases de comando a medida que llegan. La biblioteca resultante puede ser lo suficientemente pequeña como para caber en una unidad de microcontrolador con solo 256 kilobytes (Kbytes) de memoria Flash y 32 Kbytes de SRAM. El CommandSet puede crecer si hay más memoria disponible.
Es importante que el desarrollador sepa que el método de los fonemas tiene sus limitaciones en una interfaz de usuario virtual. Los recursos relativamente limitados de la unidad de microcontrolador dictan que Cyberon DSpotter sea reconocimiento de voz en lugar de reconocimiento de voz. Esto significa que el software no puede realizar el procesamiento del lenguaje natural. Por tanto, si las palabras de la orden no siguen una secuencia lógica (por ejemplo, "alto", "bombilla", "fijar" en lugar de "bombilla", "fijar", "alto"), el sistema no reconocerá la orden y volverá al nivel superior.
Una sugerencia de diseño es añadir un indicador visual a la VUI (por ejemplo, un LED) para indicar cuándo el procesador asume que está en el nivel superior del CommandSet, instando al usuario a reemitir el comando en la secuencia lógica (Figura 4).
Figura 4: La naturaleza ágil de Cyberon DSpotter requiere que los comandos sigan una secuencia lógica, de lo contrario no serán reconocidos. (Fuente de la imagen: Renesas)
Ejecutar una VUI sin nube con recursos restringidos
La eficacia de Cyberon DSpotter le permite funcionar en las familias RA2, RA4 y RA6 de MCU Arm Cortex-M de Renesas. Son populares en un amplio rango de aplicaciones de consumo, industriales y de IoT. Cuentan con herramientas de diseño fáciles de usar, por lo que resulta relativamente sencillo crear una interfaz de usuario sencilla sin necesidad de tener mucha experiencia en programación o conocimientos internos.
La elección de una determinada unidad de microcontrolador de la familia RA se reduce principalmente a la complejidad de los comandos y al tamaño de la biblioteca Cyberon. Un interruptor de luz inteligente, que requiere un conjunto de comandos modesto y una potencia de cálculo limitada para funcionar con eficacia, podría basarse en el R7FA4W1AD2CNG de la familia RA4. Esta unidad de microcontrolador tiene un núcleo Arm Cortex-M4 de 48 megahercios (MHz) que funciona con batería y está respaldado por 512 Kbytes de memoria Flash y 96 Kbytes de SRAM. Cuenta con un regulador LCD de segmentos, una unidad de detección táctil capacitiva, conectividad inalámbrica Bluetooth de baja energía (Bluetooth LE), USB 2.0 Full-Speed, un convertidor de analógico a digital (ADC) de 14 bits, un convertidor de digital a analógico (DAC) de 12 bits, además de funciones de seguridad y protección (Figura 5).
Figura 5: La unidad de microcontrolador R7FA4W1AD2CNG proporciona amplios recursos para crear una interfaz de usuario virtual no basada en la nube para aplicaciones como un interruptor de luz inteligente. (Fuente de la imagen: Renesas)
Para una aplicación como un altavoz inteligente se necesita una biblioteca Cyberon DSpotter más extensa y un núcleo más potente. Un candidato adecuado es el R7FA6M4AF3CFM. Esta MCU de la familia RA6 cuenta con el núcleo Arm Cortex-M33 a 200 MHz más potente, respaldado por 1 megabyte (Mbyte) de memoria Flash y 256 Kbytes de SRAM. Dispone de bus CAN, Ethernet, I²C, bus LIN, una unidad de detección táctil capacitiva y muchas otras interfaces y periféricos.
Las familias RA4 y RA6 están soportadas por placas de evaluación, la RTK7EKA4W1S00000BJ y la RTK7EKA6M4S00001BE, respectivamente, para permitir al desarrollador ejercitar las capacidades de las MCU. Cada placa de evaluación tiene la unidad de microcontrolador de destino y un depurador integrado.
Renesas también ofrece un kit de soluciones VUI para acelerar el desarrollo. El kit es similar a las placas de evaluación, ya que incorpora el dispositivo de destino y los depuradores. La placa también cuenta con varias interfaces de E/S y dispone de cuatro micrófonos: dos analógicos y dos digitales.
El acceso al software necesario para el desarrollo con el kit de solución VUI está disponible en el sitio web de Cyberon. Incluye acceso gratuito a la herramienta de modelado Cyberon DSpotter y características de un proyecto e2 studio con un conjunto de comandos de voz (e2 studio es un entorno completo de desarrollo integrado (IDE) basado en Eclipse para MCU de Renesas). El CommandSet de ejemplo puede utilizarse como plantilla para desarrollar secuencias de comandos de voz personalizadas. Las reacciones del sistema pueden seguirse a través de una ventana de terminal. Por lo general, se tarda unos 15 minutos en crear la estructura VUI que se muestra en la Figura 4.
El diseño de software de aplicación más sofisticado para el paquete Cyberon está respaldado por el paquete de software flexible (FSP) de Renesas para diseños de sistemas embebidos que utilizan las familias RA. El FSP se basa en un ecosistema de software abierto e incluye Azure RTOS o FreeRTOS, código heredado y ecosistemas de terceros. Puede ejecutarse en varios entornos completos de desarrollo integrado (IDE), incluido e2 studio.
¿Qué tal funciona la VUI?
Una cosa es que una VUI funcione bien en un laboratorio silencioso y otra muy distinta es que funcione con precisión con un ruido de fondo considerable. Un entorno operativo típico para un altavoz inteligente podría incluir un televisor o una radio, una conversación, otras fuentes de música y el bullicio general de un hogar o una reunión social. Además, la VUI tendrá que lidiar con dialectos y una dicción poco perfecta. A pesar de estos retos, los usuarios esperan un rendimiento casi impecable.
Para mejorar el rendimiento en un entorno de escucha difícil, el software Cyberon DSpotter que se ejecuta en la familia de MCU Renesas RA incluye características de inmunidad al ruido que requieren recursos mínimos del procesador. Para demostrar su eficacia, se realizaron pruebas con un Cyberon DSpotter VUI escuchando órdenes mientras se sometía a diversas fuentes de ruido de fondo a distancias de 1.5 y 3 metros (m), y con relaciones señal-ruido (SNR) de 0, 5 y 10 decibelios (dB). En todos los casos, la VUI superó la referencia de Alexa de Amazon (Tabla 1).
|
Tabla 1: Resultados de la prueba de éxito de comandos para una VUI alimentada por Cyberon con diversas fuentes de ruido de fondo. En todos los casos, la interfaz VUI superó la referencia de Alexa de Amazon. (Fuente de la imagen: Renesas)
Conclusión:
Las VUI se están convirtiendo rápidamente en la interfaz de control preferida por los consumidores para los productos inteligentes. Un sistema de control por voz que utilice fonemas como base de las órdenes y una estructura de órdenes estricta puede reducir drásticamente los requisitos de memoria y computación, permitiendo que la tecnología funcione localmente en pequeñas MCU con recursos limitados.
Descargo de responsabilidad: Las opiniones, creencias y puntos de vista expresados por los autores o participantes del foro de este sitio web no reflejan necesariamente las opiniones, las creencias y los puntos de vista de DigiKey o de las políticas oficiales de DigiKey.




