Installation de snips sur raspberry

Le matériel

Pour l’installation, nous allons partir d’une Raspbian Lite, c’est à dire sans interface graphique. Je t’invite à aller voir l’article qui parle de l’installation de raspberry si tu ne sais pas comment faire.

Pour le matériel, il nous faut donc :

  • Un raspberry 3A ou 3B minimum pour un truc qui tient la route
  • Un respeaker 2 mics. Le 2 mics à l’avantage de ne pas être cher. C’est sur cette carte que va s’appuyer cet article. Néanmoins, si tu te sens de maitriser suffisamment Alsa (gestion driver audio sous linux), tu peux prendre un autre micro. Perso, j’ai réussi à le faire avec un kinect de xbox360 😉
  • Un haut parleur USB ou en connecté sur le respeaker 2 mics.
Respeaker 2 mic
Respeaker 2 mic

Une fois notre raspberry configuré, on prend notre putty et on se connecte dessus

32 Comments

  1. Bonjour,

    Tout d’abord merci pour ce tuto, il est très clair !
    J’ai également suivis les instructions et une fois la commande « sam install assistant » tapé, j’obtient la sortie suivant :

    pi@raspberrypi:~ $ sam install assistant
    Fetching assistants done
    Found 1 assistant named Snips
    Downloading assistant
    Fetching assistants done
    ? Deploying assistant to localhost…
    Checking for actions
    Cloning skill Joseph.Heure from url: https://github.com/JDureau/snips-skill-heure
    Already up-to-date.

    Running setup.sh & generating virtual environment for snips-skill-heure
    ? Error setting up virtualenv, one or more actions might not be able to run. Reason :
    DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won’t be maintained after that date. A future version of pip will drop support for Python 2.7.

    Checking actions for end-user parameters
    Relaunching snips-skill-server
    ? Snips assistant is now running. Say hey_snips to start!
    i Run sam watch to see the logs
    pi@raspberrypi:~ $

    Cependant, malgré cette erreur, si je continue le tuto, au moment de tester snips avec sam watch, il arrive que snips me dise l’heure qu’il est (par exemple après un « hey snips, dit moi l’heure »). Cependant il arrive aussi qu’il ne détecte rien du tout (alors que je répète plusieurs fois ma demande) et au bout de 14s j’ai un message me disant qu’il arrête d’écouter). A partir de ce moment, impossible de refaire une demande. J’ai beau enchainer les « aie snips », aucun son sonore ou message visuel m’indique que snips est prêt à écouter ma demande.
    Il m’est également arriver le même problème après que snips ai détecté de la parole mais qu’il n’y a aucune slots dedans.

    Du coup je me demande si l’erreur jointe ci-dessus à un lien ou non et sinon je suis preneur pour toute solutions ou idées ! 🙂

    Merci d’avance,

    Victor

    PS : j’ai déjà tenter de réinitialiser ma rpi en gravant un nouvelle iso sur ma carte SD puis de suivre le tutoriel.

    • Bonsoir,

      il faudrait que tu fasses un « sam watch » pour savoir ce qui se passe. Est ce que le mot clé est bien détecté à chaque fois ? Est ce qu’il reconnait bien tes phrases ? quel module arrête éventuellement de fonctionner ?
      Je t’invite à regarder cette page pour savoir lire la sortie.
      Pour l’erreur de version de python, ce n’est pas un problème en soi et n’empêche pas le bon fonctionnement. Tout est expliqué sur le forum de snips 😉

      @ plus

      Ced

    • Bonjour et merci de ta réponse,

      C’est bien avec la commande « sam watch » que j’ai pu observer des « erreurs » (en tout cas mes problèmes). Une fois la commande « sam watch » lancé et le mot clef (hey snips) détecté, il est assez rare que snips reconnaisse mes commandes. La plus part du temps, j’ai la sortie ci-dessous qui me dit qu’il n’a rien détecté pendant les 14s d’écoute :

      pi@raspberrypi:~ $ sam watch
      [14:11:52] Watching on localhost:1883 (MQTT)
      [14:11:55] [Hotword] detected on site default, for model hey_snips
      [14:11:55] [Asr] was asked to stop listening on site default
      [14:11:55] [Hotword] was asked to toggle itself ‘off’ on site default
      [14:11:55] [Dialogue] session with id ‘017478de-6ee1-46d6-b20b-6d95caa1f8c8’ was started on site default
      [14:11:55] [AudioServer] was asked to play a wav of 41.1 kB with id ‘7748acb5-a8 de-4d40-9157-0c3aff3dddcd’ on site default
      [14:11:56] [AudioServer] finished playing wav with id ‘7748acb5-a8de-4d40-9157-0 c3aff3dddcd’
      [14:11:56] [Asr] was asked to listen on site default
      [14:12:11] [Asr] captured text «  » in 14.0s
      [14:12:11] [Asr] was asked to stop listening on site default
      [14:12:11] [AudioServer] was asked to play a wav of 93.1 kB with id ‘7531d8d2-e7 22-4c6f-b1bf-462a4c9ef8c5’ on site default
      [14:12:12] [AudioServer] finished playing wav with id ‘7531d8d2-e722-4c6f-b1bf-4 62a4c9ef8c5’
      [14:12:12] [AudioServer] was asked to play a wav of 61.1 kB with id ‘c31c910f-3f d3-4bb4-a5d2-4116c7986008’ on site default
      [14:12:13] [AudioServer] finished playing wav with id ‘c31c910f-3fd3-4bb4-a5d2-4 116c7986008’
      [14:12:13] [Dialogue] session with id ‘017478de-6ee1-46d6-b20b-6d95caa1f8c8’ was ended on site default. The session was ended because the platform didn’t unders tand the user
      [14:12:13] [Asr] was asked to stop listening on site default
      [14:12:13] [Hotword] was asked to toggle itself ‘on’ on site default

      A partir de ce moment, j’ai beau repéter « hey snips » autant de fois que je veux, la console ne bougera plus… Le seul moyen que j’ai trouvé pour que mon « hey snips » soit detecté est soit de redémaré ma RPI 3 soit de ré installer snips.

      Du coup cela me laisse très perplexe d’autant plus qu’il est déjà arriver (très rarement) que snips reconnaisse ma commande puis me réponde en conséquence.

      Concernant les services en fonctionnements j’ai uniquement « snips-analytics » qui ne fonctionne pas et lorsque je tente de forcer son activation j’ai la sortie suivante :

      pi@raspberrypi:~ $ snips-analytics -vv
      -bash: snips-analytics: command not found
      pi@raspberrypi:~ $

      Au passage merci pour l’info de la version de python, je n’avais pas vu sur le forum de snips 😀

      Merci d’avance,

      Victor

  2. bonjour j’ai un soucis d’installation snips-analytics 0.63.2 et snips-audio-server 0.63.2 sont toujours en not running pourtant en tes mon micro et enceinte fonctionne bien , j’ai essayé de trouvé des solutions sur le net mais rien a faire . je suis paumé mais en tout cas le tuto super clair et facile

    • Bonjour Jordan,

      Pour snips-analytics, ce n’est pas grave. Il est down pour tout le monde.
      Pour snips-audio-server, tu peux essayer de le démarrer manuellement (en tant qu’utilisateur _snips) et regarder ce que disent les logs :

      sudu -u _snips snips-audio-server -vv

      Ça te donnera certainement un indice 🙂

      Ced

      Ced

    • j’ai testé et je me retrouve avec 2 erreur en rouge :
      ERROR:snips_audio_server : Could not find required input device
      et
      ERROR:rumqtt::client : snips-audio-server|901-raspberrypi-1 Disconnected: (Error(SyncMpsc(Disconnected), State { next_error: None, backtrace: None }))

  3. Bonjour, j’ai réalisé tout ce qui est écrit et cela fonctionne, cependant la vitesse orale de réponse de la part de Snips est beaucoup trop rapide, je n’entends donc pas la réponse. (c’est sur une enceinte mais quand je m’enregistre et que je met l’audio, ma voix est normale et non accélérée) commande : sam test microphone. Y a t-il quelque chose à faire pour remédier a cela ? Un problème de réglage ou de MAJ ?
    Merci pour votre future votre réponse.

  4. Salut,

    Merci pour cette belle procédure.
    J’ai acheté un maker kit chez seedstudio.
    1er chose que je note en dans le sam config audio, quand je selectionne Yes a maker kit. Le micro ne fonctionne pas en sam test microphone.
    J’ai donc mis N puis selectionner le bon micro
    Les sam test microphone et speaker sont concluant.

    une fois l’assitant deployé. Pas moyen d’avoir d’une reponse de snips.
    Dans sam Watch, il detecte bien l’intention :

    [10:53:00] [Asr] captured text « température » in 3.0s
    [10:53:00] [Asr] was asked to stop listening on site default
    [10:53:00] [AudioServer] was asked to play a wav of 93.1 kB with id ‘49800517-7385-4294-880f-18d013414e16’ on site default
    [10:53:01] [AudioServer] finished playing wav with id ‘49800517-7385-4294-880f-18d013414e16’
    [10:53:01] [Nlu] was asked to parse input « température »
    [10:53:01] [Nlu] detected intent checkTemperature with confidence score 1.000 for input « température »
    [10:53:01] [Dialogue] New intent detected checkTemperature with confidence 1.000
    [10:53:06] [Dialogue] session with id ‘0999ea38-db14-4e79-a578-2273511ff87f’ was ended on site default. The session was ended because one of the component didn’t respond in a timely manner

    Comme le montre la derniere ligne il envoie pas la réponse. le composant ne repond pas..
    J’ai refait une install propre mais idem.
    Tous mes status dans sam status sont vert

    • Bonjour Vince,

      Le problème est clairement au niveau de l’action. Et là, il peut y avoir de multiples raisons. Je vais t’envoyer un mail en direct avec quelques questions histoire de cibler d’où peut venir le problème.

      Cédric

  5. Bonjour
    Tu dis avoir fait aussi l’install aevc un kinect. Y a t-il une grosse différence de qualité entre le respeaker et le kinect ? quel est le meilleur ? car j’ai le kinect, autant l’utiliser si c aussi bon que le respeaker.
    Merci

    • Bonjour fred,

      non, le kinect est loin d’être aussi bon que le respeaker pour le moment dans mon cas. Je pense qu’il doit y avoir moyen d’optimiser tout ça mais c’était plus pour le challenge que pour de la prod ^^.
      Le volume d’enregistrement reste très faible et je n’ai pas pris le temps de comprendre pourquoi.
      Mais comme je l’ai dit, c’était plus dans le cadre de test et dans le futur, je pense que je vais le remplacer par un respeaker mic array v2

      Ced

  6. Hello
    Super projet ça a l’air top et le tuto bien fait. J’arrive à l’étape sam install assistant et il me demande enter the path to home assistant. De quel répertoire s’agit-il ?
    Merci de votre aide
    Mathieu

    • Bonjour matthieu,

      C’est tout simplement parce que tu as dans ton assistant une application qui s’appuie sur home-assistant dans ces actions. Au vu de ta question, tu n’as pas home assistant (concurrent jeedom, eedomus, openhab etc…).
      Il faut donc que tu trouves cette application et que tu l’enlèves de l’assistant. Pour cela, tu dois Forké toutes tes applications ainsi que les intents et regarder chaque action.
      Il y’a plusieurs possibilité : Snipplets, github et home assistant. Si ton action fait appel à home assistant, ce n’est pas bon 🙂

      Ced

    • Bonjour
      Effectivement je suis aller un peu vite j’ai voulu essayer pleins d’app snips 😆.
      Par contre j’ai maintenant pleins d’erreurs de ce type quand je fait Sam install assistant.
      Une idée ?
      Certaines apps ont besoin de l’assistant Google ? Je peux faire un mix de snips et de Google ?
      Merci


      Cloning skill bluevert.Heure from url: https://github.com/JDureau/snips-skill-heure
      error: impossible d’ouvrir .git/FETCH_HEAD: Permission non accordée

      Running setup.sh & generating virtual environment for snips-skill-heure
      ✖ Error setting up virtualenv, one or more actions might not be able to run. Reason :
      Traceback (most recent call last):
      File « /usr/lib/python3/dist-packages/virtualenv.py », line 2379, in

    • Bonjour Mathieu,

      Nettoie tout et refait un sam install assistant :
      pi@raspberrypi:~ $ sudo rm -r /usr/share/snips/assistant/*
      pi@raspberrypi:~ $ sudo rm -r /var/lib/snips/skills/*

      Ced

    • Bonjour Pour information j’ai du repartir de zéro et réinstallé ma distribution. Quand j’installe qu’une seule application cela marche sans problème par contre des que j’essaye d’installer une application qui nécessite home assistant cela plante tout. Cela capte bien la voix mais ne répond plus.
      A priori des bugs ont été saisies sur ce problème.

    • Bonjour Mathieu,

      Effectivement, si tu n’as pas home-assistant, il ne faut pas installer les applications qui nécessitent en pré-requis home-assistant.
      C’est vrai que le store d’application de snips est excessivement mal fait à l’heure d’aujourd’hui car il n’est pas possible de trier les applications par la technologie des actions (avec ou sans, HA, github, snippets).
      Il n’y a plus qu’à espérer que ce soit une futur mise à jour proche !

      Ced

  7. Hello,

    Genial tes tutos. Il manque l’integration a Jeedom ! 😀
    petite coquille, page 4, juste avant le paragraphe « l’installation de sam » il faudrait modifier la commande
    sudo apt-get install -y snips-platform-voice snips-skill-server
    par
    sudo apt-get install -y snips-platform-voice snips-skill-server snips-watch

    Sinon il manque un bout;

    Bon je sais que maintenant il y a sam init mais bon…

    Freddy

    • Bonjour Freddy,

      Effectivement, mais tu remarqueras que l’install de snips-watc est page 7 😉
      J’avais déjà remarqué ce détail mais commme l’install est donnée un peu plus loin, j’ai laissé l’article comme il est 🙂

      En tout cas merci pour la relecture ! 🙂

      Ced

  8. Bonsoir Ced,
    J’ai fait un rpi-update et je m’en mors les doigts GRRRRR
    Mon respeaker 2 mic tirer sa révérence.J’ai essayé de ré-installer les pilotes rien n’y fait.
    Problème connu et une solution existe? ou suis-je le seul?

  9. Merci Ced
    Il me manquait un argument dans l’ajout de mon utilisateur dans le groupe sudo.
    Je faisait usermod -G sudo Nouvel utilisateur au lieu de
    usermod -a -G sudo Nouvel utilisateur je teste ça aujourd’hui.

  10. Bonjour,
    Merci pour ce Tuto clair et précis.
    J’ai 2 soucis :
    Si je choisi un autre nom d’utilisateur que pi tout se passe bien jusqu’au reboot post install de mon respeaker2mic; lsmod | grep seeed ne retourne rien aplay -l et arecord -l idem par contre si aplay -l et arecord -l exécuté en sudo ma carte est bien présente ( utilisateur crée au départ appartenant au groupe sudo et pi supprimé avant toute install)
    Et deuxièmement si je fait une Maj du kernel dans dernière mouture avec une installation avec user pi par défaut j’ai le même souci qu’en haut.
    Avez vous une idée ?
    Merci
    Hervé

    • Bonsoir,

      Il ne faut pas oublier d’ajouter ce nouvel utilisateur dans les mêmes groupes natifs que pi. Pour en obtenir la liste :
      cat /etc/group | grep pi

      ensuite il faut exécuter cette commande pour chaque groupe :
      usermod -a -G groupe nouvel_utilisateur

      où « groupe » est le nom du groupe à affecter au nouvel utilisateur et « nouvel_utilisateur » le login du nouvel utilisateur.

      Si cela n’est pas fait, le nouvel utilisateur créé n’a pas accès à certaines ressources (audio, gpio etc…)

      Ced

  11. Bonjour,
    Merci pour ce tuto. J’ai bien suivi toutes les étapes mais lors du test du micro, j’ai un fort grésillement et ma voix est quasi inaudible.
    Tu sais d’ou ca peut venir ?
    Merci

    • Bonjour Pang,

      Il me faudrait plus d’info sur le matériel utilisé mais là, il semblerait que cela soit un problème matériel. Surtout si tu entends ta voix dans le fond.

      Cela peut-être dû à un défaut de masse ou une pollution de ton alimentation. Ce sont là que des suppositions, mais si j’étais toi, j’essaierai de changer d’alimentation et de micro dans un premier temps pour voir le résultat.

      Ced

Poster un Commentaire

Votre adresse de messagerie ne sera pas publiée.


*


Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.