7
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2019-10-09

#やりたいこと

※※※この記事は古くなっています。最新の記事「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が音声でおしえてくれたら良いなーと思うことが多いので、この機能を今後使っていこうと思います。

7
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?