10 pontos por GN⁺ 2026-03-01 | 1 comentários | Compartilhar no WhatsApp
  • Framework de reconhecimento de fala em tempo real com todo o processamento feito on-device
  • Por meio de uma arquitetura de modelo baseada em streaming, gera texto em tempo real enquanto o usuário fala e atinge taxa de erro menor que o Whisper Large v3 (WER de 6,65%)
  • Funciona com a mesma API em várias plataformas, como Python, iOS, Android, MacOS, Linux, Windows e Raspberry Pi, com otimização baseada em núcleo C++ e OnnxRuntime
  • Inclui modelos por idioma (inglês, coreano, japonês, espanhol etc.) e recurso de reconhecimento de comandos (Intent Recognition), permitindo que desenvolvedores criem interfaces de voz com facilidade
  • Melhora as limitações do Whisper em entrada fixa de 30 segundos, ausência de cache e precisão por idioma, destacando-se como uma alternativa adequada para implementar interfaces de voz de baixa latência em ambientes de borda

Visão geral do Moonshine Voice

  • Moonshine Voice é um toolkit de IA open source para desenvolvimento de aplicações de voz em tempo real
    • Todo o processamento é feito no dispositivo local, garantindo resposta rápida e privacidade
    • Com processamento em streaming, o texto pode ser atualizado enquanto o usuário ainda está falando
  • O modelo foi treinado do zero com base em pesquisa própria e oferece precisão superior à do Whisper Large v3
  • Há opções de vários tamanhos, de modelo ultracompacto de 26 MB até modelo médio com 245M de parâmetros
  • Suporta vários idiomas, incluindo inglês, coreano, japonês, chinês, espanhol, vietnamita, árabe e ucraniano

Principais melhorias em relação ao Whisper

  • Remove a janela de entrada fixa de 30 segundos do Whisper e passa a suportar entradas de comprimento variável
  • Adiciona cache para reduzir cálculos redundantes durante o streaming e diminuir drasticamente a latência
  • Com treinamento de modelo único por idioma, obtém maior precisão para o mesmo porte de modelo
  • Por meio de uma biblioteca central C++ multiplataforma, a mesma API pode ser usada em Python, Swift, Java etc.
  • Com um modelo de 245M de parâmetros, menor que o Whisper Large v3 (1,5B de parâmetros), alcança taxa de erro mais baixa

Principais recursos e estrutura da API

  • Integra o pipeline de reconhecimento de fala em uma única biblioteca para processar de forma unificada entrada de microfone, detecção de voz (VAD), conversão em texto, identificação de locutor e reconhecimento de comandos
  • Classes principais:
    • Transcriber: converte entrada de áudio em texto
    • MicTranscriber: processa automaticamente a entrada do microfone
    • IntentRecognizer: reconhecimento de comandos com base em linguagem natural
  • Estrutura orientada a eventos, permitindo detectar em tempo real mudanças de estado como LineStarted / LineUpdated / LineCompleted

Modelos e desempenho

  • Moonshine Medium Streaming (245M): WER de 6,65%, melhor que o Whisper Large v3 (7,44%)
  • Moonshine Small Streaming (123M): WER de 7,84%
  • Moonshine Tiny Streaming (34M): WER de 12,00%
  • O modelo Tiny em coreano foi avaliado com WER de 6,46%
  • Todos os modelos são fornecidos no formato .ort baseado em OnnxRuntime, com quantização de 8 bits para reduzir o tamanho

Desenvolvimento e implantação

  • Pode ser instalado nos principais ambientes, como Python (pip install moonshine-voice), Swift (SPM), Android (Maven) e Windows (headers C++)
  • Oferece pacote otimizado para Raspberry Pi, com reconhecimento em tempo real via microfone USB
  • Disponível sob licença MIT (modelos em inglês) e Moonshine Community License (modelos de outros idiomas)
  • Roadmap futuro: redução de binários para mobile, idiomas adicionais, identificação de locutor aprimorada e customização por domínio

Benchmark e usos

  • Velocidade de processamento mais de 5 vezes maior que a do Whisper, adequada para interfaces de voz em tempo real
  • Projetado com meta de latência de resposta abaixo de 200 ms, podendo ser usado em aplicações conversacionais
  • Com o exemplo de reconhecimento de comandos, também reconhece comandos em linguagem natural com variações, como “Turn on the lights”
  • Desempenho validado publicamente no HuggingFace OpenASR Leaderboard

1 comentários

 
GN⁺ 2026-03-01
Opiniões no Hacker News
  • Segundo o OpenASR Leaderboard, Parakeet V2/V3 e Canary-Qwen (versão ajustada do Qwen) têm desempenho melhor que o Moonshine
    Os três modelos são open source, mas o Parakeet é o menor modelo
    Estou usando o Parakeet V3 localmente com o Handy, e ele funciona muito bem

    • O Parakeet V3 tem mais que o dobro de parâmetros (600M) do Moonshine Medium (245M)
      Então acho difícil fazer uma comparação direta
      É surpreendente que o leaderboard não mostre informações sobre o tamanho dos modelos
    • Acabei de testar o Handy e fiquei realmente impressionado
      Estou até escrevendo este post falando com o Handy agora
      A pontuação automática é perfeita e, como ele transforma voz em texto localmente na hora, é muito mais prático que o Google Docs
      Antes eu tinha até instalado o navegador Orion para usar entrada de voz baseada em Chrome, mas agora só o Handy já basta
      Eu digitava a 100~120 WPM, e isso é mais rápido que isso
      É realmente uma ferramenta que melhora a qualidade de vida
    • Estou desenvolvendo um app de transcrição local-first para iOS e pretendo migrar do Whisper Medium para o Parakeet V3
      Ao usar codex-cli com o Handy no macOS, o atalho padrão (Option+Space) tem o problema de inserir espaços no meio da fala
      Em vez disso, a combinação Left Ctrl + Fn funciona de forma limpa
      Fico curioso para saber quais atalhos outras pessoas usam
    • Eu vinha usando modelos WhisperX, e foi a primeira vez que ouvi falar do Handy
      Testei por conta própria e ele é realmente excelente
      Agora pretendo usá-lo como app padrão em todo trabalho com clientes
    • O Handy é realmente um app de alta qualidade
  • Parabéns pelos resultados
    Pessoalmente, o recurso de streaming é o que mais me interessa
    Eu criei o app de ditado para macOS LocalVoxtral, baseado em Voxtral Realtime, e a diferença de UX entre streaming e STT offline é enorme
    Quando as palavras aparecem imediatamente enquanto você fala, o ciclo de feedback muda completamente
    Você consegue corrigir erros e ajustar a frase em tempo real, então tudo parece muito mais natural
    Tenho curiosidade sobre qual é, na prática, a latência de streaming do Moonshine
    Também gostaria de saber se existe um endpoint WebSocket compatível com OpenAI Realtime

    • Meu app usa o pacote Python moonshine-voice
      O motivo de eu deixar o Moonshine como padrão é que ele tem o melhor equilíbrio entre precisão e latência
      No futuro, pretendo adicionar um benchmark objetivo que compare vários modelos com os mesmos dados de áudio
      Também tenho um servidor WebSocket customizado (rift-local), feito com base na API do Sherpa-onnx
      Ele é otimizado para uma única conexão, então não é adequado para múltiplas conexões
  • Tenho ajudado vários streamers da Twitch a adicionar transcrição e tradução às transmissões usando o obs-localvocal
    O uso principal era converter fala em alemão para legendas em inglês
    Precisamos de uma alternativa mais rápida e precisa que o Whisper, mas os streamers preferem o formato de plugin instalável para OBS
    O Moonshine não tem recurso de tradução e também não oferece detecção automática multilíngue, então isso é uma limitação para streamers que alternam muito entre idiomas
    Se houvesse uma função para detectar automaticamente o idioma e trocar de modelo, seria o ideal

  • Afirmar precisão superior ao Whisper Large v3 é uma aposta ousada
    Fico curioso se, na avaliação, foi considerado o problema de loop de alucinação (hallucination loop) do Whisper
    Também gostaria de saber se, ao implantar em edge devices, o uso de VRAM cabe em um Mac de 8 GB
    Se rodar sem quantização, isso já seria bastante significativo

  • Em ambiente de streaming, a estabilidade parcial (partial stability) é mais importante do que um WER simples
    No caso de assistentes de voz, se a transcrição parcial mudar a cada poucas centenas de ms, a UX vai por água abaixo
    Acho que métricas como latência até o primeiro token, razão de tempo real, e taxa de tokens corrigidos após 1 s/3 s seriam muito mais úteis para comparação
    Se esses números forem bons, isso parece muito promissor para pipelines de assistentes locais

    • Fico curioso se humanos também têm uma espécie de “taxa de revisão parcial”
      Eu também já tive a experiência de reinterpretar retroativamente o que estava dizendo, e parece algo que deve acontecer com frequência mesmo no nível inconsciente
      Nesse caso, talvez essa taxa nem precise ser tão baixa assim
  • Os idiomas atualmente suportados são inglês, árabe, japonês, coreano, chinês, espanhol, ucraniano e vietnamita, e a maioria está no tamanho Base (58M parâmetros)

  • Não entendo por que o guia de instalação para Raspberry Pi recomenda 'sudo pip install --break-system-packages moonshine-voice'
    Ainda assim, a documentação também apresenta uma alternativa usando uv
    Se você usar uv run, não é necessário executar separadamente um comando source

  • Não está claro se o “ganho de precisão” é com base no inglês ou em vários idiomas
    No mínimo, deveria haver uma tabela de WER por idioma para que a comparação fosse possível

  • Gostaria de saber se há planos para suporte em JavaScript no navegador
    Antigamente havia uma demo, mas agora ela sumiu
    Já chegou a funcionar localmente, mas em algum momento quebrou sem motivo aparente

    • Existe um port baseado em WASM chamado moonshine-js
      Também há um documento comparativo que reúne soluções de transcrição offline no navegador
      Há ainda uma demo separada do Moonshine baseada em transformers.js (com WebGPU e fallback para WASM)
  • Para testar o Moonshine com uma GUI no navegador, basta executar o comando abaixo

    uv tool install rift-local && rift-local serve --open
    

    Isso abrirá o frontend web de transcrição local RIFT, que também inclui um botão de copiar
    Também é possível compará-lo com a Web Speech API e outros modelos (incluindo APIs em nuvem)
    Links relacionados: rift-local, demo do RIFT