alexylem / jarvis

Jarvis.sh is a simple configurable multi-lang assistant.
http://openjarvis.com
MIT License
805 stars 197 forks source link

Nouveau TTS Hors ligne avec Snowboy pour reconnaissance du mot clé #8

Closed alexylem closed 8 years ago

alexylem commented 8 years ago

https://snowboy.kitt.ai/

remjou1 commented 8 years ago

tu compte l'ajouter a jarvis ?

alexylem commented 8 years ago

Oui comme alternative hors-ligne de PocketSphinx

alexylem commented 8 years ago

Premiers test de snowboy très concluants sur Mac (ultra rapide) 😄

physicien commented 8 years ago

Est-ce que snowboy est multilingue ou seulement en anglais? Après, pour reconnaître un seul mot, ça n'a pas vraiment d'importance.

alexylem commented 8 years ago

Il est vraiment language independant. L'utilisateur enregistre le trigger avec sa voix. Imparable. Je suis en train de l'intégrer à Jarvis. Je pense même en faire le STT engine par défaut pour la reconnaissance de JARVIS.

physicien commented 8 years ago

Oh wow. C'est exactement ce qu'il faut. Ça me fait penser, avons-nous un ordre de grandeur quant au pourcentage d'utilisation du CPU d'une RP3 pour une config de Jarvis avec snowboy + envoie à un serveur?

alexylem commented 8 years ago

https://snowboy.kitt.ai/docs

light-weight and embedded: it runs on Raspberry Pi’s and consumes less than 10% CPU on the weakest Pi’s (single-core 700M Hz ARMv6).

J'attends les tests sur mon Raspberry Pi 3 pour confirmer, ca devrait être insignifiant 😄 Sur mon Macbook Air la c'est juste bluffant, la détection se fait au moment exact ou j'ai fini de prononcer "snowboy".

Aucun délai, imagine:

"ssnnoowwbbooy[BIIIIIP]y"

Par contre par défaut le modèle est avec le mot clé "snowboy". Je pense le laisser tel quel pour que vous puissiez en profiter rapidement avant de faire l'interface pour trainer un autre mot clé (comme "JARVIS")

physicien commented 8 years ago

Parfait! Je demande, car je veux rouler OpenCV (sur la même RP3 de préférence) et ça je sais que ça peut en demander plus.

alexylem commented 8 years ago

Je fais déjà tourner OpenCV sur le même raspberry pi 3, car je compte intégrer à Jarvis bientôt la détection et reconnaissance faciale avec apprentissage. D'ailleurs j'ai déjà fini cette partie (surement le sujet de ma prochaine vidéo youtube) mais l'intégrer à Jarvis prendra du temps (car j'aimerais tout réécrire en Python pour l'occasion).

physicien commented 8 years ago

Fabuleux! C'est exactement une des applications que je comptais utiliser, ça et la reconnaissance d'obstacles à distance (mais ça c'est une autre histoire). Bref, si je peux aider en quoi que ce soit, je suis rarement loin de mon PC.

alexylem commented 8 years ago

Je viens de finir l'intégration de snowboy avec Jarvis. Ca fonctionne à merveille sur Mac:

------- Config (verbose) -------
platform              osx 
language              fr_FR 
play_hw               false 
rec_hw                false 
trigger_stt           snowboy 
command_stt           google 
tts_engine            osx_say 
--------------------------------
SNOWBOY: Bonjour Alex
SNOWBOY: Waiting to hear 'SNOWBOY'
Alex: SNOWBOY
SNOWBOY: Oui?
Alex: au revoir
SNOWBOY: Au revoir Alex

Je commence les tests sur Raspberry Pi 3 (surtout la partie installation automatique de snowboy) et si c'est tout bon je mets en ligne 😄

alexylem commented 8 years ago

Premier tests de Snowboy sur Raspberry Pi 3 tout aussi concluants. Le CPU tourne aux alentours de 5% avec des pics à 10%. La reconnaissance est aussi fulgurante que sur le Mac. Aucun délai.

Il faut par contre que j'améliore encore un peu le script d'installation (la compilation n'est pas évidente) et la manière dont sont gérés les périphériques audio dans Jarvis (ce qui nécessitera probablement un reboot à chaque fois qu'on modifiera un périphérique...). Mais le jeu en vaut la chandelle.

physicien commented 8 years ago

Ce sera déjà ça de fait d'avoir un magic word qui fonctionne à tout coup! Je suppose qu'il est encore plus facilement modifiable ce mot, vu qu'on a pas besoin de gérer de dictionnaire ou de language model?

alexylem commented 8 years ago

Oui mais comme je disais plus haut ca ne sera pas pour tout de suite (car je souhaite que vous puissiez en profiter et commencer à le tester rapidement). Donc il faudra se contenter de "SNOWBOY" comme mot magique pour le moment (le temps que je fasse l'interface pour trainer un autre mot)

alexylem commented 8 years ago

J'ai trouvé ca dans la doc de snowboy ce qui confirme mes résultats de test: capture d ecran 2016-06-25 a 18 49 54

physicien commented 8 years ago

Bien, ça laisse donc toute la place à OpenCV. J'ai hâte de l'essayer :smile:

alexylem commented 8 years ago

Intégration de Jarvis avec snowboy terminée. La mise à jour est disponible!

IMPORTANT

  1. une fois la mise à jour effectuée, veuillez redémarrer votre raspberry pi
  2. aller dans Settings > Voice recognition > Reco of magic word > choisir snowboy
  3. cela changera votre trigger à SNOWBOYcar on ne peut pas le modifier pour le moment, cela est prévu dans une prochaine version, suivre l'implémentation ici #13

Si vous rencontrez des erreurs en utilisation basique de snowboy veuiller réouvrir ce ticket.

physicien commented 8 years ago

Malheureusement, dès qu'il entre en mode écoute après avoir entendu son nom, j'ai ce message d'erreur. J'ai essayé de changer de STT engine pour le mode écoute et ce n'est pas ça. capture d ecran - 2016-06-25 - 20 28 25

EDIT: Cependant, je tiens à remarquer que les performances de snowboy sont remarquables!

alexylem commented 8 years ago

merci pour le screenshot ca aide bcp, va dans Settings > Audio > Speaker / Mic et refais la sélection des deux. Ca devrait résoudre ton problème, si toujours pas, redémarre.

physicien commented 8 years ago

Oui, c'était bien ça. Merci.