Comment créer un assistant Google Home DIY avec Raspberry Pi

Comment créer un assistant Google Home DIY avec Raspberry Pi

Les assistants à commande vocale sont rapidement devenus monnaie courante. De nombreuses maisons ont un Alexa ou Google Home contrôlant tout, de l'éclairage aux médias, et même le chronométrage.





La technologie sur laquelle ces appareils fonctionnent est disponible --- au moins en partie --- pour tout le monde. Le SDK Assistant de Google vous permet d'utiliser le service sur vos propres appareils. Ce didacticiel explique comment configurer l'assistant Google sur votre Raspberry Pi et activer vocalement une LED via les broches GPIO.





Matériel requis pour un assistant domestique Raspberry Pi

Tu auras besoin de:





  1. Raspberry Pi avec un nouvelle installation de Raspbian sur la carte SD .
  2. Webcam ou microphone USB.
  3. Haut-parleur externe.
  4. Circuit de la Tutoriel Pi LED (optionnel)
  5. Un navigateur connecté à votre compte Google.

Noter: L'équipement pour ce tutoriel peut varier quelque peu. J'ai utilisé une webcam USB de rechange uniquement pour son microphone. Toute webcam ou microphone compatible devrait faire l'affaire, et il y a listes complètes d'appareils compatibles Pi aider.

De plus, j'utilise la sortie 3,5 mm pour l'audio. HDMI et d'autres sources de sortie fonctionneront également, même si cela nécessitera des modifications à la configuration sonore ci-dessous.



Branchez la webcam et le haut-parleur USB et configurez le circuit LED si vous l'utilisez.

Configuration du son

Ce tutoriel peut être suivi directement sur le Pi ou via une connexion SSH dans le Pi.





Les deux manières commencent dans le terminal, pour vérifier les paramètres sonores. Utiliser les commandes arecord -l et appliquer -l pour lister les appareils disponibles.

comment faire amorçable usb windows 7

L'image ci-dessus montre la webcam USB comme carte 1 et appareil 0 . Notez les numéros de carte et d'appareil pour la sortie microphone et haut-parleur.





Maintenant, assurez-vous que vous êtes dans le /accueil/pi répertoire, créez un nouveau fichier et ouvrez-le dans nano :

sudo nano .asoundrc

Le contenu de ce répertoire sera différent selon les numéros de carte et de périphérique que vous utilisez. C'est là que vous pouvez choisir de privilégier la sortie HDMI plutôt que 3,5 mm si vous le souhaitez.

Lorsque vous avez entré votre version du code ci-dessus, appuyez sur Ctrl + X pour enregistrer et quitter.

Testez votre configuration en enregistrant et en lisant un court clip :

Étape facultative : Si vous souhaitez modifier le volume d'entrée de votre microphone, ouvrez alsamimixeur et appuyez sur F6 pour passer d'un appareil à l'autre.

C'est ça! Le son est mis en place.

Création du projet Google

Ouvrez le navigateur du Pi, sinon, si vous êtes connecté via SSH, ouvrez un navigateur localement. Naviguez vers le Console d'actions Google et cliquez Nouveau projet .

Ceci peut prendre un certain temps. Lorsque vous avez terminé, laissez la fenêtre active et ouvrez un nouvel onglet --- nous y reviendrons dans un instant.

Activer l'API de l'Assistant Google

Vous devrez effectuer quelques ajustements en ligne pour continuer. Naviguez vers le Site Web de l'API de l'Assistant Google et cliquez Permettre .

Le projet nécessite également des autorisations d'activité. Dirigez-vous vers votre Panneau de contrôle d'activité et assurez-vous que les activités suivantes sont activées :

  • Activité sur le Web et les applications (y compris la case à cocher Historique de Chrome)
  • Informations sur l'appareil
  • Activité vocale et audio

Vous pouvez maintenant passer à l'enregistrement de l'appareil.

Enregistrement de votre Raspberry Pi

De retour dans la console d'action, sélectionnez Enregistrement de l'appareil du panneau de gauche. Sous Produit créer un nom facile à retenir pour votre appareil. Le nom du fabricant n'est pas important (mais doit être présent), et sélectionnez Auto pour le type d'appareil.

Cliquez sur Enregistrer le modèle , et sur l'écran suivant, cliquez sur Télécharger les informations d'identification OAuth 2.0 . Cela télécharge un fichier JSON sur votre ordinateur. Si vous n'êtes pas familier avec les fichiers JSON, ne vous inquiétez pas, mais apprendre à utiliser JSON vaut la peine d'être fait pour l'avenir!

Le guide officiel de Google recommande de déplacer le fichier vers /accueil/pi , alors ouvrez le gestionnaire de fichiers et faites-le maintenant.

Étape supplémentaire pour les utilisateurs SSH :

Si vous utilisez SSH, vous aurez téléchargé le fichier JSON sur votre ordinateur local au lieu du Pi. Pour le transférer, ouvrez une fenêtre de terminal séparée sans connexion SSH. À partir de cette fenêtre, copiez le fichier JSON secret client à l'aide de cette commande :

scp ~/Downloads/client_secret_client-id.json pi@raspberry-pi-ip-address:/home/pi/

Remplacez 'raspberry-pi-ip-address' par l'adresse IP de votre Pi, et n'oubliez pas les deux points avant le chemin. Si vous avez téléchargé le fichier JSON vers un autre emplacement, modifiez votre chemin local pour refléter cela. Entrez votre mot de passe lorsque vous y êtes invité et le fichier sera copié dans le répertoire personnel du Pi.

Revenez au terminal SSH et accédez à /accueil/pi . Entrer ls -l pour lister les fichiers dans le répertoire. Vous devriez voir le fichier JSON secret client transféré.

Installation du SDK

Google recommande de travailler dans un environnement virtuel Python. Créez un nouvel environnement virtuel appelé env .

Si vous n'avez jamais fait cela auparavant, ce didacticiel vous aidera à apprendre à utiliser les environnements virtuels Python .

Installez les dernières versions de Pip, Setuptools et Wheel et activez votre environnement virtuel :

env/bin/python -m pip install --upgrade pip setuptools wheel
source env/bin/activate

Google Assistant a des dépendances que vous devez installer dans l'environnement virtuel maintenant.

sudo apt-get install portaudio19-dev libffi-dev libssl-dev libmpg123-dev

Enfin, installez le SDK Google Assistant, les exemples et l'outil OAuth.

python -m pip install --upgrade google-assistant-library
python -m pip install --upgrade google-assistant-sdk[samples]
python -m pip install --upgrade google-auth-oauthlib[tool]

C'est tout ce qu'il faut pour être opérationnel. Si l'une des installations échoue, vérifiez soigneusement l'orthographe et l'espacement.

Authentifier le Raspberry Pi

Utilisez le google-auth-oauthlib[outil] avec le fichier d'informations d'identification JSON téléchargé précédemment pour authentifier votre Raspberry Pi.

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

Vous devrez remplacer YOUR_CLIENT_SECRET_ID par le fichier téléchargé, il vaut donc la peine de copier d'abord le nom du fichier. Cet ID client doit être correct. Ne changez pas le nom du fichier !

Vous devriez recevoir un message avec un lien, vous demandant de coller un code d'autorisation.

Cliquer sur le lien ouvre le navigateur. Vous serez invité à activer l'appareil sur votre compte Google. Copiez le code d'autorisation qui suit et collez-le dans la fenêtre de votre terminal.

Vous devriez recevoir une lecture de confirmation Identifiants enregistrés : /home/pi… , ce qui signifie que le Pi a été autorisé avec succès avec votre compte Google.

Le tester

Maintenant que tout est en place, il est temps de tester votre Pi Google Assistant. Exécutez l'assistant avec cette commande :

googlesamples-assistant-hotword --project-id my-dev-project --device-model-id my-model

Vous devrez remplacer mon-projet-dev avec votre ID de projet (qui se trouve sous la roue dentée Paramètres de la console d'action). Ton ID de modèle d'appareil est répertorié dans la section Enregistrement de l'appareil de la console d'action.

Essaye le! Dites « OK Google » et posez une question. Vous pouvez voir la sortie du programme dans le terminal lorsque vous entendez la réponse :

C'est ça! Google Assistant fonctionne maintenant sur votre Raspberry Pi. Notez que si le volume de sortie est un peu faible, vous pouvez le modifier en disant 'Ok Google, augmente le volume jusqu'à 80 %.'

Bonus : GPIO activé par la voix

Il est possible de contrôler les lumières avec un Arduino et Siri, mais il existe une méthode plus simple. Si vous configurez une LED, vous pouvez utiliser l'assistant Google pour la contrôler avec votre voix.

La configuration de Google Assistant pour qu'il fonctionne avec les broches GPIO est relativement simple, mais nécessite quelques étapes supplémentaires. Dirigez-vous vers la console d'action Google et recherchez votre appareil sous Enregistrement de l'appareil. Cliquez dessus et ouvrez le menu des traits :

Tourne le Allumé éteint trait activé et cliquez sur Sauvegarder.

Assurez-vous maintenant que vous êtes à l'intérieur du env environnement virtuel, clonez une version du SDK sur votre Pi en utilisant git :

git clone https://github.com/googlesamples/assistant-sdk-python

Comme il s'agit d'un environnement virtuel, vous devrez installer RPi.GPIO avant de continuer.

pip install rpi.gpio

Maintenant, accédez au dossier contenant le mot-clé.py scénario.

cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/library

Modification du script

Vous devrez ajouter quelques lignes au script hotword.py, alors ouvrez-le dans l'éditeur nano :

nano hotword.py

Sous les instructions d'importation, ajoutez les vôtres pour RPi.GPIO.

import RPi.GPIO as GPIO

Cherchez le événement_processus méthode. À la ligne 66, supprimez ou commentez l'instruction print et ajoutez une instruction if pour contrôler la LED.

#print('Do command', command, 'with params', str(params))
if command == 'action.devices.commands.OnOff':
if params['on']:
print('---------------')
print('Led turned on')
print('---------------')
GPIO.output(18, GPIO.HIGH)
else:
print('---------------')
print('Led turned off')
print('---------------')
GPIO.output(18, GPIO.LOW)

Cette logique contrôle la LED, mais jusqu'à présent, elle n'est pas configurée pour sortir. Installez-le dans le principale() fonction avant que la méthode process_event ne soit appelée.

GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.OUT, initial=GPIO.LOW)

Maintenant, la broche GPIO est définie sur la sortie et s'initialise dans un état bas. Sauvegarder et quitter. Vous pouvez exécuter votre script modifié en passant votre numéro d'identification de modèle (trouvé dans la console d'action) comme argument.

python hotword.py --device-model-id YOUR-MODEL-ID-HERE

La sortie du terminal est la même qu'auparavant et l'assistant fonctionnera en standard. Maintenant, cependant, lorsque vous dites « OK Google, activez », vous verrez une nouvelle sortie :

Noter: L'image ci-dessus a été recadrée, ne montrant que l'assistant qui entend la demande et la déclaration d'impression ajoutée au script.

Vous devriez aussi voir votre LED s'allumer !

comment se connecter au serveur minecraft amis

Votre propre assistant personnel Google Home Raspberry Pi DIY

Ce projet est une bonne introduction à l'utilisation des services d'API Google. Maintenant que vous disposez d'un appareil Google Assistant, essayez certaines des meilleures commandes Google Home --- nous en avons examiné quelques-unes. super mini-jeux Google Home .

Partager Partager Tweeter E-mail Comment nettoyer votre PC Windows à l'aide de l'invite de commande

Si votre PC Windows manque d'espace de stockage, nettoyez les fichiers indésirables à l'aide de ces utilitaires d'invite de commande rapides.

Lire la suite
Rubriques connexes
  • DIY
  • Tarte aux framboises
  • Centres intelligents
  • Lumières LED
  • Assistant Google
  • Tutoriels de projets de bricolage
A propos de l'auteur Ian Buckley(216 articles publiés)

Ian Buckley est un journaliste indépendant, musicien, interprète et producteur vidéo vivant à Berlin, en Allemagne. Quand il n'écrit pas ou ne monte pas sur scène, il bricole de l'électronique ou du code DIY dans l'espoir de devenir un savant fou.

Plus de Ian Buckley

Abonnez-vous à notre newsletter

Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives !

Cliquez ici pour vous abonner
Catégorie Diy