Installation de snips sur raspberry

Vérification de bon fonctionnement

Nous allons maintenant vérifier si tout se passe bien. Pour cela tu vas faire :

sam watch

Si il ne trouve pas la commande (ce qui vient de m’arriver), pas très grave, on l’installe :

sudo apt-get install snips-watch

On lance donc « sam watch », on fait « Hey ! snips » on attend le ding puis : « Quelle heure est il ? »
Voici le résultat

pi@snips-bureau:~ $ sam watch
[01:47:40] Watching on localhost:1883 (MQTT)
[01:47:43] [Hotword] detected on site default, for model hey_snips
[01:47:43] [Asr] was asked to stop listening on site default
[01:47:43] [Hotword] was asked to toggle itself 'off' on site default
[01:47:43] [Dialogue] session with id '88925e74-f10a-4cd2-8c03-cbfd4187fa1f' was started on site default
[01:47:43] [AudioServer] was asked to play a wav of 41.1 kB with id '1ba09837-66b4-4eca-abdb-dfa82b0fcd03' on site default
[01:47:44] [AudioServer] finished playing wav with id '1ba09837-66b4-4eca-abdb-dfa82b0fcd03'
[01:47:44] [Asr] was asked to listen on site default
[01:47:47] [Asr] captured text "quelle heure est il" in 2.0s
[01:47:47] [Asr] was asked to stop listening on site default
[01:47:47] [AudioServer] was asked to play a wav of 93.1 kB with id '57ac49b0-09ad-450a-bb18-30c9a65c18e0' on site default
[01:47:48] [AudioServer] finished playing wav with id '57ac49b0-09ad-450a-bb18-30c9a65c18e0'
[01:47:48] [Nlu] was asked to parse input "quelle heure est il"
[01:47:48] [Nlu] detected intent Joseph:askTime with probability 1.000 for input "quelle heure est il"
[01:47:48] [Dialogue] New intent detected Joseph:askTime with probability 1.000
[01:47:48] [Dialogue] was ask to end session with id 88925e74-f10a-4cd2-8c03-cbfd4187fa1f by saying 'Il est une heure 47'
[01:47:48] [Tts] was asked to say "Il est une heure 47"
[01:47:48] [AudioServer] was asked to play a wav of 59.2 kB with id '4197fa97-fe82-4a40-8a2d-45bb74475055' on site default
[01:47:50] [AudioServer] finished playing wav with id '4197fa97-fe82-4a40-8a2d-45bb74475055'
[01:47:50] [Tts] finished speaking with id '7ff8c840-d7e6-40c4-a992-3f18496dfe3d'
[01:47:50] [Dialogue] session with id '88925e74-f10a-4cd2-8c03-cbfd4187fa1f' was ended on site default. The session ended as expected
[01:47:50] [Asr] was asked to stop listening on site default
[01:47:50] [Hotword] was asked to toggle itself 'on' on site default

Oula !! Oulalala !!! Je sens que je viens de te perdre. Alors tu sais quoi, on va regarder ce log d’un peu plus près et voir ce qu’il nous dit.

[01:47:40] Watching on localhost:1883 (MQTT)

Cette ligne nous dit que sam watch (alias snips-watch) est en train de surveiller le serveur MQTT sur localhost. localhost, c’est la machine elle même, celle sur laquelle tu viens de lancer la commande. 1883, c’est le port TCP. Bon si ce n’est pas clair, ce n’est pas très grave, retiens juste que cette ligne te dit ce que l’outil de log surveille.

[01:47:43] [Hotword] detected on site default, for model hey_snips

Bon, tu n’es pas bilingue, mais tu comprends vite qu’il vient d’entendre le mot clé (hotword) « Hey ! snips » sur le site « default ». En fait pour le moment, notre snips étant autonome, le site est le site par défaut. Et pour ne pas compliquer plus le truc du coup, le site s’appelle « default »

[01:47:43] [Dialogue] session with id '88925e74-f10a-4cd2-8c03-cbfd4187fa1f' was started on site default
[01:47:43] [AudioServer] was asked to play a wav of 41.1 kB with id '1ba09837-66b4-4eca-abdb-dfa82b0fcd03' on site default
[01:47:44] [AudioServer] finished playing wav with id '1ba09837-66b4-4eca-abdb-dfa82b0fcd03'

Là, on comprend que le dialogue s’ouvre avec snips. En fait, pour être plus précis, que le composant s’occupant du dialogue avec l’utilisateur vient de s’activer. Et pour nous prévenir que cela va être à nous de parler, un petit son est joué (play a wav of 41.1 kB). C’est le petit « ding » que tu entends juste après le « Hey ! snips ».
Au passage, on notera qu’un identifiant unique vient d’être créé pour notre dialogue. Cela permettra le suivi éventuel dans le cas d’un échange plus complexe. L’id c’est le truc bizarre « 1ba09837-66blablablabla »

[01:47:44] [Asr] was asked to listen on site default
[01:47:47] [Asr] captured text "quelle heure est il" in 2.0s
[01:47:47] [Asr] was asked to stop listening on site default

ASR vient de se mettre en route. C’est quoi ASR ? « Automatic Speech Recognition ». C’est ce qu’on appelle vulgairement la reconnaissance vocale. Je dis vulgairement parce que c’est un raccourci, mais ce n’est pas le sujet 🙂 .
Donc, je disais que l’ASR venait de se déclencher et qu’il a capturé ce que j’ai dit et retranscris par écrit : « Quelle heure est il ».

[01:47:47] [AudioServer] was asked to play a wav of 93.1 kB with id '57ac49b0-09ad-450a-bb18-30c9a65c18e0' on site default
[01:47:48] [AudioServer] finished playing wav with id '57ac49b0-09ad-450a-bb18-30c9a65c18e0'

Vu qu’il a détecté qu’on avait fini de causer, un petit « ding » est joué par notre AudioServer.

[01:47:48] [Nlu] was asked to parse input "quelle heure est il"
[01:47:48] [Nlu] detected intent Joseph:askTime with probability 1.000 for input "quelle heure est il"
[01:47:48] [Dialogue] New intent detected Joseph:askTime with probability 1.000

Là, c’est le NLU qui s’active. Le NLU c’est Native Language Understanding (compréhension du langage naturel). Grosso modo, c’est le module qui va se charger de comprendre ce que la phrase veut dire et ce qui en est attendu.

Dans le cas de snips, le NLU va faire la relation avec un intent (une intention). Celui-là même que nous avons ajouté via l’application qui donne l’heure. Et le NLU nous donne même la probabilité avec laquelle il en est sûr. Ici c’est 1, mais 1 veut dire 100%. Le NLU te donnera toujours un chiffre entre 0 et 1. Par exemple, 0,5 c’est 50%.

[01:47:48] [Dialogue] was ask to end session with id 88925e74-f10a-4cd2-8c03-cbfd4187fa1f by saying 'Il est une heure 47'
[01:47:48] [Tts] was asked to say "Il est une heure 47"

Il est demandé à notre AudioServer de finir la discussion en donnant l’heure. Et c’est le composant TTS qui s’en charge. TTS ? « Text To Speech ». Là, tu as trouvé comme un grand, c’est la petite voix qui cause dans le poste et qui lit le texte.

Le reste du log n’a pas trop d’importance, et puis avec ce que tu viens de lire, tu sauras l’interpréter.

Voilà ! Tu es maintenant prêt à analyser la sortie de sam watch !

Soyez le premier à commenter

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.