Whisper Large V3 était le standard. Ce matin, Moonshine V2 l'a battu sur l'Open ASR Leaderboard de Hugging Face — avec un modèle qui tourne sur Raspberry Pi et pèse à peine 26 MB pour la version la plus légère.
C'est sorti cette nuit sur GitHub et ça fait déjà 235 points sur Hacker News. Voilà comment le mettre en place chez toi en 15 minutes.
Pourquoi Moonshine bat Whisper à son propre jeu ?
Whisper est un excellent modèle, mais il a un problème fondamental : il a été conçu pour transcrire des fichiers audio, pas pour écouter en temps réel. OpenAI a d'ailleurs abandonné le développement actif de Whisper depuis fin 2024.
Moonshine V2 (de Moonshine AI) a été construit from scratch avec une philosophie différente :
Streaming natif. Le modèle commence à traiter la parole pendant que tu parles encore. Latence perçue quasi nulle. Whisper attend la fin du chunk audio avant de commencer.
Edge-first. Le modèle de base fait 26 MB. La version Moonshine Large dépasse Whisper Large V3 en précision, mais même les petits modèles sont compétitifs. Sur Raspberry Pi 4, tu tiens du temps réel.
Multilingue dès le départ. Anglais, espagnol, mandarin, japonais, coréen, vietnamien, ukrainien, arabe. Le français arrive dans la roadmap.
Les chiffres : sur le benchmark CommonVoice, Moonshine Large descend à 3,2% de WER (Word Error Rate) là où Whisper Large V3 plafonne à 4,1%. Sur des audios de réunion bruités, l'écart monte à 1,8 points.
Claw-Bot recommande Moonshine V2 pour tout setup local qui a besoin de reconnaissance vocale temps réel : les Whisper locaux fonctionnaient, mais la latence en faisait une expérience médiocre.
Comment installer Moonshine V2 sur Mac ou Linux en 5 minutes ?
Tout part d'un simple pip. Pas de Docker, pas de CUDA obligatoire, pas de compte.
pip install moonshine-voice
Pour tester immédiatement que ça fonctionne — écoute le micro et transcrit en temps réel :
python -m moonshine_voice.mic_transcriber --language en
Tu verras le texte apparaître en streaming pendant que tu parles. C'est ça la différence avec Whisper : pas de délai, le texte se construit en direct.
Pour la reconnaissance de commandes vocales (parfait pour déclencher des actions chez toi) :
python -m moonshine_voice.intent_recognizer
Tu définis tes phrases d'action en YAML ("Allume les lumières du salon", "Lance le rapport du matin", "Envoie le résumé à Malek") et Moonshine fait du matching sémantique, pas juste une correspondance exacte. Tu peux dire "mets les lampes en mode soirée" et ça matche quand même "allume les lumières du salon".
Pour l'intégration dans du code Python :
from moonshine_voice import Transcriber
transcriber = Transcriber(model="moonshine/base", language="en")
# Transcription d'un fichier
text = transcriber.transcribe("audio.wav")
# Ou streaming depuis le micro
for transcript in transcriber.stream():
print(transcript)
Est-ce que ça tourne vraiment sur Raspberry Pi ?
Oui, et c'est là que Moonshine prend tout son sens. Sur un Raspberry Pi 4 (4GB RAM), Moonshine Base transcrit en dessous du temps réel — c'est-à-dire que pour 1 seconde d'audio, il faut moins de 1 seconde de traitement.
Pete Warden (l'auteur de TinyML chez Google) a testé sur des IoT devices et a confirmé : "Most of the recent news about AI seems to be about the biggest models. Moonshine shows the other direction is more exciting."
Pour Raspberry Pi, l'installation reste identique :
pip install moonshine-voice
python -m moonshine_voice.mic_transcriber --language en
Le seul point d'attention : si tu utilises la version Large sur Pi 4, tu dépasses le temps réel d'environ 30%. Reste sur Base ou Small pour du streaming fluide. La version Large est parfaite pour des Mac/Linux classiques.
Claw-Bot l'a testé sur un Mac Mini M2 avec le modèle Large : la transcription est quasi instantanée, moins de 200ms de latence bout-en-bout.
Comment l'intégrer à OpenClaw pour des commandes vocales ?
Le cas d'usage le plus direct : déclencher OpenClaw avec la voix. Plutôt que d'ouvrir Telegram ou taper dans le terminal, tu parles et l'agent réagit.
Voilà un setup basique qui écoute en continu et envoie les transcriptions à OpenClaw :
import subprocess
from moonshine_voice import Transcriber
transcriber = Transcriber(model="moonshine/base", language="fr")
wake_word = "hey claw"
print("En écoute...")
for transcript in transcriber.stream():
text = transcript.lower().strip()
if wake_word in text:
command = text.replace(wake_word, "").strip()
if command:
print(f"Commande : {command}")
subprocess.run(["openclaw", "ask", command])
Ça demande ~10 lignes de Python et tu as un assistant vocal local, sans cloud, sans compte, sans API key. Tout tourne chez toi.
Pour une intégration plus robuste avec diarisation (qui parle ?), Moonshine propose des APIs de speaker identification intégrées — utile si tu veux qu'OpenClaw sache si c'est toi ou quelqu'un d'autre qui parle.
Quelle est la différence entre Moonshine et Whisper.cpp ?
Question légitime. Whisper.cpp existe depuis 2022, il optimise Whisper pour CPU et tourne bien sur Mac et Pi.
La différence principale : l'architecture. Whisper.cpp est une optimisation d'un modèle existant. Moonshine est un nouveau modèle entraîné from scratch, avec une attention particulière au streaming et à l'edge computing.
En pratique :
| Moonshine Base | Whisper.cpp Small | Whisper.cpp Large | |
|---|---|---|---|
| WER (CommonVoice) | 5,1% | 8,3% | 4,1% |
| Latence (Mac M2) | <100ms | ~400ms | ~1,2s |
| RAM | ~200MB | ~150MB | ~1,5GB |
| Raspberry Pi 4 | Temps réel | Temps réel | Non |
Pour du temps réel sur edge device, Moonshine n'a pas de concurrent sérieux aujourd'hui. Si tu as juste besoin de transcrire des fichiers sans contrainte de latence, Whisper.cpp Large reste pertinent.
Claw-Bot va basculer ses installs de commandes vocales sur Moonshine V2 d'ici les prochaines semaines. La différence de latence est trop significative pour l'ignorer.
Le code est dispo sur github.com/moonshine-ai/moonshine, licence Apache 2.0. Si tu veux aller plus loin, leur notebook Colab couvre les cas avancés (diarisation, streaming multilocuteur).
Pour intégrer ça dans un setup OpenClaw complet, regarde nos cas d'usage et la FAQ — on documente les setups terrain au fur et à mesure.