fbpx

Il y a quelques mois, je vous présentais l’idée de créer un Google Home avec les moyens du bord. Après de nombreuses difficultés, liées à la longue réception du matériel nécessaire, je suis aujourd’hui prêt à vous partager mon expérience et mes conseils pour réaliser un tel projet.

Prérequis

  • Un Orange Pi Zero (ou autre micro ordinateur, le tutoriel sera à adapter selon votre matériel)
  • Un périphérique audio externe (enceinte, haut-parleur)
  • Une carte microSD de minimum 8Go
  • Le logiciel gratuit balenaEtcher
  • Une distribution Linux adaptée (de préférence avec un kernel 3.X ou autre compatible Alsamixer)
  • Un compte Google
  • Un peu de patience
  • Une barbe, des lunettes, et un Whopper (pour montrer notre côté geek)

Liens utiles :

balenaEtcher Lien
armbian Linux Lien

Préparation de la carte SD

Avec l’image Linux récupérée précédemment, ainsi que le logiciel balenaEtcher, installez le système sur une carte microSD, de préférence avec 8Go de stockage. Le logiciel Etcher est simple d’utilisation, « Select image » vous permet de sélectionner le fichier à inscrire (attention, il faudra peut-être le décompresser avant), « Select drive » permet de sélectionner le périphérique où installer le fichier, et « Flash! » lance le processus de copie. Simple comme « Ok Google » non ?

Préparation de l’OS

Une fois la carte prête, insérez la dans le micro ordinateur. La partie configuration dépend énormément de l’OS utilisé. Je détaillerai ici la procédure pour un OrangePI Zero et armbian.

Vous aimez jouer les hackers a taper partout sur votre clavier dans le noir ? Ces lignes de commandes devraient vous plaire !

Connectez-vous tout d’abord à votre Orange Pi en ouvrant un terminal de commande. Celui-ci doit bien entendu être connecté à internet via le port ethernet. Vous devez ainsi récupérer son adresse IP locale à l’aide de l’interface de configuration de votre box internet, puis entrez cette commande :

« ssh root@xxx.xxx.xxx.xxx » , les x représentant les nombres composant l’IP du Orange PI

Entrez le mot de passe par défaut : 1234

Vous êtes maintenant connecté.

Si un message « Enter UNIX password » apparait, retapez le mot de passe par défaut. Entrez deux fois le mot de passe souhaité pour le profil root.

Choisissez maintenant le nom destiné à être utilisé pour la session utilisateur. Dans notre cas, nous choisissons pi , mais cela peut être n’importe quoi. Retenez juste ce nom, il sera utile pour la suite de la configuration.

Maintenant, effectuez un redémarrage du système avec le commande « sudo reboot »

Une fois le redémarrage terminé, reconnectez-vous à la session utilisateur avec                  « ssh nom_de_session_utilisateur@xxx.xxx.xxx.xxx »

Vous pouvez maintenant enchainer les commandes suivantes :

sudo apt-get update 

sudo apt-get install python3-dev python3-venv 

python3 -m venv env 

env/bin/python -m pip install –upgrade pip setuptools wheel 

source env/bin/activate 

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

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]

Toujours vivant ? Pas découragé ? Très bien, on arrête un peu avec les lignes de commandes pour l’instant. Ah oui j’oubliais, encore quelques unes, promis ce sont les dernières ! Pour que le son fonctionne de manière convenable, il faut dire au système quel périphérique utiliser.

Pour ce faire, listez les périphériques disponibles avec « aplay -l » et « arecord -l ».

Vous obtiendrez un résultat de ce type:

Vous voyez ici vos cartes son (card) ainsi que les périphériques liées (subdevices). Repérez maintenant les périphériques que vous souhaitez utiliser. Exécutez la commande              « cd ~/ » puis « sudo nano .asoundrc » . Collez-y le contenu suivant, puis enregistrez le tout en faisant Ctrl+x, suivi de Y et Enter :

pcm.!default {
  type asym
  capture.pcm "mic"
  playback.pcm "speaker"
}
pcm.mic {
  type plug
  slave {
  pcm "hw:0,0"
  format S16_LE
 }
}
pcm.speaker {
  type plug
  slave {
  pcm "hw:0,0"
 }
}

ATTENTION: Remplacez ici « hw:0,0 » par les numéros de périphériques relevés plus tôt, par exemple hw:1,1 pour la carte 1 et le périphérique 1.

 

Préparation du projet Google

La mise en place d’un assistant connecté requiert quelques manipulations auprès des services Google. Avant toute chose, vérifiez que vous êtes bien connecté à votre compte Google, afin de ne pas perdre de temps par la suite. Rendez vous ensuite sur le site Actions on Google. Vous devriez arriver sur cette page :

Cliquez sur « Add/Import project ». Choisissez maintenant un nom pour votre projet. Pour cela, je vous laisse avoir libre recours à votre imagination. Nous appellerons le notre « MiTechs Speaker ». Sélectionnez ensuite la langue avec laquelle intéragir avec l’assistant, ainsi que votre localisation, dans notre cas, « French, France ». N’oubliez pas de cliquer sur « Create project ».

ATTENTION: L’assistant Google n’étant pas disponibles dans certaines langues et régions, cette opération pourrait ne pas donner les résultats attendus.

Bravo ! Votre premier projet est lancé ! Une belle petite page pleine de jolis dessins vous montre tous les services offerts par l’assistant Google. Cependant, nous nous y intéresseront plus tard. Descendez tout en bas de la page, et cliquez sur « Device Registration », puis « Register Model » sur la page suivante.

Encore une fois, laissez ici votre créativité prendre le dessus. Prenez garde cependant à sélectionner « Speaker » comme type de périphérique…à moins que vous ayez une âme de bricoleur et souhaitiez créer un lave-vaisselle ou un aspirateur connecté, sait-on jamais !

Vous pouvez également noter ou modifier le « model-id » à l’aide du petit crayon. Il sera utile à l’avenir !

Téléchargez votre fichier d’authentification (« Downloat OAuth 2.0 Credentials »). Ce fichier est à garder précieusement. Il correspond aux identifiants d’accès entre votre produit et les serveurs Google. Passez à la page suivante, et cliquez sur « Save Traits » sans rien modifier.

Votre appareil enregistré devrait apparaitre. Si ce n’est pas déjà fait, notez bien le « Model ID ».

Notez ensuite votre identifiant de projet, qui peut être obtenu sur le Google Cloud Platform. N’oubliez pas non plus d’activer l’API Google Assistant sur cette page.

Dernières souffrances, et test !

Dernière ligne droite avant les tests ! Il s’agit maintenant de démarrer l’assistant !

Copiez le fichier d’authentification précédemment téléchargé à l’aide de la commande SCP dans un nouveau terminal:

scp chemin_du_fichier_auth nom_de_session_utilisateur@xxx.xxx.xxx.xxx:~/

Vérifiez que votre terminal SSH affiche toujours (env). Si ce n’est pas le cas, réexécutez « source env/bin/activate ».

Vous pouvez ensuite autoriser votre compte Google à se connecter à l’Orange Pi. A présent, executez ces commandes, en prenant garde de bien remplacer les éléments en rouge :

google-oauthlib-tool –scope https://www.googleapis.com/auth/assistant-sdk-prototype \ –scope https://www.googleapis.com/auth/gcm \ –save –headless –client-secrets chemin_du_fichier_oauth.json

« Please visit this URL to authorize this application » devrait apparaitre. Copiez et collez l’URL indiqué afin d’accéder à la procédure de connexion à votre compte Google. Un code de confirmation vous sera alors affiché, et il devra être collé dans le terminal.

Vous pouvez maintenant lancer l’assistant :

googlesamples-assistant-hotword –project-id id_du_projet –device-model-id nom_de_modele

Et…Voilà ! Vous pouvez maintenant demander à Google de vous raconter des anecdotes sur tout et n’importe quoi !

Si « Ok Google » prononcé à la française ne marche pas du premier coup, essayez « Okéï Googol » (avec un accent américain quoi). Il se peut que la première requête requière une activation en anglais.

Note: si vous rencontrez un problème, décelez une erreur, ou pour une simple question, n’hésitez pas à le signaler dans la section commentaire !

8 Comments

  1. L’assistant Google sur raspberry n’est seulement qu’en anglais !

      • Maxime Jurczak Reply

        Bonjour Olivier et doum,
        Je confirme que l’assistant sera bien en français. Depuis le début, l’API a évoluée et supporte désormais les langues multiples, réglables depuis la version smartphone de Google Assistant.
        N’hésitez pas à me faire part de vos commentaires.

        Maxime, MiTechs.fr

        • olivier wauters Reply

          et sur la version raspberry on sais le mettre aussi en francais? si oui il faut changer le code?
          merci

          • Maxime Jurczak

            Il faudra juste vous connecter avec un smartphone au compte Google utilisé pour créer le projet, et configurer celui-ci à l’aide de l’application Google Assistant. Normalement, si votre compte est déjà associé au français, ce sera fait automatiquement. Si vous avez déjà une ancienne version installée sur votre Raspberry, je vous invite à suivre les étapes présentes dans le tutoriel, les nouvelles versions étant radicalement différentes des anciennes.

            Maxime, MiTechs.fr

    • Maxime Jurczak Reply

      Bonjour Olivier !
      Le nom de session utilisateur à rentrer est celui de la session du Raspberry (ou Orange Pi). Avez-vous un message d’erreur ? Si vous ne parvenez toujours pas à utiliser scp, avez-vous essayé de transférer le fichier manuellement depuis votre PC jusqu’au Raspberry (ou via un autre logiciel) ?

      Maxime, MiTechs.fr

Write A Comment

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Pin It
%d blogueurs aiment cette page :