Help us understand the problem. What is going on with this article?

Alexaをしゃべらせる(Node-red編)

やりたいこと

※※※この記事は古くなっています。最新の記事「Alexaをしゃべらせる(remote2 v3.3編)」を参照ください。

Node-redでnode-red-contrib-amazon-echonode-red-contrib-alexa-home-skillのパレットを使うと、Alexaに音声で話しかけることをトリガーにNode-redの処理を開始できます。しかし、これらのパレットでは、処理の結果をAlexaを使って音声で回答する(=しゃべらせる)ことはできません。今回は、Node-redからAlexaをしゃべらせることをやってみます。

準備:情報収集

Alexaをしゃべらせるためには、以下の3つの情報が必要なので、これらを順に収集します。

 1.Amazonアカウント ※これは持っていると思うので割愛
 2.AmazonEchoのシリアル番号
 3.AlexaAPIを呼び出すためのCookie

1.AmazonEchoのシリアル番号

AmazonEchoのシリアル番号は、スマホのAlexaアプリから[設定]→[デバイスの設定]→Echoの名前→[その他]と選択していくと表示されます。これをメモしておきます。
図1.png

2.AlexaAPIを呼び出すためのCookie

AlexaAPIを呼び出すためのCookie情報が必要ですが、この情報を収集するのが多少めんどうです。

①AlexaのWebサイトにアクセス

Google Chromeを使ってAmazon AlexaのWebサイト「https://alexa.amazon.co.jp」にアクセスし、しゃべらせるAlexaに紐づいているAmazonアカウントでログインします。
図2.png

②開発ツールを開く

キーボードの「F12」キーを押して開発ツールを開き「Network」のタブを選択します。
図3.png

③音楽を再生する

次に、左側のWebページ内から「ミージック・ビデオ・本」を選択し、PrimeMusicなど、音楽を選択して再生します。当然ながら、音楽を再生するとAmazonEchoから音楽が流れます!
図4.png

④Cookieを取得

右側の開発ツールの画面内のName欄から「queue-and-play?・・・・」というものを探し、クリックします。
図5.png

右側の画面を下にスクロールしていくと「Request Header」の中に「Cookie:」があるので、この内容をテキストエディタなどにコピーしておきます。
図6.png

Node-redの設定

ここから、実際にNode-redを使って、Alexaをしゃべらせてみます。

1.node-red-contrib-alexa-remote2のインストール

Node-redからAlexaをしゃべらせたり、音楽を再生するにはnode-red-contrib-alexa-remote2を使います。まずは、node-red-contrib-alexa-remote2をNode-redにインストールしましょう。

①パレットの追加画面の表示

Node-redの画面の右上の「三」→パレットの管理→(左メニューの)パレット→ノードを追加の順に選択して、パレットの追加画面を表示させます。
図7.png

②node-red-contrib-alexa-remote2の追加

次に「ノードを検索」の欄に「alexa remote」と入力して検索します。検索して出てきた「node-red-contrib-alexa-remote2」の「ノードを追加」ボタンをクリックします。
※「remote」と「remote2」がありますが、remoteは古いのでremote2を選びましょう。
図8.png

また、警告などでますが、構わずにOKしましょう。

③追加ノードの確認

無事にインストールが完了すると、Node-red画面の左側に「media」欄が追加され「Alexa music」「Alexa Speek」「Alexa Command」の3つのノードが追加されるので、確認しましょう。

図9.png

2.Alexa Speekノードの利用

ここからはAlexa Speekノードを利用して、実際にAlexaをしゃべらせてみたいと思います。

①Alexa Speekノードの追加

左側のメニューより「Alexa Speek」ノードをドラッグしてフローに追加します。
図10.png

②Account設定画面の表示

追加したAlexa Speekノードをダブルクリックして設定画面を開き、さらにその中のAccount欄の鉛筆アイコンをクリックして、Accountの設定画面を表示させます。

図11.png

③Accountの設定

Accountの設定画面に以下のように入力して、更新ボタンを押しましょう。

 ・Email:Alexaに紐づいているAmazonアカウントのEmailアドレス
 ・Password:Amazonアカウントのパスワード
 ・Service Host:alexa.amazon.co.jp
 ・Language:ja_JP
 ・AmazonPage:amazon.co.jp
 ・Cookie:上記確認でテキストエディタにコピーしたもの。

※Cookieは「x-amzn-dat-gui-client-v」から始まる部分を全て貼り付けます。頭の「Cookie:」は不要です。

図12.png

④Alexa Speekノードの設定

Alexa Speekノードの設定画面に以下のように入力して、完了ボタンを押しましょう。

 ・Serial or Name:上記でメモしたAmazonEchoのシリアル番号
 ・Node Name:なんでもOK ※Node-red上のノードの名前
 ・Text:※アレクサにしゃべらせたい言葉
 ・Volume:※設定しなくてもOK

※2019年10月現在、Textの部分はアルファベットで入力しないとAlexaはしゃべってくれません。発音は日本語でちゃんと発音してくれるのですが・・・。

図13.png

⑤Injectノードの追加

テストするためにInjectノードを追加して、Alexa Speekノードと接続しましょう。そして、最後に「デプロイ」ボタンを押しましょう。
図15.png

⑥テスト!!

それでは、Inhectノードの左側のボタンを押してみましょう!!!Alexaはしゃべってくれましたか?
うまくいくとAlexa Speekノードの下に「Success」と表示されます。

おわりに

今回はNode-redとnode-red-contrib-alexa-remote2を使って、Alexaに任意のテキストをしゃべらせることをやってみました。スマートホームなど、ちょっとしたことをAlexaが音声でおしえてくれたら良いなーと思うことが多いので、この機能を今後使っていこうと思います。

naka-kazz
国内のIT会社で、SEというかICTコンサルタントをやっています。仕事では、コードを書く事も少ないので、家で色々とやっています。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした