Um assistente de voz sem saída para a nuvem
Dê uma olhada nisto: um microcontrolador ESP32-S3, desconectado da internet, responde à sua voz. Em uma demonstração recente, um pequeno chip de $10 ouviu comandos falados em inglês ou francês e mudou a cor do seu LED integrado. Você pressiona um botão, fala e a placa processa sua solicitação localmente — sem Wi-Fi, sem Bluetooth, sem conexão com a nuvem.
O hardware é notavelmente simples: um microcontrolador ESP32-S3 de aproximadamente $10 com 16 MB de armazenamento flash e 8 MB de memória. Adicione um pequeno microfone digital, um botão para ativar a gravação e um LED RGB. O laptop mostrado na demonstração apenas exibe a saída; todo o trabalho pesado, desde ouvir até a execução, acontece diretamente na própria placa.
Este reconhecimento de fala local é importante porque contorna problemas comuns com assistentes de voz baseados em nuvem. Ele elimina a latência de rede, garante a privacidade ao não enviar suas gravações de voz para servidores remotos e funciona totalmente offline. Embora esta demonstração apresente uma interface de comando restrita — como “pisque a luz em roxo” — é um passo poderoso em direção ao controle de voz totalmente independente em hardware pequeno e acessível, não um alto-falante inteligente de uso geral.
O modelo era maior que o chip
Whistle, o modelo de conversão de fala em texto da Cactus Compute, apresentou um desafio imediato: seu arquivo de modelo único pesava 16,9 MB. Isso já é maior do que todo o armazenamento flash de 16 MB do ESP32-S3, mesmo antes de considerar o firmware do dispositivo. Para contexto, o modelo base Whisper da OpenAI tem pesados 145 MB, tornando o Whistle quase nove vezes menor, mas ainda grande demais para o nosso pequeno chip.
Apesar de seu tamanho compacto, o Whistle é notavelmente capaz. Ele suporta sete idiomas:
- Inglês
- Francês
- Alemão
- Espanhol
- Italiano
- Holandês
- Polonês
Ele detecta automaticamente o idioma falado, fornece carimbos de data/hora das palavras precisos e pode até gerar embeddings de áudio diretamente da fala, oferecendo mais do que apenas transcrição.
O segredo para ajustar o Whistle no chip reside em sua arquitetura única de "escada de inteligência". Enquanto o codificador, que processa o áudio bruto, sempre roda com todas as suas oito camadas, o decodificador, responsável por transcrever o texto, pode ser reduzido. A Cactus Compute projetou o decodificador com profundidades selecionáveis, o que significa que ele ainda funciona corretamente mesmo com menos camadas.
O criador optou por um decodificador de quatro camadas, que, após estender cuidadosamente a partição do modelo até o final do chip flash, deixou apenas 98 KB de flash livre. Uma opção de duas camadas teria se encaixado mais facilmente, mas introduziu erros de transcrição visivelmente maiores, provando o valor dessas camadas extras.
Como uma pequena placa transforma som em ação
Como um pequeno chip realmente te "ouve"? O processo começa quando o microfone captura sua voz a 16 kHz. Este áudio bruto se transforma em um espectrograma Mel, um "mapa de calor" visual do tom e da energia da sua voz ao longo do tempo, fatiado em segmentos de 10 milissegundos.
Em seguida, uma série de camadas convolucionais comprime este mapa de calor. Cada fatia agora representa cerca de 80 milissegundos de áudio, transformando um comando de dois segundos em apenas 25 quadros. Esta representação eficiente é crucial para o ESP32-S3, que possui recursos limitados.
Em seguida, o encoder do Whistle assume o controle. Com oito camadas, ele permite que cada quadro de 80 milissegundos "veja" todos os outros quadros no clipe simultaneamente. Isso significa que o modelo entende as palavras no contexto da sua frase inteira, e não apenas isoladamente.
Finalmente, o decoder gera a transcrição, uma parte de cada vez. Ele primeiro identifica o idioma (inglês ou francês, por exemplo) usando um language token. À medida que produz cada palavra, ele usa "cross-attention" para verificar novamente a saída do encoder, garantindo consistência com o que foi ouvido.
Um pequeno parser, não o Needle, interpreta então o texto transcrito, mapeando palavras como "red" ou "five seconds" para cores de LED e padrões de piscagem específicos. Para mais informações sobre as capacidades do Whistle, confira Whistle: Speech to Text in 16.9 MB - Cactus Compute.
As tentativas iniciais de processar um comando de dois segundos levaram quase 24 segundos — muito lento para um assistente de voz. Otimizações significativas foram necessárias. Os engenheiros da Cactus Compute aceleraram o processo processando múltiplos quadros por passagem, dividindo a carga de trabalho entre os dois núcleos do ESP32-S3 e usando operações de inteiro de 8 bits na unidade vetorial do chip. Essas mudanças reduziram os tempos de resposta típicos para 10 segundos, um valor muito mais utilizável.
Gostando do artigo? Receba um assim na sua caixa de entrada toda manhã.
um e-mail por dia · cancele em dois cliques · sem rastreadores de terceiros
Uma demonstração convincente, não um substituto para ditado
As alegações de precisão do Whistle são impressionantes, mas o contexto é fundamental. A Cactus Compute relatou cerca de 78% de sucesso em comandos de cores sintéticos em inglês, como “flash the light blue”. Adicionar ruído de microfone gravado a esses testes causou pouca mudança, demonstrando robustez em ambientes limitados e controlados.
As descobertas práticas destacam os pontos fortes do modelo com frases específicas. Frases curtas como “make it red” ou “turn it green” funcionaram de 82 a 93% das vezes nos testes. Uma palavra de cor isolada, no entanto, apresentou uma precisão menor, de 44%. O direcionamento por palavras-chave (keyword biasing) e a nova tentativa com outro idioma, como o francês, melhoraram os resultados para conjuntos de comandos fixos.
O lançamento do Whistle sob a licença Apache 2.0 e o design de runtime compartilhado com o Needle apontam para um futuro de sistemas privados de voz para ferramentas em dispositivos de borda (edge devices). No entanto, a placa ESP32-S3 atual não consegue comportar ambos os modelos simultaneamente, pois eles exigiriam cerca de 24 MB de memória flash. Sua latência de aproximadamente 10 segundos e o foco na precisão de comandos também limitam aplicações mais amplas.
Esta demonstração convincente mostra um passo significativo para o controle de voz local, não um substituto para ditado. Você pode explorar o projeto mais a fundo no repositório do GitHub e revisar o model card.
Perguntas Frequentes
O que é o Whistle?
Whistle é o modelo compacto de conversão de fala em texto da Cactus Compute, projetado para transcrever áudio localmente em sete idiomas.
O Whistle pode rodar em um ESP32-S3?
Sim, com uma compilação personalizada e um decoder reduzido. A placa demonstrada executa uma versão de quatro camadas dentro do seu limite de 16 MB de flash.
O projeto de voz ESP32-S3 precisa de Wi-Fi?
Não. A captura de fala, a transcrição e a lógica de comando do LED rodam na placa sem Wi-Fi ou Bluetooth.
Quão preciso e rápido é a demonstração?
O criador relata cerca de 78% de precisão em comandos de cores sintéticos em inglês e cerca de 10 segundos de processamento por comando, em média.
O Whistle pode rodar junto com o Needle nesta placa?
Não na configuração demonstrada: os modelos combinados precisariam de cerca de 24 MB, mais do que os 16 MB de flash da placa.

