もくじ
つくったものの動作
私”もち”は、仕事から帰宅し台所で夕食をつくっている。
もち@台所「アレクサ、調理報告」
アレクサ「イフトに送信します」
直後、家族のLINEに
「今日は私が夕食をつくっているからゆっくり帰ってきてちょんまげ」
というメッセージが送られる。
「調理報告」とか全然日本語らしくないけど、一応使える。
大まかな仕組み
今回はIFTTTを使い、Amazon Echoに一定の声のフレーズが入力されたら自動でLINEに定型文を送る仕組みをつくってみた。
下図のような構成だ。
- 私(もち)がEcho Dotに向かって「アレクサ、調理報告!」と声をかける。
- Echo Dotからクラウド上のAlexaに音声信号が送られる。
- 音声信号が解析され、Alexaにあらかじめ登録しておいた定型アクションによりIFTTTが呼び出される。
- IFTTTに登録しておいたアプレットにより、LINEにメッセージ送信リクエストが送られる。
- LINEから家族にメッセージが送られる。
そもそもの経緯
技術的なお話だけ読みたい人は、「IFTTT」の節までスキップするとよい。
初代Amazon Echo Dotを使い始めてもう何年経つだろう。
今も代替わりすることなく現役で毎日使っている。
用途はだいたい決まっていて
- リビングの電気のON/OFF、明るさと色味の調整
- 決まった時刻でリビングの電気の明るさと色味の自動調整
- Prime Musicの音楽再生
- タイマー:調理中によく使う
- アラーム:日々の決まりきった作業に使っている
- テレビモニター+Chrome Castの電源のON/OFF
- ニュース
- 天気
こんな感じだ。
スキルはあまり使わず、Alexaの基本機能と、サードパーティのデバイスを組み合わせたスマートホーム的な使い方が中心だ。
一つ、これらに加えて前からやってみたかったことがある。
Amazon Echoを使ったLINEの送信だ。
台所に立っており手が離せない状況で家族に一言連絡を入れたいことって、ないかな?
うちの場合は共働きの家族に対して「今日は私が夕食を作っているから、ゆっくり帰ってきていいよ」
と一報を入れたいときがある。
定型の決まりきった文面で構わないので送りたいときがあるのだ。
IFTTT
そこで目を付けたのがIFTTT(イフト)というサービス。
Web上の様々なサービス同士を連携させるすごいやつだ。
無料の範囲でもそこそこ色々できる。
例えば
Googleカレンダーに登録した飛行機のチェックイン時刻が迫ってきたら、チェックイン用のQRコード画像をメールで自分に送る
とか
特定のフレーズを含むメールが届いたらSMS(ショートメッセージ)でスマホに通知する
とか、そんな使い方ができる。
実装準備
LINEにグループトークをつくっておく必要がある。
IFTTTで呼び出せるLINEの機能はグループトーク宛にメッセージを送る機能のみに限定されており、個人宛にはメッセージが送れないためだ。
私は家族と私の2人のみのグループをつくり、このグループに対してメッセージを送ることとした。
いざ実装
IFTTTの設定
IFTTTにユーザ登録を済ませた上で以下の操作を行い、AlexaとLINEの連携機能を作り込む。
Create ボタンをクリック
If This ボタンをクリック
検索ボックスに「alexa」と入力し、Amazon Alexa をクリック
「Say a specific phrase」をクリック。
Amazonアカウント認証やAlexaデバイスを指定する画面が表示された場合は、指示にしたがって認証・指定する。
「What Phrase?」欄には何でもよいので文字列を書く。
私の場合は「gohan」とした。
最終的に入力音声には使われないが、後で行うAlexaの設定でIFTTTのどの処理を呼び出すのか指定するときに使う文字列なので、見分けが付きやすい文字列にしておくとよい。
そしてCreate Trigger ボタンをクリック
Then That ボタンをクリック
検索窓に「line」と入力し、LINEをクリック
Send message をクリック。
LINEアカウントの認証画面が表示されたら指示に従い認証する。
Recipient欄で、メッセージの送信先のLINEグループを選択する。
Message欄に、送りたいメッセージの内容を書く。
以上をやった上で Create action ボタンをクリック。
Continue ボタンをクリック
Finish ボタンをクリック
表示される画面で「Connected」と表示されていることを確認する。
表示されていない場合、AlexaまたはLINEのアカウント連携が上手くいっていない可能性が高いので、もう一度認証を試す。
Alexaの設定
次にAlexa側の設定をする。
Alexaには定型アクションという機能があり、ユーザの音声入力に対してどんな動作をさせるかを柔軟に設定しておける優れものだ。
定型アクションにはなんと、先ほど作成したIFTTTの連携処理の呼出も含まれており、この機能を使っていくこととなる。
以下の手順で定型アクションを作り込む。
次のボタンからAlexaアプリがインストールできる。※1※2
※1 以下の説明はiOS版Alexaアプリが前提となっている。
※2 Webブラウザ版Alexaアプリには定型アクション機能が無く以下の手順が行えないので注意。
Alexaアプリを開き、画面右下の「その他」をタップ
「定型アクション」をタップ
右上の+アイコンをタップ
「定型アクション名を入力」の右にある+をタップ
何でもよいので、自分にとって分かりやすい定型アクション名を書いて、「次へ」をタップ
「実行条件を設定」の右にある+をタップ
「音声」をタップ
Echo Dotに何と話しかけたら定型アクションを開始するのかを指定する。
私の場合、「夕食つくってるよ」とか「ご飯つくってます」とか普通に考えたフレーズだと上手く認識せず結構試行錯誤した。
「調理連絡」にすると、「連絡」に反応して通話機能が呼び出されてしまったのでダメだった。
最終的に私が落ち着いたフレーズは「調理報告」という謎の日本語だった。
使い勝手を左右する一番大事なところだと思うけど、実用性を考えるとフレーズの自由度はあまり高くないようだ。
「アクションを追加」の右にある+をタップ
「IFTTT」をタップ
IFTTTの設定で「What Phrase?」欄に入力した文字列をタップしてチェックマークを出し、「次へ」をタップ
「保存」をタップ
右図のように「完了しました!(略)」というメッセージが表示される。
定型アクションが追加されたことを確認する。
右にある▶をタップすると、Echo Dotへの音声入力が行われた後の処理をテストできる。
動作確認
いよいよテスト。
Amazon Echoに「アレクサ、調理報告」と話しかけてみよう。
次のようにLINEのグループトークにメッセージが送信されたら成功だ。