Réalisez votre propre Google Home pour environ 50 €. 

Posted on Posted in Non classé

Google Home est un assistant virtuel physique qui se présente sous la forme d’une petite enceinte connectée et intelligente. Il est actuellement vendu à 149 euros. 

Si vous n’avez pas ce budget, ou si vous hésitez à mettre cette somme dans ce gadget ou si encore vous avez un Raspberry PI qui ne sert pas à grand-chose. Mon article vous dévoile comment à partir d’un simple Raspberry PI, il est aussi possible de créer votre Google Home qui actionnera « Google Assistant ». 

Votre Google Home fait « par vous-même », pourra alors : 

  • donner la météo 
  • apporter des informations sur l’état de la circulation 
  • rappeler vous rendez-vous 
  • enregistrer et énumérer votre liste de courses 
  • enregistrer des notes 
  • apporter des réponses à vos questions. Exemple : qui est le président des Etats-Unis ? Quelle est la distance entre la Lune et la Terre ?… 

 

Pour transformer votre Raspberry Pi en un Google Home, il vous faut : 

  • RaspberryPi Modèle 2 ou 3. 
  • Une carteMicroSD (minimum recommandé 8 Go).avec Raspbian dessus  
  • Une alimentation électrique pour alimenter votreRaspberry Pi. (Tout chargeur mobile USB avec un minimum de 5 V et sortie 2A fonctionnera.) 
  • unmicrophone USB (Exemple : Sienoc USB 6.58 € sur Amazon). 
  • Un haut-parleur avec sortie jack
  • Une LED.
  • Des câbles pour se connecter à la LED. 

Une fois que vous avez toutes ces éléments, connectez-vous à votre Raspberry PI et suivez les étapes suivantes un par un. 






Etape 1Installer le microphone USB 

Le Raspberry Pi n’a pas de microphone intégré. Si vous voulez enregistrer l’audio, vous devez alors brancher un microphone USB. 

  • Branchez votre micro USB dans un des ports USB de votre Raspberry Pi. 
  • Accédez au terminal et tapez la commande suivante. 
arecord -l 

Cette commande liste tous les périphériques audio enregistrement disponibles. Vous devriez retrouver votre périphérique de sortie. Si ce n’est pas le cas… vous ne pourrez pas aller plus loin. Le microphone choisi n’est pas reconnu par le Raspberry PI… 

  • Ensuite, il faut changer la configuration audio.  
sudo nano /etc/asound.conf 
  • Ajoutez les lignes ci-dessous dans ce fichier. Appuyez ensuite sur Ctrl + X puis Y pour enregistrer le fichier. 
pcm.!default {
type asym
capture.pcm "mic"
playback.pcm "speaker"
}
pcm.mic {
type plug
slave {
pcm "hw:1,0"
}
}
pcm.speaker {
type hw
card 0
}
ctl.!default {
type hw card 0
}

Votre microphone externe sera alors reconnu en tant que périphérique de capture audio et votre haut-parleur utilisera votre carte son intégré. 

  • Il faut créer un nouveau fichier de configuration « asoundrc » avec les mêmes paramètres que ci-dessus : 
sudo nano .asoundrc.
  • Et ajoutez les lignes ci-dessous dans ce dernier fichier. Appuyez ensuite sur Ctrl + X puis Y pour enregistrer le fichier. 
pcm.!default {
type asym
capture.pcm "mic"
playback.pcm "speaker"
}
pcm.mic {
type plug
slave {
pcm "hw:1,0"
}
}
pcm.speaker {
type hw
card 0
}
ctl.!default {
type hw card 0
}

Voilà vos périphériques pour le son sont installés. 

Faisons un test pour vérifier que tout cela fonctionne parfaitement. 

  • Pour tester la sortie Haut-parleur : 
speaker-test -t wav 

Normalement, vous devriez entendre successivement « Right, left… ». Si c’est bon appuyez sur les touches Ctrl+C. 

  • Pour tester le microphone : 
arecord --format=S16_LE --duration=5 --rate=16k --file-type=raw out.raw 

Cette commande enregistre sur une courte durée. Il faut faire du bruit ou parler!  

En tapant la commande ci-dessous, vous devriez entendre votre enregistrement. 

aplay --format=S16_LE --rate=16k out.raw 

Si le son est faiblement audible, changer les paramètres sonores à partir de la barre de tâche de Raspbian. 

Si tout fonctionne correctement, alors mettez à jour votre système : 

sudo apt-get update 

 






Etape 2Télécharger les paquets requis et configurer l’environnement Python: 

  • A partir de votre terminal, tapez les commandes ci-dessous: 
sudo apt-get install python3-dev python3-venv 
python3 -m venv env 
env/bin/python -m pip install --upgrade pip setuptools 

Ceci va créer l’environnement Python 3 (Google Assistant fonctionne uniquement avec Python 3 

  • Activez l’environnement Python et installez le paquet Google Assistant SDK qui contient tout le code pour faire tourner Google Assistant : 
source env/bin/activate 
python -m pip install --upgrade google-assistant-library 

 


Etape 3Enregistrer son projet sur Google Cloud. 

  • Ouvrez la console Google Cloud et de créer un nouveau projet. (Vous pouvez le nommer comme vous le voulez.) Le compte avec lequel vous vous connectez sera utilisé pour envoyer des requêtes à Google et obtenir vos réponses à vos requêtes. 
  • A partir du gestionnaire API manager, activez l’API Google Assistant. 
  • Assurez-vous d’activer l’activité Web et App, l’information du dispositif et l’activité de la Voix et de l’audio dans le contrôle de l’activité Activity Controls. 
  • Allez sur “Credentials » et configurer l’écran OAuth Content comme suit. 
  • Allez sur l’onglet “Credentials” et créez un nouveau OAuth client ID. 
  • Sélectionnez le type d’application « Other » et donnez un nom. 
  • Cela va créer un fichier .JSON. Changez le nom de ce fichier. J’ai choisi ce nom : assistant.json. Faites de même et sauvegardez ce fichier JSON sur le répertoire /home/pi/Downloads/ de votre Raspberry  

 


Etape 4Authentifiez votre Raspberry PI. 

  • Installez l’outil d’autorisation en exécutant la commande ci-dessous: 
python -m pip install --upgrade google-auth-oauthlib[tool] 

Puis la commande suivante. On retrouvera ici le chemin vers notre fichier json 

google-oauthlib-tool --client-secrets "/home/pi/Downloads/assistant.json" --scope https://www.googleapis.com/auth/assistant-sdk-prototype --save --headless 






C’est alors que vous allez recevoir une invitation à copier une url sur votre navigateur (sélectionnez ce lien avec votre souris, clic droit et enfin collez sur le champ URL de votre navigateur). C’est alors qu’un long code va s’afficher. Copiez le et collez à l’endroit demandé sur votre terminal. Le plus dur est fait… 


Etape 5Installer une LED pour indiquer que Google Assistant vous écoute. 

  • Connecter votre LED entre le GPIO pin 25 et une masse. 

 


 Etape 6Lancer Google assistant au démarrage de votre Raspberry PI 

 

  • Ajouter le paquet RPi.GPIO  
pip install RPi.GPIO 
  • Créez un nouveau fichier python : main.py 
cd /home/pi  
sudo nano main.py 
  • Et écrivez ces lignes de commande: 

 

#!/usr/bin/env python  

from __future__ import print_function  

import argparse  

import os.path  

import json  

import google.oauth2.credentials  

import RPi.GPIO as GPIO  

from google.assistant.library import Assistant from google.assistant.library.event import EventType  

from google.assistant.library.file_helpers import existing_file  

GPIO.setmode(GPIO.BCM)  

GPIO.setup(25, GPIO.OUT)  

def process_event(event):  

"""Pretty prints events. Prints all events that occur with two spaces between each new conversation and a single space between turns of a conversation. Args: event(event.Event): The current event to process. """  

if event.type == EventType.ON_CONVERSATION_TURN_STARTED: print() GPIO.output(25,True) print(event)  

if (event.type == EventType.ON_CONVERSATION_TURN_FINISHED andevent.args and not event.args['with_follow_on_turn']): print()GPIO.output(25,False 

def main():  

parser = argparse.ArgumentParser( formatter_class=argparse.RawTextHelpFormatter) parser.add_argument('--credentials', type=existing_file, metavar='OAUTH2_CREDENTIALS_FILE', default=os.path.join(os.path.expanduser('/home/pi/.config'), 'google-oauthlib-tool', 'credentials.json' ), help='Path to store and read OAuth2 credentials')  

args = parser.parse_args()  

with open(args.credentials, 'r') as f: credentials = google.oauth2.credentials.Credentials(token=None, **json.load(f))  

with Assistant(credentials) as assistant: for event in assistant.start(): process_event(event)  

if __name__ == '__main__': main() 
    • Créez maintenant un script shell qui va initialiser et exécuter l’Assistant Google. 
sudo nano google-assistant-init.sh 
    • Collez les 2 lignes ci-dessous dans ce fichier puis enregistrer ce fichier: 
#!/bin/sh   /home/pi/env/bin/python3 -u /home/pi/main.py 
    • Demander une autorisation d’exécution 
sudo chmod +x google-assistant-init.sh 
  • Demandons à ce que Raspberry démarre Google Assistant au démarrage. 
sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart 

Ajouter après la ligne @xscreensaver -no-splash 

@lxterminal -e "/home/pi/google-assistant-init.sh"

Etape 7:  Redémarrez votre raspberry et vous pouvez utiliser votre Google Assistant. 

  • Sur votre terminal, tapez:
sudo reboot

L’Assistant Google est disponible en anglais, en allemand, en espagnol, en français, en hindi, en japonais et en portugais. 

Pour communiquer avec votre assistant dans une autre langue, demandez-lui de changer de langue.  

Par exemple: « OK GOOGLE. Parle-moi en français »  

Mes sources pour écrire cette article:

https://developers.google.com/assistant/sdk/develop/python/hardware/setup

 

Avez-vous réussi à installer Google Assistant sur votre Raspberry PI? Oui
Non
Partiellement

 





Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *