stamatios
← Voltar ao feed
Apito minúsculo sobre placa de microcontrolador com ondas sonoras, modelo de transcrição Whistle de 16,9 MB para dispositivos pequenos
Open Source · IA & Modelos

Whistle: modelo open-source de fala transcreve 7 idiomas em 16,9 MB

resumo de ~3 min

Lançamento

A Cactus lançou o Whistle, um modelo open-source de reconhecimento de fala para dispositivos móveis, wearables, robôs, casas inteligentes, automóveis e microcontroladores. O modelo ocupa um único arquivo de 16,9 MB, roda em CPU sem dependências e carrega no mesmo motor C++ do Needle, modelo de texto da mesma empresa.

Funcionalidades

Whistle executa três tarefas no próprio dispositivo: transcreve áudio mono de 16 kHz de até 30 segundos em inglês, alemão, francês, espanhol, italiano, holandês e polonês (com detecção automática de idioma); gera carimbos de tempo por palavra com início, fim e probabilidade, extraídos da atenção do decoder; e produz embeddings de fala, uma linha por quadro de 80 ms, sem decodificar transcrição. O áudio nunca sai do dispositivo.

Arquitetura

O front-end converte o áudio em 3.000 quadros log-mel, reduzidos por um stem convolucional a 375 quadros (um a cada 80 ms). O codificador usa oito blocos Simple Attention compartilhados com o Needle, com quatro linhas residuais mHC e MLP Monarch Hadamard no lugar da rede feed-forward. O decoder usa oito blocos Laddered Simple Attention com GQA (8 cabeças de consulta para 2 de KV) e atenção cruzada com portão, uma adição por camada, com as projeções K e V calculadas uma única vez por clipe. A decodificação usa busca em feixe com 5 feixes, viés de palavras-chave via autômato de Aho-Corasick e vocabulário de 8.192 tokens mais sete tokens de idioma. Cada profundidade a partir de 2 camadas foi treinada como modelo próprio, selecionável pela flag --audio-depth; o codificador sempre roda as oito camadas.

Desempenho

Em benchmarks com 86.174 utterances, medidos com os normalizadores do Whisper, o Whistle supera o Whisper base (145,3 MB) e o Moonshine tiny v2 (41,9 MB) em LibriSpeech test-clean e test-other, SPGISpeech, Earnings-22 e média do FLEURS. O Whisper base é melhor em TED-LIUM, AMI e média do MLS. Em dez segundos de áudio na CPU de um Apple M4 Pro, o Whistle alcança o primeiro token em 11,1 ms, contra 73,2 ms do Whisper e 22,8 ms do Moonshine, e decodifica 1.319 tokens por segundo, contra 266 e 262. O tempo até o primeiro token varia com o clipe: 5,9 ms a 5 segundos e 36,3 ms a 30 segundos. Nenhum áudio dos testes aparece no treinamento, verificado por checksums e IDs de falantes. O Moonshine é apenas em inglês, e alguns números do Whisper não foram publicados por seus autores para certos conjuntos.

Integração e implantação

O mesmo binário do Needle carrega qualquer arquivo .cact e pode combinar os dois modelos: um clipe de fala é transcrito e respondido contra ferramentas definidas, retornando um único JSON com as chamadas de função e os campos de fala. O motor é distribuído pré-compilado para dezessete alvos, incluindo macOS, Linux, Android, iOS, watchOS, Windows on ARM, RISC-V, MIPS, navegador e WASI. Os pesos estão no Hugging Face e o código-fonte no GitHub.