10 puntos por GN⁺ 2026-03-01 | 1 comentarios | Compartir por WhatsApp
  • Framework de reconocimiento de voz en tiempo real que realiza todo el procesamiento en el dispositivo
  • Mediante una arquitectura de modelo basada en streaming, genera texto en tiempo real incluso mientras el usuario habla, y logra una tasa de error más baja que Whisper Large v3 (WER 6.65%)
  • Funciona con la misma API en múltiples plataformas como Python, iOS, Android, MacOS, Linux, Windows y Raspberry Pi, y está optimizado sobre un núcleo en C++ y OnnxRuntime
  • Incluye modelos por idioma (inglés, coreano, japonés, español, etc.) y funciones de reconocimiento de comandos (Intent Recognition), lo que permite a los desarrolladores crear interfaces de voz fácilmente
  • Mejora las limitaciones de Whisper en entrada fija de 30 segundos, ausencia de caché y precisión por idioma, y destaca como una alternativa adecuada para implementar interfaces de voz de baja latencia en entornos edge

Resumen de Moonshine Voice

  • Moonshine Voice es un toolkit de IA open source para desarrollar aplicaciones de voz en tiempo real
    • Todo el procesamiento se realiza en el dispositivo local, lo que garantiza respuestas rápidas y privacidad
    • Gracias al procesamiento en streaming, el texto puede actualizarse incluso mientras el usuario habla
  • El modelo es una arquitectura entrenada desde cero basada en investigación propia, y ofrece mayor precisión que Whisper Large v3
  • Ofrece varios tamaños, desde un modelo ultraligero de 26 MB hasta un modelo mediano de 245M parámetros
  • Soporta varios idiomas, incluidos inglés, coreano, japonés, chino, español, vietnamita, árabe y ucraniano

Principales mejoras frente a Whisper

  • Elimina la ventana de entrada fija de 30 segundos de Whisper para admitir entradas de longitud variable
  • Añade caché para reducir cálculos redundantes durante el streaming y acortar considerablemente la latencia
  • Con entrenamiento de modelos individuales por idioma, logra mayor precisión para un mismo tamaño de modelo
  • Mediante una biblioteca central en C++ multiplataforma, permite usar la misma API desde Python, Swift, Java y otros lenguajes
  • Logra una tasa de error más baja con un modelo de 245M parámetros más pequeño que Whisper Large v3 (1.5B parámetros)

Funciones principales y estructura de la API

  • Integra toda la canalización de reconocimiento de voz en una sola biblioteca para procesar de forma unificada entrada de micrófono, detección de voz (VAD), conversión a texto, identificación de hablante y reconocimiento de comandos
  • Clases principales:
    • Transcriber: convierte la entrada de audio en texto
    • MicTranscriber: procesa automáticamente la entrada del micrófono
    • IntentRecognizer: reconocimiento de comandos basado en lenguaje natural
  • Con una arquitectura basada en eventos, detecta en tiempo real cambios de estado como LineStarted / LineUpdated / LineCompleted

Modelos y rendimiento

  • Moonshine Medium Streaming (245M): WER 6.65%, superior a Whisper Large v3 (7.44%)
  • Moonshine Small Streaming (123M): WER 7.84%
  • Moonshine Tiny Streaming (34M): WER 12.00%
  • El modelo Tiny en coreano fue evaluado con un WER de 6.46%
  • Todos los modelos se ofrecen en formato .ort basado en OnnxRuntime y están aligerados con cuantización de 8 bits

Desarrollo y despliegue

  • Puede instalarse en entornos principales como Python (pip install moonshine-voice), Swift (SPM), Android (Maven) y Windows (headers de C++)
  • Ofrece un paquete optimizado para Raspberry Pi, con reconocimiento en tiempo real usando un micrófono USB
  • Se publica bajo licencia MIT (modelo en inglés) y Moonshine Community License (modelos en otros idiomas)
  • Hoja de ruta futura: binarios más ligeros para móviles, idiomas adicionales, identificación de hablante mejorada y personalización por dominio

Benchmarks y usos

  • Con una velocidad de procesamiento más de 5 veces superior a Whisper, es adecuado para interfaces de voz en tiempo real
  • Está diseñado con una latencia objetivo inferior a 200 ms, por lo que puede usarse en aplicaciones conversacionales
  • A través de un ejemplo de reconocimiento de comandos, puede reconocer variantes en lenguaje natural como “Turn on the lights”
  • Su rendimiento ya fue validado públicamente en el HuggingFace OpenASR Leaderboard

1 comentarios

 
GN⁺ 2026-03-01
Comentarios en Hacker News
  • Según el OpenASR Leaderboard, Parakeet V2/V3 y Canary-Qwen (una versión ajustada de Qwen) rinden mejor que Moonshine
    Los tres modelos son open source, pero Parakeet es el modelo más pequeño
    Yo uso Parakeet V3 localmente junto con Handy, y funciona muy bien

    • Parakeet V3 tiene más del doble de parámetros (600M) que Moonshine Medium (245M)
      Así que me parece difícil hacer una comparación directa
      Me sorprende que el leaderboard no muestre información sobre el tamaño de los modelos
    • Acabo de probar Handy y de verdad me sorprendió
      Incluso este texto lo estoy escribiendo hablándole a Handy
      El manejo automático de puntuación también es perfecto, y como convierte voz a texto localmente al instante, es mucho más cómodo que Google Docs
      Antes hasta instalé el navegador Orion para intentar usar entrada por voz basada en Chrome, pero ahora con Handy me basta
      Mi velocidad de tecleo era de 100~120 WPM, y esto es aún más rápido
      De verdad es una herramienta que mejora la calidad de vida
    • Estoy desarrollando una app de transcripción para iOS con enfoque local-first, y quiero pasar de Whisper Medium a Parakeet V3
      Al usar codex-cli y Handy juntos en macOS, el atajo predeterminado (Option+Space) mete espacios a mitad del dictado
      En cambio, la combinación Left Ctrl + Fn funciona de forma limpia
      Me da curiosidad saber qué atajos usan otras personas
    • He usado modelos de WhisperX, pero es la primera vez que me entero de Handy
      Lo probé por mi cuenta y es realmente excelente
      Ahora planeo usarlo como app predeterminada en todo mi trabajo con clientes
    • Handy es una app de muy buena calidad
  • Felicidades por el resultado
    En lo personal, lo que más me interesa es la función de streaming
    Yo hice LocalVoxtral, una app de dictado para macOS basada en Voxtral Realtime, y la diferencia de UX entre streaming y STT offline es enorme
    Cuando las palabras aparecen al instante mientras hablas, el bucle de retroalimentación cambia por completo
    Puedes detectar errores y corregir frases en tiempo real, así que se siente mucho más natural
    Me da curiosidad cuál es en la práctica la latencia de streaming de Moonshine
    También quisiera saber si hay un endpoint WebSocket compatible con OpenAI Realtime

    • Mi app usa el paquete de Python moonshine-voice
      Elegí Moonshine por defecto porque tiene el mejor equilibrio entre precisión y latencia
      Más adelante planeo añadir un benchmark objetivo que compare varios modelos con el mismo audio
      También tengo un servidor WebSocket personalizado (rift-local) hecho tomando como referencia la API de Sherpa-onnx
      Está optimizado para una sola conexión, así que no es ideal para conexiones múltiples
  • He ayudado a varios streamers de Twitch a añadir funciones de transcripción y traducción a sus streams mediante obs-localvocal
    Principalmente se usaba para convertir voz en alemán en subtítulos en inglés
    Hace falta una alternativa más rápida y precisa que Whisper, pero los streamers prefieren plugins instalables para OBS
    Moonshine no tiene función de traducción ni soporta detección automática multilingüe, así que tiene limitaciones para streamers que cambian mucho de idioma
    Sería ideal tener una función que detecte el idioma automáticamente y cambie de modelo

  • Afirmar que tiene mayor precisión que Whisper Large v3 es una apuesta audaz
    Me pregunto si en la evaluación se consideró el problema del hallucination loop de Whisper
    También quisiera saber si el uso de VRAM al desplegarlo en edge devices se ajusta a una Mac de 8 GB
    Si corre sin cuantización, sería bastante significativo

  • En un entorno de streaming, la estabilidad parcial importa más que un simple WER
    En el caso de un asistente de voz, si la transcripción parcial cambia cada pocos cientos de ms, la UX se arruina
    Si hubiera métricas como latencia al primer token, proporción en tiempo real y porcentaje de tokens corregidos después de 1 s/3 s, la comparación sería mucho más útil
    Si esos números son buenos, sería muy prometedor para pipelines de asistentes locales

    • Me pregunto si en los humanos también existe una “tasa de corrección parcial”
      Yo también he vivido la experiencia de reinterpretar sobre la marcha lo que estoy diciendo, y parece algo que pasa con frecuencia incluso de forma inconsciente
      Si es así, quizá no haga falta que esa tasa sea demasiado baja
  • Los idiomas compatibles actualmente son inglés, árabe, japonés, coreano, chino, español, ucraniano y vietnamita, y la mayoría son de tamaño Base (58M parámetros)

  • No entiendo por qué en la guía de instalación para Raspberry Pi recomiendan 'sudo pip install --break-system-packages moonshine-voice'
    Aunque en la documentación también presentan una alternativa usando uv
    Si usas uv run, no hace falta ejecutar source por separado

  • No queda claro si la “mejora de precisión” es con base en inglés o en multilingüe
    Como mínimo deberían ofrecer una tabla de WER por idioma para poder comparar

  • Me pregunto si hay planes de soporte para JavaScript en el navegador
    Antes había una demo, pero ya no está
    Hubo un tiempo en que sí funcionaba localmente, pero en algún momento se rompió sin razón aparente

    • Existe moonshine-js, un port basado en WASM: moonshine-js
      También hay un documento comparativo que organiza soluciones de transcripción offline en el navegador
      Además existe una demo separada de Moonshine basada en transformers.js (con WebGPU y fallback a WASM)
  • Si quieres probar Moonshine con una GUI en el navegador, ejecuta el siguiente comando

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

    Esto abrirá RIFT, un frontend web para transcripción local, y también tiene botón de copiar
    Además permite compararlo con Web Speech API y otros modelos, incluidas APIs en la nube
    Enlaces relacionados: rift-local, demo de RIFT