[JAVA] Construisez Amazon Alexa à moindre coût avec Raspberry Pi 3B + haut-parleur Bluetooth (3 installation Alexa Voice Service)

Dans la continuité du Chapitre 1 et du Chapitre 2, je souhaite convertir Rasppie en Amazon Echo. pense.

Ce chapitre: Je souhaite installer Alexa Voice Service (AVS) sur Raspberry Pi et parler avec Alexa.

Un article sur un pionnier qui a créé Razzpie Echo.

https://qiita.com/bwtakacy/items/32226ed2406b5ebe1984

Tout d'abord, connectez-vous au service vocal Alexa

Inscrivez-vous en tant que nouveau développeur en vous connectant en haut à droite du site principal ci-dessous.

https://developer.amazon.com/ja/alexa-voice-service

Lorsque vous vous connectez, vous serez redirigé vers cet écran.

image.png

Depuis «Premiers pas» avec Alexa Voice Service

image.png

image.png

Enregistrez quatre types d'URL dans le profil de sécurité. Il existe deux types d '"origine autorisée" (= origine autorisée). Il existe deux types d '"URL de retour autorisées" (= URL de retour autorisées).

image.png

Finalement, il sera enregistré et ce sera comme ça.

image.png

Si vous appuyez sur "Gérer", vous pouvez vérifier à nouveau l'ID client et le secret client.

image.png

Télécharger le sdk et lister l'ID client

Téléchargez l'exemple d'application requis comme décrit dans l'article ci-dessous.

https://qiita.com/bwtakacy/items/32226ed2406b5ebe1984

git clone https://github.com/alexa/alexa-avs-sample-app.git
cd alexa-avs-sample-app-master

automated_install.sh


#!/bin/bash

#-------------------------------------------------------
# Paste from developer.amazon.com below
#-------------------------------------------------------
# This is the name given to your device or mobile app in the Amazon developer portal. To look this up, navigate to https://developer.amazon.com/edw/home.html. It may be labeled Device Type ID.
ProductID=YOUR_PRODUCT_ID_ICI ← ici

# Retrieve your client ID from the web settings tab within the developer console: https://developer.amazon.com/edw/home.html
ClientID=YOUR_CLIENT_ID_ICI ← ici

# Retrieve your client secret from the web settings tab within the developer console: https://developer.amazon.com/edw/home.html
ClientSecret=YOUR_CLIENT_SECRET_ICI ← ici

Après avoir modifié ceci, exécutez l'installation.

. ./automated_install.sh

Répondez aux questions suivantes pour terminer l'installation.

====== AVS + Raspberry Pi Licenses and Agreement ======


This code base is dependent on several external libraries and virtual environments like Kitt-Ai, Sensory, ALSA, Atlas, Portaudio, VLC, NodeJS, npm, Oracle JDK, OpenSSL, Maven & CMake.

Please read the document "Installer_Licenses.txt" from the sample app repository and the corresponding licenses of the above.

Do you agree to the terms and conditions of the necessary software from the third party sources and want to download the necessary software from the third party sources?
=======================================================
[y/quit] >> y

Do you have an Amazon developer account?
[y/n/quit] >> y


ProductID >> ########
ClientID >> ##########
ClientSecret >> ##############
Is this information correct?
[y/n] >> y


Which locale would you like to use?
=======================================================
1) en-US
2) en-GB
3) de-DE
4) en-CA
5) en-IN
6) ja-JP
Please select an option [1-6] 6


==== Setting Audio Output =====
Are you using 3.5mm jack or HDMI cable for audio output?
=======================================================
1) 3.5mm jack
2) HDMI audio output

Please select an option [1-2] 1


=== Enabling Hands Free Experience using Wake Word "Alexa" ====
Do you want to enable "Alexa" Wake Word Detection?
=======================================================
[y/n/quit] >> y

(L'installation démarre)

...
[100%] Built target wakeWordAgentTest
chown: changing ownership of ‘/home/pi/alexa-avs-sample-app-master/samples/wakeWordAgent/ext/lib/libblas.so.3’: Operation not permitted

=============================
*****************************
========= Finished ==========
*****************************
=============================

To run the demo, do the following in 3 seperate terminals:
Run the companion service: cd /home/pi/alexa-avs-sample-app-master/samples/companionService && npm start
Run the AVS Java Client: cd /home/pi/alexa-avs-sample-app-master/samples/javaclient && mvn exec:exec
Run the wake word agent:
  Sensory: cd /home/pi/alexa-avs-sample-app-master/samples/wakeWordAgent/src && ./wakeWordAgent -e sensory
  KITT_AI: cd /home/pi/alexa-avs-sample-app-master/samples/wakeWordAgent/src && ./wakeWordAgent -e kitt_ai
  GPIO: PLEASE NOTE -- If using this option, run the wake word agent as sudo:
  cd /home/pi/alexa-avs-sample-app-master/samples/wakeWordAgent/src && sudo ./wakeWordAgent -e gpio

Ceci termine l'installation. Le reste est l'application du terminal et l'authentification.

Méthode d'exécution (authentification et lancement de l'application)

Exécutez 3 dans l'ordre avec la commande.

cd alexa-avs-sample-app/samples
cd companionService && npm start & # ①
cd javaclient && mvn exec:exec & # ②
cd wakeWordAgent/src && ./wakeWordAgent -e sensory & # ③

Chaque programme est 1. un service Web pour l'authentification, 2.1 une application de terminal (écran) qui accède à AVS, et 3. un programme qui regarde le microphone et détecte la commande de réveil (appelant "Alexa"). est.

2017-12-30 (4).png

Appuyez maintenant sur Oui pour lancer le navigateur côté Raspberry Pi. J'ai utilisé Firefox dans mon environnement, mais vous pouvez également utiliser le navigateur Chromium.

firefox &

Dans le champ de saisie URL du navigateur, collez l'URL précédente (puisqu'elle a déjà été copiée dans le Presse-papiers après avoir appuyé sur le bouton Oui) avec Ctrl + V.

2017-12-30 (8).png

Bien qu'il s'agisse d'une erreur de certificat, elle peut être transmise par n'importe quel navigateur si elle est approuvée comme cas particulier.

2018-01-02 (1).png

Appuyez sur OK,

2018-01-02 (2).png

Si vous allez à ce point, l'authentification avec AVS est terminée. Revenez à votre application Java et appuyez sur OK.

image.png

Comme indiqué ci-dessous, le jeton a été saisi et vous êtes connecté.

2018-01-02 (3)_LI.jpg

Vous pouvez appuyer sur le bouton ici pour commencer à parler à partir de la conversation, ou vous pouvez exécuter la commande à l'étape 3 pour attendre la commande de réveil, donc si vous parlez à «Alexa», la conversation s'activera sans autorisation.

Résultat d'exécution

Mike vous indique la météo à West Lake lorsque vous dites "Alexa, quel temps fera-t-il demain?" L'historique peut également être consulté ci-dessous. https://alexa.amazon.com/spa/index.html#settings/dialogs (Japonais) https://alexa.amazon.co.jp/spa/index.html#settings/dialogs

~~ Veuillez noter qu'il existe également le même écran de gestion de alexa.amazon.co.jp, mais pour une raison quelconque, il n'est pas lié à cela. ~~ ~~ (J'ai peut-être défini le serveur quelque part sur le tableau de bord du développeur, mais je ne sais pas où) ~~ Vous pouvez voir l'historique en visitant ~~ alexa.amazon.com. ~~

Ce qui précède était également un mensonge. Vous devez enregistrer votre compte amazon.co.jp en tant que compte développeur. Cela semble être mauvais si amazon.com et amazon.co.jp ont des comptes avec la même adresse e-mail et le même mot de passe. (Si vous ne pouvez pas vous authentifier avec amazon.com d'abord, vous passerez à amazon.co.jp ... hey) https://qiita.com/Dimeiza/items/182c4847d7c1ead7df54#amazoncojp%E3%81%A8amazoncom%E3%81%AE%E3%82%A2%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6 https://dev.classmethod.jp/voice-assistant/solution-of-a-problem-amazon-com-account-conflict/

~~ Ce qui n'a pas fonctionné ~~

Le son ne sort pas du haut-parleur Bluetooth mais sort de la sortie analogique pour une raison quelconque. .. .. ~~ J'ai recherché diverses choses, mais certaines conditions se chevauchent et elles ne sont toujours pas prises en charge. ~~ ~~ -À l'origine, cette application est implémentée sur la base d'Oracle JDK ~~ ~~ -Oracle JDK ne prend pas en charge Linux Pulse Audio ~~ ~~ -Vous ne pouvez pas vous connecter à Bluetooth sans utiliser Pulse Audio ~~ ~~ -Lorsque j'essaye d'utiliser OpenJDK, cela échoue avec une autre authentification SSL. .. .. ~~

(Fixé 2018/1/3) Il y avait un son de bluetooth! [Chapitre 1](https://qiita.com/onelittlenightmusic/items/05b262c60c4889c07ca9#201813%E8%BF%BD%E8%A8%98-%E3%81%82%E3%81%A8%E3%81% A7alexa% E3% 82% 92% E3% 81% A1% E3% 82% 83% E3% 82% 93% E3% 81% A8bluetooth% E3% 82% B9% E3% 83% 94% E3% 83% BC% E3% 82% AB% E3% 81% 8B% E3% 82% 89% E3% 81% 97% E3% 82% 83% E3% 81% B9% E3% 82% 89% E3% 81% 9B% E3% 82% 8B% E3% 81% 9F% E3% 82% 81% E3% 81% AEjava% E8% A8% AD% E5% AE% 9A), mais en écrivant ce qui suit, Pulse Audio → Bluetooth Il y a un son.

/usr/lib/jvm/java-8-oracle/jre/lib/sound.properties


javax.sound.sampled.Clip=com.sun.media.sound.DirectAudioDeviceProvider
javax.sound.sampled.Port=com.sun.media.sound.PortMixerProvider
javax.sound.sampled.SourceDataLine=com.sun.media.sound.DirectAudioDeviceProvider
javax.sound.sampled.TargetDataLine=com.sun.media.sound.DirectAudioDeviceProvider

Recommended Posts

Construisez Amazon Alexa à moindre coût avec Raspberry Pi 3B + haut-parleur Bluetooth (3 installation Alexa Voice Service)
Construisez Amazon Alexa à moindre coût avec le haut-parleur Bluetooth Raspberry Pi 3B + (1. faites d'abord un son)
Je n'ai pas pu installer docker avec raspberry pi2 b +.