Como implementar uma interface de usuário por voz em MCUs com recursos limitados
Contributed By DigiKey's North American Editors
2023-12-14
Alto-falantes inteligentes e outros hubs conectados formam o coração da casa inteligente, permitindo que os usuários controlem dispositivos e acessem a Internet. Duas tendências são evidentes à medida que esses dispositivos se proliferam: os usuários preferem o controle por voz em vez de pressionar botões ou sistemas de menu complicados, e há um desconforto crescente com a conectividade contínua na nuvem devido a preocupações com a privacidade.
No entanto, uma interface de usuário por voz (VUI) robusta e segura normalmente exige hardware poderoso e software complexo para reconhecimento de voz. Qualquer coisa abaixo disso provavelmente resultará em desempenho ruim e experiências insatisfatórias para o usuário. Além disso, muitos alto-falantes e hubs inteligentes são alimentados por bateria, portanto, uma VUI deve ser obtida dentro de um balanço de energia apertado. Um projeto tão ambicioso pode ser assustador para um desenvolvedor que não tenha experiência com interfaces de voz.
Os fabricantes de chips estão respondendo com a introdução de uma técnica baseada em fonemas que reduz significativamente os requisitos de processamento. O resultado é um software VUI altamente preciso e eficiente que pode ser executado em microcontroladores (MCUs) familiares de 32 bits e é suportado por ferramentas de projeto fáceis de usar.
Este artigo descreve os desafios e casos de uso da VUI. Em seguida, ele apresenta o software da aplicação MCU comercial, fácil de usar, assim como o software VUI baseado no fonema local para aplicações domésticas conectadas. O artigo conclui mostrando aos desenvolvedores como iniciar projetos VUI usando MCUs Renesas, software VUI e kits de avaliação.
Os desafios de criar uma VUI
Uma VUI é uma tecnologia de reconhecimento de voz que permite a interação com um computador, smartphone, sistema de automação residencial ou outro dispositivo usando comandos de voz. Após os primeiros desafios de engenharia, a tecnologia amadureceu e se tornou uma interface de controle confiável e agora é amplamente usada em alto-falantes inteligentes e outros dispositivos domésticos inteligentes. O principal benefício de uma VUI é sua conveniência: controle instantâneo de qualquer lugar dentro no alcance da voz, sem a necessidade de usar um teclado, mouse, botões, menus ou outras interfaces para inserir comandos (Figura 1).
Figura 1: A tecnologia VUI foi amplamente adotada em residências e edifícios inteligentes porque é conveniente e flexível. (Fonte da imagem: Renesas)
A desvantagem de uma VUI é sua complexidade. A tecnologia convencional baseia-se no treinamento demorado de um modelo com palavras ou frases específicas. No entanto, o processamento de linguagem natural é independente da ordem das palavras, o que exige um trabalho de desenvolvimento considerável e um poder de computação significativo para ser executado em tempo real. Isso retardou a adoção mais ampla das VUIs.
Agora, uma nova técnica simplifica o software VUI a ponto de poder ser executado em microcontroladores (MCUs) pequenos e eficientes, como os dispositivos Arm® Cortex®-M. Essa técnica se baseia no fato de que todas as palavras de cada idioma falado são compostas de sons linguísticos chamados fonemas. Há muito menos fonemas do que palavras; o inglês tem 44, o italiano tem 32 e o idioma tradicional do Havaí tem apenas 14. Se uma VUI usar um conjunto de comandos em inglês com 200 palavras, cada palavra poderá ser dividida em seus fonemas associados a partir do conjunto de 44.
No software VUI, cada fonema poderia ser identificado por um código numérico (ou um "token"), com os vários tokens formando o idioma. O armazenamento de palavras como sons exige muitos recursos computacionais e ocupa muito mais espaço na memória do que os fonemas armazenados como tokens. O processamento de tokens de fonemas (e, portanto, de palavras de comando) em uma ordem esperada simplifica ainda mais a computação e possibilita a execução do software VUI localmente em um MCU modesto (Figura 2).
Figura 2: A representação de palavras usando fonemas exige menos recursos do microcontrolador. (Fonte da imagem: Renesas)
Isso significa que a eficiência do software obtida com o uso de fonemas permite que o processamento seja executado localmente. A eliminação da necessidade de processamento em nuvem significa que não há necessidade de conectividade contínua com a Internet, o que introduz preocupações com a privacidade do usuário e a segurança dos dados.
A Renesas apresentou um pacote comercial de software VUI baseado no princípio do fonema como parte de seu ecossistema. O software, chamado Cyberon DSpotter, cria um algoritmo de VUI que é simplificado o suficiente para ser executado em MCUs da série RA da Renesas com núcleos Arm Cortex-M4 e M33.
Desenvolvendo com o Cyberon DSpotter
O Cyberon DSpotter foi desenvolvido com base em uma biblioteca de fonemas e combinações de fonemas. Essa é uma abordagem alternativa ao treinamento tradicional de algoritmos, que exige muita computação, para reconhecer palavras específicas. Para dividir as palavras em fonemas e depois representá-las como tokens, o desenvolvedor pode usar a DSpotter Modeling Tool.
O DSpotter é um software incorporado (sem nuvem) que funciona como um gatilho de voz local e uma solução de reconhecimento de comandos com redução robusta do ruído. Ele consome o mínimo de recursos e é altamente preciso. Dependendo do MCU selecionado, a transferência segura de dados também pode ser implementada.
O DSpotter solicita cada palavra ou frase de comando, que a ferramenta divide em fonemas. O conjunto de comandos e os dados de suporte para a VUI são então criados em um arquivo binário que o desenvolvedor inclui no projeto junto com a biblioteca Cyberon. A biblioteca e o arquivo binário são usados juntos no MCU para dar suporte ao reconhecimento dos comandos de fala desejados.
A ferramenta DSpotter cria "CommandSets" que podem ser conectados logicamente pelo programa do desenvolvedor para criar uma VUI com diferentes níveis. Isso permite comandos de vários níveis, como, por exemplo, "Gostaria de definir a lâmpada no nível alto": as palavras de comando são "lâmpada", seguidas de "definir" e "alto". Cada comando em um grupo tem seu próprio índice, assim como cada comando em um nível (Figura 3).
Figura 3: A ferramenta DSpotter permite a criação de "CommandSets" que podem ser conectados logicamente pelo programa do desenvolvedor para criar uma VUI com diferentes níveis. (Fonte da imagem: Renesas)
A biblioteca DSpotter processa o som de entrada e procura fonemas que correspondam aos comandos no banco de dados. Quando encontra uma correspondência, ela retorna com os números de índice e de grupo. Esse arranjo permite que o código principal do aplicativo crie uma instrução de alternância hierárquica para processar as palavras/frases de comando à medida que elas chegam. A biblioteca resultante pode ser pequena o suficiente para caber em um MCU com apenas 256 quilobytes (Kbytes) de memória flash e 32 Kbytes de SRAM. O CommandSet pode aumentar se houver mais memória disponível.
É importante que o desenvolvedor entenda que há limitações no método de fonemas para uma VUI. Os recursos relativamente limitados do MCU determinam que o Cyberon DSpotter seja um reconhecimento de fala em vez de reconhecimento de voz. Isso significa que o software não pode executar o processamento natural do idioma. Portanto, se as palavras de comando não seguirem uma sequência lógica (por exemplo, "alto", "lâmpada", "definir" em vez de "lâmpada", "definir", "alto"), o sistema não reconhecerá o comando e voltará ao nível superior.
Uma sugestão de projeto é adicionar um indicador visual à VUI (por exemplo, um LED) para indicar quando o processador assume que está no nível superior do CommandSet, solicitando que o usuário reemita o comando na sequência lógica (Figura 4).
Figura 4: A natureza simplificada do Cyberon DSpotter exige que os comandos sigam uma sequência lógica, caso contrário, eles não serão reconhecidos. (Fonte da imagem: Renesas)
Execução de uma VUI sem nuvem com recursos restritos
A eficiência do Cyberon DSpotter permite que ele seja executado nas famílias RA2, RA4 e RA6 de MCUs Arm Cortex-M da Renesas. Elas são populares em uma ampla gama de aplicações de consumo, industriais e de IoT. São apoiadas por ferramentas de projeto fáceis de usar, o que torna relativamente simples a criação de uma VUI simples sem uma vasta experiência em codificação ou conhecimento interno do produto.
A escolha de um MCU da família RA específica se resume principalmente à complexidade dos comandos e ao tamanho da biblioteca Cyberon. Um interruptor de iluminação inteligente, que requer um conjunto de comandos modesto e poder de computação limitado para operar de forma eficaz, pode ser baseado no R7FA4W1AD2CNG da família RA4. Esse MCU tem um núcleo Arm Cortex-M4 de 48 megahertz (MHz), compatível com a bateria, suportado por 512 Kbytes de memória flash e 96 Kbytes de SRAM. Ele apresenta um controlador de segmento LCD, uma unidade de detecção por toque capacitivo, conectividade sem fio Bluetooth de baixa energia (Bluetooth LE), USB 2.0 de velocidade máxima, um conversor analógico-digital (ADC) de 14 bits, um conversor digital-analógico (DAC) de 12 bits, além de recursos de segurança e proteção (Figura 5).
Figura 5: O MCU R7FA4W1AD2CNG oferece amplos recursos para criar uma VUI sem nuvem para aplicações como um interruptor de iluminação inteligente. (Fonte da imagem: Renesas)
Uma biblioteca mais extensa do Cyberon DSpotter e um núcleo mais poderoso são necessários para uma aplicação como um alto-falante inteligente. Um candidato adequado é o R7FA6M4AF3CFM. Esse MCU da família RA6 apresenta o núcleo Arm Cortex-M33 de 200 MHz mais poderoso, com suporte de 1 megabyte (Mbyte) de memória flash e 256 Kbytes de SRAM. Ele tem um barramento CAN, Ethernet, I²C, barramento LIN, uma unidade de detecção por toque capacitivo e muitas outras interfaces e periféricos.
As famílias RA4 e RA6 são suportadas por placas de teste, a RTK7EKA4W1S00000BJ e a RTK7EKA6M4S00001BE, respectivamente, para permitir que o desenvolvedor exercite os recursos dos MCUs. Cada placa de teste tem o MCU de destino e um depurador integrado.
A Renesas também oferece um kit de solução VUI para acelerar o desenvolvimento. O kit é semelhante às placas de teste, pois incorpora o dispositivo de destino e os depuradores. A placa também apresenta várias interfaces de E/S e tem quatro microfones: dois analógicos e dois digitais.
O acesso ao software necessário para o desenvolvimento com o kit de solução VUI está disponível no site da Cyberon. Isso inclui acesso gratuito à ferramenta de modelagem Cyberon DSpotter e apresenta um projeto do e2 studio com um CommandSet de voz funcional (o e2 studio é um ambiente de desenvolvimento integrado (IDE) baseado no Eclipse para MCUs da Renesas). O CommandSet de exemplo pode ser usado como modelo para desenvolver sequências de comandos de voz personalizados. As reações do sistema podem então ser monitoradas usando uma janela de terminal. Geralmente, leva cerca de 15 minutos para criar a estrutura da VUI mostrada na Figura 4.
O projeto mais sofisticado do software da aplicação para o pacote Cyberon é suportado pelo Flexible Software Package (FSP) da Renesas para projetos de sistemas embarcados usando as famílias RA. O FSP é baseado em um ecossistema de software aberto e inclui o Azure RTOS ou FreeRTOS, código antigo e ecossistemas de terceiros. Ele pode ser executado em vários IDEs, incluindo o e2 studio.
Qual é o desempenho da VUI?
Uma coisa é uma VUI ter um bom desempenho em um laboratório silencioso, mas outra é funcionar com precisão num ruído de fundo significativo. Um ambiente operacional típico para um alto-falante inteligente pode incluir uma TV ou rádio, conversas, outras fontes de música e o burburinho geral de uma casa ou de uma reunião social. Além disso, a VUI terá que lidar com dialetos e dicção não muito perfeita. Apesar desses desafios, os usuários esperam um desempenho quase perfeito.
Para melhorar o desempenho em um ambiente de escuta difícil, o software Cyberon DSpotter executado na família Renesas RA de MCUs inclui recursos de imunidade a ruídos que exigem recursos mínimos do processador. Para demonstrar sua eficácia, foram feitos testes com uma VUI Cyberon DSpotter ouvindo comandos, enquanto estava sujeita a várias fontes de ruído de fundo em distâncias de 1,5 e 3 metros (m) e com relações sinal-ruído (SNRs) de 0, 5 e 10 decibéis (dB). Em todos os casos, a VUI superou a referência do Amazon Alexa (Tabela 1).
|
Tabela 1: Resultados do teste de sucesso de comando para uma VUI com tecnologia Cyberon com várias fontes de ruído de fundo. Em todos os casos, a VUI superou a referência da Amazon Alexa. (Fonte da imagem: Renesas)
Conclusão
As VUIs estão se tornando rapidamente a interface de controle preferida dos consumidores para produtos inteligentes. Uma abordagem de controle de fala que usa fonemas como base de comandos e uma estrutura de comando rígida pode reduzir drasticamente os requisitos de memória e computação, permitindo que a tecnologia seja executada localmente em MCUs pequenos e com recursos limitados.
Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.




