Raspberry Pi : Tutoriel Alexa

Amazon Alexa, plus simplement connu sous le nom d’Alexa, est l’assistant vocal développé par Amazon. Ce logiciel fonctionne sur des haut-parleurs intelligents comme l’Echo ou l’Echo Dot d’Amazon. Sur ces appareils, Alexa fonctionne comme une unité de contrôle centrale qui réagit aux commandes vocales de l’utilisateur. Il est ainsi possible de demander à jouer en streaming des morceaux depuis Amazon Music ou Spotify, d'écouter un livre audio depuis Audible ou de se renseigner sur les actualités ou la météo. Le logiciel est également utile pour organiser rapidement les tâches du quotidien : vous pouvez par exemple dicter des listes d'achats ou de choses à faire ou encore réserver des dates dans le calendrier de votre choix (Apple, Google ou Outlook, entre autres).

De plus, dans la mesure où le logiciel vocal d’Amazon peut se connecter avec des milliers d'appareils domestiques intelligents compatibles (lampes, prises électriques, thermostats, etc.), il permet aussi d’automatiser le fonctionnement de votre foyer.

Note

Alexa s'actualise automatiquement via cloud. C’est ce qui permet à Amazon de régulièrement doter son logiciel vocal de nouvelles fonctions, également désignés sous le nom d’Amazon Skills, disponibles dans la boutique Alexa Skills Store.

Grâce à Alexa Voice Service, vous pouvez choisir d’utiliser Alexa sans appareil Amazon et l’intégrer à votre propre appareil. Dans ce contexte, le Raspberry Pi, ce nano-ordinateur utilisé dans le monde entier, se révèle particulièrement intéressant par rapport à la gamme des appareils Echo d’Amazon, non seulement en raison de son prix très modeste, mais aussi parce qu’il est possible de l’adapter et de le personnaliser à volonté.

Configuration d’Alexa sur votre Raspberry Pi : les conditions nécessaires pour faire fonctionner Raspberry Pi Alexa

Le Raspberry Pi est disponible sur le marché depuis 2012. Depuis lors, les fabricants ont poursuivi son développement en sortant différentes évolutions, comme Raspberry Pi 2 et 3 ou le Rasperry Pi Zero. Toutefois, toutes les versions du nano-ordinateur ne remplissent pas les conditions nécessaires pour l’intégration d’Alexa. Pour pouvoir ultérieurement configurer votre assistante vocale de façon optimale, il est recommandé d’utiliser au minimum un Raspberry Pi 2 (Modèle B). Puisqu’Alexa doit être connectée à Internet, vous aurez besoin d’un adaptateur WLAN si vous ne voulez pas laisser le nano-ordinateur connecté de façon permanente via un câble Ethernet.

Mais si vous optez pour un Raspberry Pi 3, cette version est équipée de série d’un adaptateur WLAN intégré.

Pour afficher cette vidéo, des cookies de tiers sont nécessaires. Vous pouvez consulter et modifier vos paramètres de cookies ici.

Dans tous les cas, vous aurez besoin des accessoires suivants pour pouvoir utiliser Alexa sur votre Raspberry Pi :

  • Carte Micro SD avec 8 Go de mémoire au minimum (idéalement 16 Go ou plus)
  • Alimentation USB d'au moins 2 000 mAh
  • Microphone USB
  • Haut-parleur USB ou Bluetooth (pour le Raspberry Pi 3)

Pour une meilleure expérience auditive, vous pouvez doter votre Raspberry Pi d’une carte son USB. Si vous ne souhaitez pas effectuer l’installation et la configuration de votre système d’exploitation et utiliser Alexa uniquement à distance depuis votre PC (en « headless mode »), vous pouvez aussi raccorder un écran, un clavier et une souris au nano-ordinateur.

Tutoriel AlexaPi : ainsi parlait Raspberry Pi Alexa

Avant de pouvoir configurer votre assistante vocale, vous devez installer un système d’exploitation sur la carte SD de votre Raspberry. Nous vous conseillons le système Raspbian, soutenu officiellement par la Fondation Raspberry Pi et à télécharger directement sous forme de fichier image sur le site Internet de la Fondation. Extrayez ensuite le fichier sur la carte SD et utilisez-le pour booter votre Raspberry Pi et installer le système d’exploitation.

Si vous préférez éviter d'avoir à installer vous-même un système d'exploitation, vous pouvez vous rendre sur la boutique en ligne « The Pi Hut » pour acheter une carte SD prête à l’emploi, où Raspbian est déjà préinstallé.

Pour savoir comment lancer Alexa après l’installation de Raspbian, suivez les explications détaillées ci-dessous.

Étape 1 : créer un compte de développeur Amazon

Pour pouvoir vous connecter au service Amazon Voice, vous aurez besoin d’un compte de développeur Amazon. La première étape consiste à en créer un, à partir duquel vous pourrez accéder à la page des développeurs d’Amazon. Quand vous y serez, cliquez sur « Inscription » et ensuite sur « Créez votre compte ». Vous pouvez aussi vous inscrire à partir de votre compte Amazon habituel, si vous en possédez un.

Fournissez les identifiants demandés (nom, adresse email et mot de passe) puis cliquez à nouveau sur « Créez votre compte ».

Votre inscription dans l’espace des développeurs se fait automatiquement. Cependant, avant de pouvoir utiliser des outils comme Alexa Voice Server, vous pouvez fournir d'autres indications vous concernant en cliquant sur « Conclure votre inscription » dans le menu déroulant situé en haut.

Étape 2 : enregistrer votre Raspberry Pi sur le service Alexa Voice

Une fois les informations nécessaires fournies et votre accord donné aux conditions d’utilisation, vous avez accès au tableau de bord de développeur, qui vous permet de consulter et de gérer vos différents projets Amazon. Dans la rubrique « amazon alexa », vous trouverez le bouton « Alexa Voice Service ». En cliquant dessus, vous lancerez le processus d'activation de l’assistante vocale sur votre Raspberry :

Dans le menu suivant, cliquez sur le bouton « GET STARTED ». Amazon vous posera alors quelques questions à propos de votre projet.

Aux lignes « Product name » et « Product ID », vous pouvez par exemple inscrire « AlexaPi » ou « RaspberryPiAlexa ».

À la ligne « Product type », choisissez l’option « Device with Alexa built-in » (« appareil avec logiciel Alexa intégré »). Répondez non à la question portant sur l’utilisation d’une application associée.

À la ligne « Product category », sélectionnez « Wireless Speakers ». Pour la description du produit, inutile de vous lancer dans de grandes explications : une mention comme « Raspberry Pi Alexa Speaker » est suffisante.

Comme vous souhaitez diriger votre Raspberry Pi uniquement par commandes vocales dans le cadre de son utilisation en tant que haut-parleur Alexa classique, sélectionnez les modes d’interaction « Hands-free » (contrôle vocal à proximité) et « Far-field » (contrôle vocal à distance).

Répondez non aux dernières questions sur l’utilisation commerciale et l’affectation du Raspberry à Alexa for Business et Alexa Mobile Accessory Protocol ainsi qu’à la question de savoir si votre projet vise à être adapté à une utilisation par des mineurs.

Étape 3 : créer un profil de sécurité LWA Alexa

Lors de l’étape suivante, vous devez créer un profil de sécurité LWA (Login with Amazon) pour le Raspberry Pi, de façon à permettre son authentification par Amazon. Comme vous ne possédez pas encore de profil LWA, cliquez sur « CREATE NEW PROFILE », puis choisissez un nom approprié et donnez une courte description du profil :

Après avoir cliqué sur « NEXT », vous verrez apparaître un autre menu où vous fournirez les URL d’authentification LWA. Saisissez l'adresse suivante (puis confirmez en appuyant sur « ADD ») :

  • Allowed origins : https://localhost:3000
  • Allowed return URLs : https://localhost:3000/authresponse

Enfin, cochez la case d'acceptation des conditions d’utilisation d’Amazon et d’Alexa-Voice-Service ; terminez le processus de création du profil en cliquant sur le bouton « FINISH » :

Si l’installation est réussie, une fenêtre Amazon apparaîtra en pop-up pour vous en avertir.

Étape 4 : saisir les informations sur le produit et le client

Le profil que vous avez créé pour votre AlexaPi peut désormais être sélectionné à tout moment dans la section « Products ». Avant de vous lancer dans l’installation d’Alexa, vous devez saisir les informations sur le produit et le client pour la configuration de l'assistante vocale. Pour cela, sélectionnez le profil du Raspberry dans la liste des produits puis saisissez les données voulues dans les sections « Client ID » et « Client secret ». L’information la plus importante sur le produit est la « Product ID », qui équivaut au nom de produit donné dans le cadre du tutoriel « AlexaPi ».

Étape 5 : installer Alexa sur le Raspberry Pi

Pour installer Alexa sur votre Raspberry Pi, le plus simple est de passer par la plateforme de développement GitHub. Vous y trouverez entre autres l’application Alexa AVS Sample, qui vous aidera à installer le logiciel vocal sur votre nano-ordinateur. Pour utiliser cette plateforme, vous aurez besoin d’un client Git que vous pourrez télécharger après une rapide mise à jour du système, s’il n’est pas déjà installé nativement. Tapez les commandes suivantes dans le terminal Raspbian pour actualiser le logiciel système :

sudo apt-get update
sudo apt-get upgrade -y

Vient ensuite l’installation du client Git :

sudo apt-get install git

À l'aide du client, téléchargez l’application AVS Sample ou clonez-le répertoire GitHub:

sudo git clone https://github.com/alexa/alexa-avs-sample-app.git
Note

L'application AVS Sample se trouve dans le mode Maintenance ; c’est pourquoi elle n’est pas dotée des plus récentes fonctionnalités d’Alexa. Le kit de développement AVS offre une solution alternative pour bénéficier également des fonctionnalités les plus récentes de l’assistance vocale.

Une fois le répertoire GitHub transféré sur votre Raspberry Pi, reportez les informations données à l’étape 4 dans le fichier d’installation automated_install.sh. Pour l’ouvrir, vous pouvez utiliser le logiciel de traitement de texte de votre choix (par ex. Nano).

Confirmez les modifications et commencez l’installation d’Alexa sur votre Raspberry Pi en saisissant la commande suivante :

. automated_install.sh

Étape 6 : premières étapes de configuration au cours du processus d’installation

Pendant l’installation du logiciel vocal, vous devez procéder aux premiers réglages et répondre à des questions. Dès le départ, vous devez donner votre consentement aux conditions générales et approuver l'utilisation d'applications tierces reconnues (si nécessaire). La question suivante vous demande de confirmer que vous possédez bien un compte de développeur Amazon ; la troisième question vous demande de confirmer les données saisies dans les sections « Product ID », « Client ID » et « Client secret ». Dans les trois cas, tapez « Y » puis appuyez sur le bouton [Enter].

Vous accèderez ensuite à quelques options de configuration, à commencer par le choix du signal vocal. À l'étape 3, sélectionnez fr-FR pour pouvoir communiquer avec Alexa en français. Pendant l’installation, vous devrez également déterminer si le raccordement de votre haut-parleur Raspberry Pi Alexa doit se faire via un connecteur Jack (3,5 mm) ou en HDMI. Enfin, indique si vous voulez conserver le mot d'activation « Alexa » ou utiliser une autre commande vocale pour mettre en route l’assistante vocale.

Étape 7 : authentification du haut-parleur Raspberry Pi Alexa

Pour authentifier le Raspberry, vous aurez besoin de l’Alexa Companion Service, qui propose une sorte d’interface ou de portail pour connecter le nano-ordinateur et le serveur AVS. Pour utiliser ce service, ouvrez le terminal dans la liste correspondante et lancez l'application à l'aide du gestionnaire de paquet NPM. Utilisez pour cela les commandes suivantes :

cd ~/alexa-avs-sample-app/samples/companionService
npm start

Si le lancement est réussi, le terminal affichera le message « Listening on Port 3000 ». Réduisez la fenêtre du terminal puis démarrez une nouvelle instance de l’invite de commandes.

Note

Il est important que la fenêtre où vous avez lancé l’Alexa Companion Service soit réduite et non fermée. Ce service doit continuer à fonctionner en arrière-plan pour que votre Raspberry Pi puisse communiquer avec le serveur d’Alexa Voice.

Au cours des étapes suivantes, vous allez ouvrir le client associé à partir de la liste correspondante. Dans la mesure où il est programmé en Java, vous allez devoir utiliser le gestionnaire de projets Java Maven (mvn) :

cd ~/alexa-avs-sample-app/samples/javaclient
mvn exec:exec

Quelques instants après envoi des commandes, une fenêtre de dialogue en pop-up s’ouvrira pour vous demander d’ouvrir une URL dans votre navigateur afin d’enregistrer le Raspberry. Cliquez sur « OK » pour fermer la fenêtre. Le lien s’ouvrira automatiquement dans votre navigateur par défaut.

Note

Après avoir cliqué sur « OK », vous verrez s’ouvrir une autre fenêtre de dialogue dans le client. Vous n'aurez pas à vous en préoccuper dans un premier temps.

Votre navigateur affiche désormais soit la page de connexion à Amazon, soit un message vous indiquant que cette page n’est pas accessible. Dans le deuxième cas, ce n’est pas un problème majeur : il vous suffit de cliquer en bas à gauche sur « Advanced » (« Avancé »), puis sur « Proceed to localhost » (« Continuer sur localhost ») pour arriver enfin à la fenêtre de connexion. Enregistrez-vous avec votre compte de développeur Amazon et confirmez que votre haut-parleur Raspberry Pi Alexa a bien l'autorisation de se connecter sur votre compte Amazon.

Une fois l'authentification effectuée, votre navigateur affichera le message suivant : « device tokens ready ». Dans la fenêtre restée jusque-là ouverte dans le client Java, vous pouvez désormais cliquer sur « OK » pour mettre un terme au processus d’authentification.

Étape 8 : mettre en marche la reconnaissance du mot d'activation

Alexa est maintenant prête à fonctionner. À partir du client AVS, vous pouvez à tout moment interagir avec le logiciel vocal : il vous suffit de cliquer sur l’icône représentant un micro et de poser votre question. Cependant, pour qu’Alexa se mette en marche lorsque vous prononcez le mot d'activation de votre choix (par exemple « Alexa »), vous devez lancer le « wake word agent ». Pour cela, ouvrez dans une nouvelle fenêtre de terminal la liste des agents (KITT AI) :

cd ~/alexa-avs-sample-app/samples/wakeWordAgent/src
./wakeWordAgent -e kitt_ai

Le terminal affiche le message « Connected to AVS client » : vous pouvez maintenant utiliser Alexa de la manière habituelle par contrôle vocal.

Étape 9 : créer un script de démarrage automatique pour l'assistance vocale Raspberry Pi Alexa

Pour éviter d'avoir à relancer Alexa manuellement à chaque fois que vous rallumez votre Raspberry Pi, créez pour finir un script de démarrage, qui sera exporté automatiquement à chaque démarrage du nano-ordinateur. Pour cela, saisissez la commande suivante dans le terminal :

sudo nano alexa.sh

Copiez-collez ensuite les lignes de code suivantes :

#!/bin/bash
lxterminal -l -e "cd ~/alexa-avs-sample-app/samples/companionService && npm start;" &
sleep 10s
lxterminal -l -e "cd ~/alexa-avs-sample-app/samples/javaclient && mvn exec:exec;" &
sleep 30s
lxterminal -l -e "cd ~/alexa-avs-sample-app/samples/wakeWordAgent/src && ./wakeWordAgent -e kitt_ai;" &

Ce script rend automatique le processus d'authentification décrit à l'étape 7, puis lance l’Alexa Companion Service et enfin le client Java. Le lancement de l’agent du mot d'activation décrit à l’étape 8 est ensuite effectué en différé.

Sauvegardez le script et fournissez au système les droits d'accès nécessaires via chmod :

sudo chmod +x alexa.sh

Pour le script, créez un nouveau fichier de démarrage automatique :

sudo nano /home/pi/.config/autostart

Copiez-collez le contenu suivant dans le fichier afin de permettre au script d’être exporté chaque fois que vous allumez votre haut-parleur Raspberry Pi Alexa :

[Desktop Entry]
Comment=Comment
Exec=/home/pi/alexa.sh
Name=alexa.sh
Path=/home/pi/alexa.sh
Type=Shell