[JAVA] Erstellen Sie Amazon Alexa kostengünstig mit Raspberry Pi 3B + Bluetooth-Lautsprecher (3 Alexa Voice Service-Installation)

Fortsetzung von Kapitel 1 und Kapitel 2 möchte ich Rasppie in Amazon Echo konvertieren. Überlegen.

Dieses Kapitel: Ich möchte Alexa Voice Service (AVS) auf Raspberry Pi installieren und mit Alexa sprechen.

Ein Artikel über einen Pionier, der Razzpie Echo gemacht hat.

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

Melden Sie sich zunächst beim Alexa Voice Service an

Registrieren Sie sich als neuer Entwickler, indem Sie sich oben rechts auf der Hauptseite unten anmelden.

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

Wenn Sie sich anmelden, werden Sie zu diesem Bildschirm weitergeleitet.

image.png

Von "Erste Schritte" mit Alexa Voice Service

image.png

image.png

Registrieren Sie vier Arten von URLs im Sicherheitsprofil. Es gibt zwei Arten von "Zulässiger Ursprung" (= Zulässiger Ursprung). Es gibt zwei Arten von "Zulässige Rückgabe-URL" (= Zulässige Rückgabe-URL).

image.png

Irgendwann wird es registriert und es wird so sein.

image.png

Wenn Sie auf "Verwalten" klicken, können Sie die Client-ID und das Client-Geheimnis erneut überprüfen.

image.png

Laden Sie sdk herunter und listen Sie die Client-ID auf

Laden Sie die gewünschte Beispiel-App herunter, wie im folgenden Artikel beschrieben.

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_HIER ← hier

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

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

Führen Sie nach dem Bearbeiten die Installation aus.

. ./automated_install.sh

Beantworten Sie die folgenden Fragen, um die Installation abzuschließen.

====== 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

(Die Installation beginnt)

...
[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

Damit ist die Installation abgeschlossen. Der Rest ist die Terminalanwendung und Authentifizierung.

Ausführungsmethode (Authentifizierung und Anwendungsstart)

Führen Sie 3 in der Reihenfolge mit dem Befehl aus.

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

Jedes Programm ist 1. ein Webdienst zur Authentifizierung, 2.1 eine Terminalanwendung (Bildschirm), die auf AVS zugreift, und 3. ein Programm, das das Mikrofon überwacht und den Weckbefehl erkennt (Aufruf von "Alexa"). ist.

2017-12-30 (4).png

Drücken Sie nun Ja, um den Browser auf der Raspberry Pi-Seite zu starten. Ich habe Firefox in meiner Umgebung verwendet, aber Sie können auch den Chromium-Browser verwenden.

firefox &

Fügen Sie die vorherige URL (da sie durch Drücken der Schaltfläche Ja bereits in die Zwischenablage kopiert wurde) mit Strg + V in das URL-Eingabefeld des Browsers ein.

2017-12-30 (8).png

Obwohl es sich um einen Zertifikatfehler handelt, kann er von jedem Browser übergeben werden, wenn er als Sonderfall genehmigt wurde.

2018-01-02 (1).png

Drücken Sie Okay,

2018-01-02 (2).png

Wenn Sie zu diesem Punkt gehen, ist die Authentifizierung mit AVS abgeschlossen. Kehren Sie zu Ihrer Java-App zurück und drücken Sie OK.

image.png

Wie unten gezeigt, wurde das Token eingegeben und Sie sind angemeldet.

2018-01-02 (3)_LI.jpg

Sie können hier die Taste drücken, um mit dem Gespräch zu beginnen, oder Sie können den Befehl in Schritt 3 ausführen, um auf den Weckbefehl zu warten. Wenn Sie also mit "Alexa" sprechen, wird das Gespräch ohne Erlaubnis eingeschaltet.

Ausführungsergebnis

Mike erzählt dir das Wetter in West Lake, wenn du sagst "Alexa, wie ist das Wetter morgen?" Der Verlauf kann auch unten angezeigt werden. https://alexa.amazon.com/spa/index.html#settings/dialogs (Japanisch) https://alexa.amazon.co.jp/spa/index.html#settings/dialogs

~~ Bitte beachten Sie, dass es auch den gleichen Verwaltungsbildschirm von alexa.amazon.co.jp gibt, der jedoch aus irgendeinem Grund nicht daran gebunden ist. ~~ ~~ (Ich habe den Server möglicherweise irgendwo im Entwickler-Dashboard eingestellt, bin mir aber nicht sicher, wo) ~~ Sie können die Geschichte sehen, indem Sie ~~ alexa.amazon.com besuchen. ~~

Das Obige war auch eine Lüge. Sie können Ihr amazon.co.jp-Konto ordnungsgemäß als Entwicklerkonto registrieren. Es scheint schlecht zu sein, wenn sowohl amazon.com als auch amazon.co.jp Konten mit derselben E-Mail-Adresse und demselben Passwort haben. (Wenn Sie sich nicht zuerst bei amazon.com authentifizieren können, springen Sie zu 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/

~~ Was hat nicht funktioniert ~~

Der Ton kommt nicht aus dem Bluetooth-Lautsprecher, sondern aus irgendeinem Grund aus dem Analogausgang. .. .. ~~ Ich habe verschiedene Dinge untersucht, aber einige Bedingungen überschneiden sich und es wird immer noch nicht unterstützt. ~~ ~~ -Ursprünglich ist diese App basierend auf Oracle JDK ~~ implementiert ~~ -Oracle JDK kann den Linux Pulse Audio-Mechanismus nicht unterstützen ~~ ~~ -Du kannst keine Verbindung zu Bluetooth herstellen, ohne Pulse Audio zu verwenden ~~ ~~ -Wenn ich versuche, OpenJDK zu verwenden, schlägt dies mit einer anderen SSL-Authentifizierung fehl. .. .. ~~

(Behoben 2018/1/3) Es gab einen Ton von Bluetooth! [Kapitel 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% Ich habe es zu 82% 8B% E3% 81% 9F% E3% 82% 81% E3% 81% AEjava% E8% A8% AD% E5% AE% 9A) hinzugefügt, aber indem ich Folgendes schreibe, Pulse Audio → Bluetooth Es ist ein Geräusch zu hören.

/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

Erstellen Sie Amazon Alexa kostengünstig mit Raspberry Pi 3B + Bluetooth-Lautsprecher (3 Alexa Voice Service-Installation)
Erstellen Sie Amazon Alexa kostengünstig mit dem Raspberry Pi 3B + Bluetooth-Lautsprecher (1. Machen Sie zuerst einen Sound)
Ich konnte Docker nicht mit Himbeer pi2 b + installieren.