Créer son assistant vocal open source
Présentation
Si vous êtes comme moi soucieux de votre vie privée et que vous mettez en avant les solutions open source, bonne nouvelle. Je vous propose aujourd’hui de remplacer votre Google Home et Alexa par un assistant vocal open source que vous pourrez construire vous même.
Pour cela, nous allons utiliser notre bon vieux Raspberry Pi et la carte de développement Matrix Voice. La Matrix Voice Wi-Fi est conçue pour fournir à chaque bricoleur et développeur un outil complet et convivial pour la création d’applications vocales. Elle est équipée de 18 LED RGBW et 8 microphones MEMS. Sa connectique sans fil Wi-Fi b/g/n et Bluetooth 4.0 et sa RAM embarquée lui permettent d’être aussi bien autonome qu’associé à un Raspberry Pi ou Raspberry Pi Zéro.
Bref vous l’aurez comprit, la Matrix Voice à tout d’une grande, capable de faire face à la concurrence sans rougir. Il est tant de se lancer dans le vif du sujet.
Le montage de notre assistant vocal open source
Avant de commencer, voici ce dont vous aurez besoin.
- Raspberry Pi 3 B / B + / Zéro (recommandé) ou Pi 2 Modèle B (pris en charge).
- MATRIX Voice
- Adaptateur secteur micro-USB pour Raspberry Pi.
- Carte Micro SD (minimum 8 Go)
- Haut parleurs
- Connexion Internet (Ethernet ou WiFi)
On commence par installer Raspbian Stretch sur notre carte SD en utilisant Etcher. La compatibilité avec Raspbian Buster n’est pas encore disponible. On installe ensuite le Matrix Voice et la carte SD sur notre Raspberry Pi, il suffit de le poser sur le connecteur 40 pins.
On en profite aussi pour se créer un compte sur le site snips.ai, SNIPS sera le logiciel qui fera office d’intelligence pour notre assistant vocal.
Installation des librairies
Maintenant que notre Raspberry Pi possède son OS Raspbian, nous allons installer les librairies nécessaire à l’utilisation de notre Matrix Voice.
Exécutez les commandes suivantes dans le terminal de votre Raspberry Pi pour ajouter le référentiel MATRIX et mettre à jour vos packages.
curl https://apt.matrix.one/doc/apt-key.gpg | sudo apt-key add –
echo « deb https://apt.matrix.one/raspbian $(lsb_release -sc) main » | sudo tee /etc/apt/sources.list.d/matrixlabs.list
sudo apt-get update
sudo apt-get upgrade
On redémarre notre Raspberry Pi
sudo reboot
Installez les modules du noyau MATRIX. Cela permet aux microphones de votre appareil MATRIX de s’enregistrer en tant que microphone ALSA sur votre Raspberry Pi.
sudo apt install matrixio-kernel-modules
On redémarre une nouvelle fois notre Raspberry Pi
sudo reboot
Notre Matrix Voice est maintenant utilisable depuis votre Raspberry Pi. Pour vérifier, lancer la commande alsamixer et la carte MATRIXIO-SOUND devrais apparaître.
Installation de l’assistant vocal open source SNIPS
Passons maintenant à notre assistant vocal. Pour cela, nous allons utiliser l’utilitaire SAM qui nous permettra de configurer et de monitorer notre assistant vocal SNIPS à distance.
Sur votre ordinateur personnel, vous devez préalablement installer Node.js. Une fois installé, vous pouvez installer SAM sur votre ordinateur à l’aide de la commande suivante.
sudo npm install -g snips-sam
Toujours depuis notre ordinateur personnel, nous lançons les commandes suivantes :
sam connect 192,168,x,x
On remplace l’adresse IP par l’adresse IP de notre Raspberry. On renseigne le login et mot de passe du Raspberry Pi pour s’y connecter.
Pour démarrer l’installation de SNIPS on lance la commande :
sam init
Après quelques minutes, votre SNIPS est installé, passons maintenant à la configuration. Le tout m’a pris moins de 10 minutes.
La configuration de notre assistant vocal open source
L’étape suivante consiste à modifier le fichier snips.toml pour configurer les microphones et le haut parleur.
Sur le terminal de votre Raspberry Pi, exécutez la commande suivante :
sudo nano /etc/snips.toml
Faites défiler jusqu’à l’endroit où vous voyez [snips-audio-server] et remplacez
# mike = « Built-in Microphone »
par
mike = « MATRIXIO-SOUND: – (hw:2,0) »
Appuyez sur ctrl + x, appuyez sur y, puis sur la touche Entrée pour enregistrer vos modifications.
À partir de notre ordinateur personnel, nous allons configurer le microphone, les haut-parleurs et vérifier que tout fonctionne. Pour cela nous lançons la commande :
sam setup audio
On vas pouvoir choisir parmi tous les équipements disponible, celui que l’on souhaite utiliser.
Une fois ceci fait, on peut tester les équipements indépendamment avec les commandes :
sam test speaker
sam test microphone
Si les deux commandes semblent fonctionner, vous avez correctement configuré SNIPS sur votre Raspberry Pi! En cas de soucis, vous pouvez dans le raspi-config forcer la sortie audio en « auto ».
Et si par exemple, vous souhaitez comme moi utiliser les speakers présents sur le Matrix Voice et non pas des enceintes, il suffit de se rendre dans alsamixer puis MATRIXIO-SOUND et modifier la sortie headphone en speakers.
Afin de vérifier que tous les services sont démarrés, on utilise la commande suivante :
sam status
Vous avez fini de configurer votre assistant vocal pour qu’il puisse vous entendre et vous répondre, donnons lui maintenant un peu de reparti.
Première prise en main
Passons aux choses sérieuses, maintenant que tout est installé, on va configurer notre SNIPS pour nous donner l’heure tout simplement.
On se rend sur notre compte snips.ai, on créé un nouvel assistant pour lequel on renseigne le nom, la langue et le hotword (mot déclencheur).
C’est maintenant que l’on peut lui ajouter des fonctionnalités en ajoutant des applications. On cherche et sélectionne l’application « Heure ».
Une fois fait, en bas à droite de la page principale, nous avons un bouton « Deploy assistant ». Quand on clique dessus, on récupère une commande à lancer depuis notre ordinateur personnel.
Cette commande va installer notre assistant ainsi que les applications sélectionnées.
Une fois terminé, il nous reste plus qu’a essayer tout cela. Pour avoir la console de debuggage, lancer la commande suivante :
sam watch
Puis prononcer le hotword ici Jarvis et demander « quelle heure est-il ? » il devrait vous répondre en donnant l’heure.
Si tout se déroule correctement vous visualiserais la question et la réponse dans la console de debuggage.
La suite dans le prochain article
Après ce premier exemple, nous allons voir ensemble dans notre prochain article comment faire fonctionner notre assistant vocal open source SNIPS avec notre Jeedom.
Alléchante perspective de pouvoir piloter notre maison à la voix, ne vous inquiétez pas ce sera simple à mettre en place et je vous réserve une petite surprise.
Dommage #Sonos qui a racheté #Snips a décidé de fermer brutalement l’accès au service au mêmes utilisateurs qui ont contribué à le façonner.