8
8

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.

Google Home でトリガーを引くためのアレコレ

Last updated at Posted at 2017-12-03

これは 日本情報クリエイト Engineer's Advent Calendar 2017 の4日目の記事です。

#はじめに:
 わたしが**「スマート.+」**ということばに最初に触れたのは、たぶんファンタジーゾーン(FANTASY ZONE SEGA 1986)というシューティングゲームです。

YouTube 「初代ファンタジーゾーン ワンコインクリア」プレイ動画
https://www.youtube.com/watch?v=45YStRIDVpY

このシューティングゲームにはなぜかパーツショップがあって、そこで売られている **「SMART BOMB」**が、弾幕回避が下手くそなわたしには、とても素敵な存在でした。

 で、当時のわたし(10歳)は上の画像より**「SMART BOMBとは、ほっそりとすらっとしたスタイルのボムのことなんだ」**と、理解していました (だってFIRE BOMBはふとっちょじゃん)。

 さて、時は流れ、スマートフォン・スマートウォッチ・スマートメーター・スマートセンサーなどいろんなスマートがあふれる時代。
 ようやく今、スマートとは**「賢い・高性能」**という意味で使われる言葉だと理解しました。ちなみに、スマートボムとは誘導爆弾のことだそうです。

 そして今わたしの目の前にあるのは「スマートスピーカー」。このスマートなスピーカーで、なんかやってみましょう。

#スマートスピーカーでスマートホーム:
 Google Home では、おうちの赤外線リモコンを制御したり、おうちのコンピューターのトリガーを引くことができます。
 やりかたは、以下のような方法が考えられます。

  • Google Home -> IFTTT -> おうちのiRKit -> おうちのテレビ
  • Google Home -> IFTTT -> ngrok -> おうちのHTTPListener -> おうちのApp
  • Google Home -> IFTTT -> beebotte(MQTTへpublish) -> おうちのApp(MQTT Subscribe)

#登場する要素のスマートな説明:

https://ifttt.com/discover
IFTTT(if this then that)は、「きっかけ」と「行動」をつないだ「レシピ」を作ることができるWebサービスです。
 「this」に**「Google Home で[部屋のあかりをつけて]と呼びかける」、「that」に「Webhookで自宅のiRKitにメッセージを送信する」としたレシピを作れば、「ねぇgoogle 部屋のあかりをつけて」**と話して制御できる赤外線リモコンができます。

 

http://getirkit.com/
 iRKitは、無線LANに接続できる赤外線リモコンデバイスです。Amazonで¥8,000ぐらいです。
 おうちに設置したiRKitを外部(インターネット)から呼び出す方法が標準で用意されており、iPhoneのアプリと組み合わせれば出先から自宅のエアコンをON/OFFできます。

 

https://ngrok.com/
 ngrokは、LAN内のPCでリッスンしているポート(外部に開放していない)に、グローバルからアクセスするトンネルを作るツール・Webサービスです。
 おうちで動いているPCでWebサーバーを動作させただけではインターネット側から見ることはできませんが、ngrokで HTTP 80 のトンネルをおうちのPCにつなぐと、ルーター等にはなんの手を加えることなくインターネット側からアクセスできるようになります。

 

 MQTT(Message Queue Telemetry Transport)は、IoTなどでよく使われる、メッセージ配信プロトコルです。
 送信側は、受信側の都合は気にせず、送りたい内容だけ意識して送信すればよい。受信側は、送信側の都合は気にせず、欲しい情報を好きな時に受信すればよい。そういう、ゆるく(?)て軽量なコミュニケーションができます。

 

https://beebotte.com/
 beebotteは、MQTTのプロトコルが使えるブローカーサービスです。
 beebotteのよいところは、REST to MQTTブリッジサービスが用意されている点で、普通の HTTP POST でメッセージを送信することができます。

#おうちのコンピューターのトリガーをひいてスマートなことをする:
 Google Home 特徴は、何と言っても**「ずば抜けた音声認識精度」です。
 テレビがついて音が鳴っていても、5m離れたところからでも、
「ねぇgoogle、外の温度は?」と呼びかければ「新宿の気温は15度です」**と答えてくれます。

###たとえばその1。
 あらかじめ、自分の通勤経路で使用する鉄道会社の運行情報をWebで調べて問題があればそれを読み上げるアプリを作っておきます。
 このアプリを、上記の Google Home トリガーで動作するようにしておき、**「ねぇgoogle、今日は出社できるかな」と話しかけると、「残念ながら無事出社できそうですよ、今日もお仕事頑張ってくださいね」**とPCから喋る音声ソリューションができます。
※本当は Google Home が喋るのが良いのですが、できるけどすごく面倒なのでPCで喋らせるのが現実的です。どうしてもやりたい場合は、以下が参考になります。

Google Homeで時報を知らせる
https://qiita.com/udon11/items/fef44cec7b243f93151b

###たとえばその2。
 NHKは、NHK番組表APIという番組表の情報をJSONで受け取ることができるサービスを公開しています。**「次の直虎のタイトルは何?」とか、「今日のNHKの放送終了時刻は何時?」**とか、やや便利そうなものがつくれます。

NHK番組表API
http://api-portal.nhk.or.jp/

###ほかにも。
 PCゲームをプレイ中に**「ねぇgoogle、録画を開始」**という音声キーワードでプレイ動画を撮れるようにしておくと、両手はゲーム操作を続けたままで、音声入力という新しいチャネルでアクションが実行できます。
※もちろん、あらかじめトリガーを受け取るアプリを作っておく必要があります。

#まとめ
 これまでの音声入力のいちばんの問題は、**「しゃべってんのにうまく認識されねー!」**でした。
 ここが、かなり良い感じに解決されているのが今年のスマートスピーカー。
 やっとくとよいですよ。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?