Comment construire un assistant Google Home bricolage à l’aide d’un Raspberry Pi
Les assistants à commande vocale sont rapidement devenus monnaie courante. De nombreux foyers ont Alexa ou Google Home pour tout contrôler, de l’éclairage aux médias et même à la synchronisation.
La technologie utilisée par ces appareils est – au moins en partie – accessible à tous. Le SDK Assistant de Google vous permet d’utiliser le service sur votre propre appareil. Ce tutoriel montre comment configurer Google Assistant sur votre Raspberry Pi et les LED à commande vocale via les broches GPIO.
Matériel requis pour le Raspberry Pi Home Assistant
Tu auras besoin de:
- Installez un nouveau Raspbian Raspberry Pi sur une carte SD.
- Webcam ou microphone USB.
- haut-parleurs externes.
- Circuit dans le didacticiel Pi LED (facultatif)
- Connectez-vous au navigateur de votre compte Google.
Remarques: L’équipement pour ce didacticiel peut varier. Je n’ai utilisé qu’une webcam USB de rechange pour le microphone. Toute webcam ou microphone compatible devrait faire l’affaire, et il existe une longue liste d’appareils compatibles Pi pour vous aider.
De plus, j’utilise 3,5 mm pour la sortie audio. HDMI et d’autres sources de sortie fonctionneront également, mais nécessiteront des modifications des paramètres sonores ci-dessous.
Branchez la webcam USB et les haut-parleurs, et configurez le circuit LED si vous en utilisez un.
régler le son
Ce tutoriel peut se faire directement sur le Pi, ou en se connectant au Pi via SSH.
Les deux manières partent du terminal pour vérifier les paramètres du son.utiliser la commande enregistrement -l et jouer -l Répertorier les appareils disponibles.
Faire une vidéo du jour
L’image ci-dessus montre la webcam USB comme Carte 1 et Appareil 0Notez les numéros de carte et de périphérique pour les sorties microphone et haut-parleur.
Assurez-vous maintenant que vous êtes /accueil/pi répertoire, créez un nouveau fichier et ouvrez-le dans nano :
sudo nano.asoundrc
Le contenu de ce catalogue varie en fonction de la carte et du numéro d’appareil que vous utilisez. Ici, vous pouvez choisir de prendre en charge la sortie HDMI au lieu de 3,5 mm si vous préférez.
Après avoir entré la version du code ci-dessus, appuyez sur Ctrl + X Sauvegarder et quitter.
Testez votre configuration en enregistrant et en lisant un court clip :
Étapes facultatives : Si vous souhaitez modifier le volume d’entrée du microphone, activez mixer et appuyez sur F6 Parcourez les appareils.
C’est ça! Le son est réglé.
Créer un projet Google
Ouvrez le navigateur du Pi ou, si vous vous connectez via SSH, ouvrez le navigateur localement.Accédez à la console Google Actions et cliquez sur nouveau projet.
Cela peut prendre un certain temps. Lorsque vous avez terminé, gardez la fenêtre active et ouvrez un nouvel onglet – nous y reviendrons plus tard.
Activer l’API de l’Assistant Google
Vous devrez faire quelques ajustements en ligne pour continuer.Accédez au site Web de l’API Google Assistant et cliquez sur permettre.
Le projet nécessite également des autorisations actives. Accédez à votre tableau de bord des événements et assurez-vous que les événements suivants sont activés :
- Activité sur le Web et les applications (y compris la case à cocher Historique Chrome)
- Informations sur l’appareil
- Activité vocale et audio
Vous pouvez maintenant procéder à l’inscription de votre appareil.
Enregistrez votre Raspberry Pi
Revenez à la console des opérations, sélectionnez Enregistrement de l’appareil du panneau de gauche.en dessous de produit Créez un nom facile à retenir pour votre appareil.Le nom du fabricant n’est pas important (mais doit être présent), puis sélectionnez auto pour le type d’appareil.
Cliquez sur Enregistrez le modèlepuis cliquez sur l’écran suivant Télécharger les identifiants OAuth 2.0Ceci téléchargera le fichier JSON sur votre ordinateur. Ne vous inquiétez pas si vous n’êtes pas familier avec les fichiers JSON, mais apprendre à utiliser JSON en vaudra la peine pour l’avenir !
Les directives officielles de Google recommandent de déplacer les fichiers vers /accueil/pialors maintenant ouvrez votre gestionnaire de fichiers et faites-le.
Étapes supplémentaires pour les utilisateurs SSH :
Si vous utilisez SSH, vous téléchargerez 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. Dans cette fenêtre, utilisez la commande suivante pour copier le fichier JSON secret client :
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 à un autre emplacement, modifiez votre chemin local pour refléter cela. Entrez votre mot de passe lorsque vous y êtes invité et les fichiers seront copiés dans le répertoire d’accueil du Pi.
Revenez au terminal SSH et accédez à /accueil/pi. Entrer ls -l Lister les fichiers dans un répertoire. Vous devriez voir le fichier JSON secret du client transmis.
Installer le SDK
Google recommande de travailler dans un environnement virtuel Python.Créez un nouvel environnement virtuel nommé environnement.
Si vous ne l’avez jamais fait 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 roue
environnement source /bin/activation
Google Assistant a certaines dépendances que vous devez maintenant installer dans l’environnement virtuel.
sudo apt-get install portaudio19-dev libffi-dev libssl-dev libmpg123-dev
Enfin, installez le SDK Google Assistant, les exemples et les outils 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 dont vous avez besoin pour être opérationnel. Si une installation échoue, vérifiez soigneusement l’orthographe et l’espacement.
S’authentifier auprès du Raspberry Pi
utiliser google-auth-oauthlib[tool] Utilisez le fichier JSON d’informations d’identification que vous avez téléchargé précédemment pour authentifier votre Raspberry Pi.
google-oauthlib-tool –scope https://www.googleapis.com/auth/assistant-sdk-prototype
–portée 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 le code d’autorisation.
Cliquer sur le lien ouvrira le navigateur. Vous serez invité à activer l’appareil sur votre compte Google. Copiez le code d’autorisation ci-dessous et collez-le dans la fenêtre de votre terminal.
Vous devriez recevoir une confirmation de lecture Identifiants enregistrés : /home/pi…indiquant que le Pi a été autorisé avec succès avec votre compte Google.
Essaye-le
Maintenant que vous êtes prêt, il est temps de tester votre Pi Google Assistant. Exécutez l’assistant avec la commande suivante :
googlesamples-assistant-hotword –project-id mon-dev-project –device-model-id mon-model
vous devrez remplacer mon projet de développement Utilisez votre ID de projet (sous la roue dentée des paramètres dans la console Opérateur).Ton ID de modèle d’appareil Répertorié dans la section Enregistrement de périphérique de la console des opérations.
Essaie! Dites « OK Google » et posez des questions. Lorsque vous entendez la réponse, vous pouvez voir la sortie du programme dans le terminal :
C’est ça! Google Assistant est maintenant en cours d’exécution sur votre Raspberry Pi.Notez que si le volume de sortie est un peu faible, vous pouvez « Hey Google, augmentez votre volume jusqu’à 80 %. »
Bonus : GPIO activé par la voix
Les lumières peuvent être contrôlées à l’aide d’Arduino et de Siri, mais il existe un moyen plus simple. Si vous avez configuré une LED, vous pouvez utiliser l’assistant Google pour la contrôler avec votre voix.
La configuration de Google Assistant pour utiliser les broches GPIO est relativement simple, mais nécessite quelques étapes supplémentaires. Accédez à la console Google Actions et recherchez votre appareil sous Inscription de l’appareil. Cliquez dessus et ouvrez le menu des fonctionnalités :
fermeture changer Ouvrez la fonction et cliquez sur enregistrer.
maintenant assurez-vous que vous êtes là environnement Environnement virtuel, utilisez git pour cloner une version du SDK sur votre Pi :
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 installer rpi.gpio
Maintenant, naviguez pour inclure hotword.py scénario.
cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/library
Modifier le scénario
Vous devez ajouter quelques lignes au script hotword.py, alors ouvrez-le dans l’éditeur nano :
Nano hotword.py
Sous Importer des instructions, ajoutez votre propre instruction pour RPi.GPIO.
Importer RPi.GPIO en tant que GPIO
Rechercher événement de processus méthode. À la ligne 66, supprimez ou commentez l’instruction print et ajoutez une instruction if pour contrôler le voyant.
#print(‘execute command’, command, ‘with parameters’, str(params))
Si commandes == « action.devices.commands.OnOff »:
si paramètre[‘on’]:
Impression(‘ – – – – – – – -‘)
imprimer(‘LED allumée’)
Impression(‘ – – – – – – – -‘)
GPIO.sortie(18, GPIO.HIGH)
autre:
Impression(‘ – – – – – – – -‘)
imprimer(‘LED éteinte’)
Impression(‘ – – – – – – – -‘)
GPIO.sortie(18, GPIO.BAS)
Cette logique contrôle les LED, mais n’est actuellement pas configurée en tant que sortie.placez-le dans principale() La fonction avant la méthode process_event est appelée.
GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.OUT, initial=GPIO.LOW)
Les broches GPIO sont maintenant définies comme sorties et initialisées à un état bas. Sauvegarder et quitter. Vous pouvez exécuter le script modifié en transmettant le numéro d’identification du modèle (trouvé dans la console des opérations) en tant que paramètre.
python hotword.py –device-model-id VOTRE-MODEL-ID-ICI
La sortie du terminal est la même qu’avant et l’assistant fonctionnera correctement. Maintenant, cependant, lorsque vous dites « OK Google, ouvre », vous verrez une nouvelle sortie :
Remarques: L’image ci-dessus a été recadrée pour montrer uniquement l’assistant écoutant la demande et l’instruction d’impression ajoutée au script.
Vous devriez aussi voir votre LED s’allumer !
Votre propre assistant maison Google Raspberry Pi DIY
Ce projet est une bonne introduction à l’utilisation des services de l’API Google. Maintenant que vous disposez d’un appareil Google Assistant, essayez certaines des meilleures commandes Google Home – nous avons vu d’excellents mini-jeux Google Home.
…