- Framework de reconnaissance vocale en temps réel entièrement exécuté on-device
- Grâce à une architecture de modèle orientée streaming, le texte est généré en temps réel pendant que l’utilisateur parle, avec un taux d’erreur (WER 6,65 %) inférieur à celui de Whisper Large v3
- Fonctionne avec la même API sur Python, iOS, Android, MacOS, Linux, Windows, Raspberry Pi et d’autres plateformes, avec une optimisation fondée sur un cœur C++ et OnnxRuntime
- Inclut des modèles par langue (anglais, coréen, japonais, espagnol, etc.) ainsi que la reconnaissance de commandes (Intent Recognition), afin de permettre aux développeurs de créer facilement des interfaces vocales
- Corrige les limites de Whisper liées à l’entrée fixe de 30 secondes, à l’absence de cache et à la précision selon les langues, et attire l’attention comme alternative adaptée à la mise en œuvre d’interfaces vocales à faible latence dans des environnements edge
Présentation de Moonshine Voice
- Moonshine Voice est une boîte à outils IA open source pour le développement d’applications vocales en temps réel
- Tous les calculs sont effectués sur l’appareil local, garantissant une réponse rapide et la protection de la vie privée
- Le traitement en streaming permet de mettre à jour le texte pendant que l’utilisateur parle
- Les modèles reposent sur une recherche interne et sur une architecture entraînée from scratch, avec une précision supérieure à Whisper Large v3
- Plusieurs tailles sont proposées, du modèle ultra-compact de 26 MB au modèle intermédiaire de 245M de paramètres
- Prise en charge multilingue de l’anglais, du coréen, du japonais, du chinois, de l’espagnol, du vietnamien, de l’arabe, de l’ukrainien et d’autres langues
Principales améliorations par rapport à Whisper
- Suppression de la fenêtre d’entrée fixe de 30 secondes de Whisper, avec prise en charge d’entrées de longueur variable
- Ajout d’une fonction de cache pour réduire les calculs redondants en streaming et réduire fortement la latence
- Entraînement de modèles monolingues pour obtenir une précision supérieure à taille égale
- Une bibliothèque cœur C++ multiplateforme permet d’utiliser la même API depuis Python, Swift, Java, etc.
- Un modèle de 245M de paramètres, plus petit que Whisper Large v3 (1.5B de paramètres), obtient un taux d’erreur plus faible
Fonctionnalités principales et structure de l’API
- Le pipeline de reconnaissance vocale est unifié dans une seule bibliothèque pour gérer l’entrée micro, la détection vocale (VAD), la conversion en texte, l’identification du locuteur et la reconnaissance de commandes
- Classes principales :
- Transcriber : convertit l’entrée audio en texte
- MicTranscriber : traite automatiquement l’entrée microphone
- IntentRecognizer : reconnaissance de commandes en langage naturel
- Architecture orientée événements, permettant de détecter en temps réel les changements d’état tels que LineStarted / LineUpdated / LineCompleted
Modèles et performances
- Moonshine Medium Streaming (245M) : WER 6,65 %, meilleur que Whisper Large v3 (7,44 %)
- Moonshine Small Streaming (123M) : WER 7,84 %
- Moonshine Tiny Streaming (34M) : WER 12,00 %
- Le modèle Tiny coréen a été évalué à un WER de 6,46 %
- Tous les modèles sont fournis au format .ort basé sur OnnxRuntime, avec une quantification 8 bits pour les alléger
Développement et déploiement
- Installation possible sur les principaux environnements comme Python (pip install moonshine-voice), Swift (SPM), Android (Maven) et Windows (en-têtes C++)
- Un package optimisé pour Raspberry Pi est proposé, avec reconnaissance en temps réel via microphone USB
- Publication sous licence MIT (modèles anglais) et Moonshine Community License (modèles dans les autres langues)
- Feuille de route à venir : allégement des binaires mobiles, ajout de langues, amélioration de l’identification du locuteur, personnalisation par domaine
Benchmarks et usages
- Une vitesse de traitement plus de 5 fois supérieure à Whisper, adaptée aux interfaces vocales en temps réel
- Conçu avec un objectif de latence de réponse inférieur à 200 ms, pour une utilisation dans des applications conversationnelles
- Les exemples de reconnaissance de commandes montrent aussi la prise en charge de variantes en langage naturel comme “Turn on the lights”
- Performances publiques validées sur le HuggingFace OpenASR Leaderboard
Aucun commentaire pour le moment.