はじめに

Google Home がついに日本でも発売され、ビックカメラでは割引価格で提供されたためとりあえず購入したという方、結構いらっしゃるのではないでしょうか?

今回は Google Home の使用感と機能の追加方法について説明していきたいと思います。

Google Home の標準機能

機能追加をする前に Google Home は純正状態で何ができるのか説明していきます。 初期セットアップ方法などは割愛させていただきます。(一杯記事上がってますし)

基本的にはユーザーが声で質問した内容に対して答えを返す、もしくは動作をおこなう。 が基本の流れになります。タイマーなどの一部を除き Google Home は能動的に動作を起こすことはありません。 またプッシュ通知などにも対応していません。 例えば「中央線が運転見合わせになりました」とかを能動的に答えてくれません。

純正状態で「カレンダーに〇〇の予定を登録」や「 Keeps に〇〇を登録」など、 Siri でよく使うような機能はまだ実装されていません。

以上のことから、 Google Home の初期状態での役割はコンテンツの生産ではなくコンテンツの消費が主役割となります。

私が購入以降毎日使ってる機能を簡単に紹介します。

「今日はどんな日」

 一番 Google Home で使う機能ですね、今日の日付、時刻、天気予報、予定、通勤経路の遅延情報、最新ニュースをまとめて教えてくれます。「今日はどんな日」はちょっと言いづらいので私はショートカット機能で「おはよう」=「今日はどんな日」となるように設定しています。

ショートカットの設定は Google Home アプリの 設定→ショートカット から行えます。 clipboard.png

通勤経路の遅延情報は残念ながら「山手線遅延」といった情報ではなく GoogleMap で検索した所要時間で返されます。そのため、公共交通機関が複数ルート存在する場合は遅延に気付かないこともあります。

最新ニュースは Google Home アプリ上で設定した PodCast が順繰りに再生されます。内容としては「 NHK ラジオニュース」や「日経電子版 NEWS 」などになります。残念ながら最新のものしか再生されないので、朝7時の NHK ニュースは20分程度ありますが、朝8時のニュースは5分とバラバラで痒いところに手が届かなかったりします。 ニュースの順番は 設定→ニュース で変更可能です。既読管理は行われないので一週間に一度しか更新されない番組を上位に配置すると同じニュースを毎日聞くは目になるので更新頻度が高い順に並べることをおすすめします。(閑話ですが、 NHK ラジオニュースは指定時刻に録音したファイルを無チェックで自動アップロードされているようで野球が延長するとただの中途半端に切られた野球番組になります。)

clipboard.png

Cast

 これは ChromeCast をお使いの方はお馴染みの機能で、 PC やスマートフォンから音声データを Cast できます。 PC では Youtube などの動画も音声のみで Cast 可能です。(何故か GPU に負荷が掛かると再生落ちるのですが) Google Play Music などは PC で Cast してしまえばアルバムが終了するまでは PC の電源が落ちても再生し続けてくれるため結構便利です。対応アプリさえあれば iOS 、 Android 、 Windows 関係無く使用できるのでお勧めです。

clipboard.png

Google Play Music

 先ほどは Cast 機能で Play Music の音楽を再生しましたが Google Home 単体でも再生は可能です。「○○というアルバム or プレイリストを再生して」で再生することが可能です。しかし、音楽のタイトルやアーティスト名は有名所以外の認識は苦手なようで特にカタカナ系が認識し辛いです。

 内部で音声を文字列化したもので比較していると思うのですが「ソードアート・オンライン」のアルバムを再生する時に音声認識が「 Sword Art Online 」と認識された場合はアルバムを見つけることができません。非英語圏全体の問題だと思いますが、日本語は「英字」「平仮名」「片仮名」「漢字」が混在しているので Google Home に特に相性がよくない言語だと思います。(同音同義別表記語って音声認識界隈では地獄そうですよね……「 Hey! Say! JUMP 」とか認識どうするんですかね……)

以上の事から、作品タイトルなど固有名詞系は現状 PC やスマホなどで選択した方がストレス少なく操作できます。

radiko

  Google 純正機能ではなく一応サードパーティーアプリという扱いだと思いますが、10月下旬に radiko に対応しました。「 radiko で NHK 第一を再生して」「 NHK 第一を再生して」などで radiko の番組がストリーミング再生されます。 IP で地域判定する機能はしっかり入っているようで残念ながら東京で地方のラジオを再生することはできませんでした。

Bluetooth スピーカー

  Google Home は実は、ただの Bluetooth スピーカーとしても使用することが可能です。「 Bluetooth ペアリング」と Google Home にお願いすれば Bluetooth ペアリングモードになります。機器名称は Google Home 初期設定時に設定した名前になるので日本語環境で設定していると2バイト文字で出てきます。(2バイト文字 Bluetooth デバイスって問題無いのだろうか……)

clipboard.png

 私がよく使う Google Home の初期機能は以上になります。これだけでも音声消費端末としてはかなり優秀ですので一連の機能だけでも十分購入価値はあると思います。

Google Home の機能追加方法

Google Home の真価(進化ともいう)はここからでスマホと同じようにユーザー側で機能を追加することができます。機能追加の方法としては2種類ありまず「 Actions on Google 」、「 api.ai 」を使ってのアプリ作成です。 このページがとても面白く色々と仕事に活用出来そうでした。

薬剤師が教える Google Home のデモ用 bot のつくりかた

 本記事ではここまでしっかりしたアプリではなく一問一答(一問一動)なアプリの作り方を紹介します。 それが IFTTT を使った機能の追加方法です。

IFTTT

IFTTT は有名なので説明する必要はないと思いますが簡単に説明すると、プラットフォームを越えて「何かが起きたとき何かする」を GUI で簡単に作れるサービスです。例えば「雨が降るときメールで通知」や「ツイートしたとき同じ内容を Evernote に追加」などが簡単につくれます。本記事では IFTTT のアカウント作成などは割愛します。

IFTTT で Google Home から tweet させる

IFTTT で Google Home を連携させる場合は「 Google Home で何かの文言が吹き込まれたとき何かをする」という設定になります。 まず Google Home と連携させるために、「 Service → Google Assistant 」で Google Home に使用している Google アカウントを認証しましょう。

clipboard.png

連携させたら次に何か動作させたい側の Service も連携します。今回は Twitter を認証しました。

2つの Service を認証させたら「 New Applet 」を選択しレシピ(命令)を作成します。 「 New Applet 」を選択すると「 if this then that 」と大きく表示されているので、文字色が青になっている「 this 」を選択します。すると連携させる事ができる Service 一覧が表示されるので「 Google Assistant 」を選択します。

Google Assistant では現状4種類の認識内容が選べます。

  • Say a simple phrase ……命令文を聞き取るだけの時に使用します。「電気を消して」とか「明日の天気は」などの決まった文章さえ認識できれば良いときに使います。
  • Say a phrase with a number ……命令文+任意の数字を聞き取るときに使用します。「10分後に電気を消して」とか「明日18時の天気は」などの決まった文章+任意の数字を認識する必要があるときに使います。
  • Say a phrase with a text ingredient ……命令文+任意の文字列を聞き取るときに使用します。「東京の天気は」とか「○○とメモをとって」などで使います。
  • Say a phrase both a number and a text ingredient ……命令文+任意の数字+任意の文字列を聞き取るときに使用します。「明日18時の東京の天気は」などの時に使います。

clipboard.png

今回は Twitter に任意の文字列を投稿するのが目標のため、「 Say a phrase with a text ingredient 」を選択します。次のページで具体的な命令文を入力します。「 What do you want to say ?」に「 Twitter に $ と投稿」と入力します。$は任意の文字列になります。前後に半角スペースが必須なので注意してください。

「 What's another way to say it?」「 And another way?」は他に同じ命令と見なす文言です。短縮した分や言い間違いやすい文章を入れると良いと思います。例えば「 Twitter で $ と投稿」など日本語的にどちらでも問題ない言い方をここである程度書いておくと命令するときに楽です。

「 What do you want the Assistant to say in response?」は命令実行後に Google Home 側から帰ってくる内容です。ここでは必ず任意の文字列にあたる部分を喋らせた方が良いです。何故かというと正しく認識できてなかった場合に直ぐに訂正行動が取れるからです。(「餃子食いたい」とツイートさせたら「茣蓙食いたい」って誤認識された時などに効果的です。はい、実話です。)

「 language 」は日本語を聞き取らせるので Japanese ですね。

clipboard.png

「 Create Trigger 」を選択すると「 if this then that 」の that 部分が青色になっているので選択します。文章を Twitter に投稿するので Twitter を選択します。 Twitter 側でも複数の「 Choose Action 」がありますが説明は割愛です。「 Post a tweet 」を選択します。

そのまま何もせずに「 Create action 」を選択すればレシピは完成するのですが、誤認識した時に「 Googe Home がちゃんと認識しなかったんだよ!」って弁明できるように末尾に Google Home で投稿した事を示す文言を入れた方が良いと思います。

clipboard.png

「 Create action 」でレシピを作ったら早速 Google Home に話しかけてみましょう。今回は「 Twitter に○○と投稿」と喋ると任意の文字列を Twitter に投稿してくれます。

これで料理中にスマホを鍋に沈めて、この珍事を tweet したいけどスマホは鍋の底だ!となっても冷静に「 OK Google Twitter に スマホ落として圧力鍋の底に沈んでいったんだけど と投稿」を言うだけで tweet することができるようになります。

家電と連携させる

Google Home には標準でルンバやフィリップスの Hue などと連携して掃除をさせたり、照明を付けたりなどが出来る様になっています。しかし、既に家中がフィリップスの LED 電球です。という家庭は少ないと思います。 今回は汎用的に赤外線送受信機を使って赤外線操作対応の家電を操作したいと思います。

 私の自宅には既に IRkit での家電操作環境が出来ていたのでこれを追加で Google Home に対応させていきます。 残念ながら IRkit は販売を終了しているのですが HTTP で API 操作できる端末なら同じ様な方法で実装可能だと思います。

IRkit

(IRkit は6千円くらいで買えて、 Wifi 接続で操作できるので設置場所を選ばずにかなり便利な端末でした。欠点は2.4Ghz の Wifi で13ch が接続できなかったのと青色の光が明るすぎる所)

clipboard.png

今回は家の電球を操作させます。幸いな事に我が家は標準で赤外線操作に対応していましたが、対応していない場合は家電量販店で赤外線操作対応のシーリングライトを購入する必要があります。(最近は Bluetooth スピーカー内蔵のシーリングライトとかがあり未来を感じます。)

IRkit は既に販売終了で今更初期設定の話をしても需要が無さそうなので割愛します。とりあえず API アクセスの時に必要な「 Client key 」と「 Device id 」を取得し、制御用の赤外線の送信コードを記録しておきます。

IFTTT の設定は Google Assistant で「 Say a simple phrase 」を選択します。 設定はこんな感じです。「電気をつけて」「明かりをつけて」が Hue 操作用に予約語的な扱いで取られているのでちょっと変えて「電灯をつけて」にしています。認識率があまりよろしくないのでもっと開き直って「ガス灯をつけて」とかにしたほうが良いかもしれません。

clipboard.png
「 that 」の方は Service を「 webhooks 」にします。 IRkit での設定はこんな感じです。赤外線の本文の前に「 Client key 」と「 Device id 」を付ける必要がありますが、これが漏れると世界中の人が我が家の家電操作し放題になるので隠しています。

clipboard.png

我が家の照明 ON の叩くコードはこんな感じです。エアコンとかだと行数が倍以上に跳ね上がります。

clientkey=null&deviceid=null&message={"format":"raw","freq":38,"data":[18031,8755,1319,968,1319,968,1319,968,1319,968,1319,968,1319,968,1319,968,1319,3119,1319,3119,1319,968,1319,3119,1275,968,1319,968,1319,968,1319,3119,1275,3119,1275,968,1319,3119,1319,968,1275,3119,1319,3119,1319,968,1319,968,1319,3119,1319,3119,1319,968,1319,3119,1275,968,1319,968,1319,3119,1319,3119,1319,968,1190]}

以上で我が家では予約語をさけつつ7個ほどレシピを作成しました。

これだけ登録するだけでとても便利に過ごせるようになりました。もう家電を操作するのに手を伸ばす必要はありません。

clipboard.png

ここまで Google Home に機能を追加していきましたが、同じ Google アカウントでログインしていれば、 Android や iOS の Google Assistant でも同じ機能が使えるようになっているので、外でもスマホに話しかければ作成した機能を使うことが可能です。サーバーの動作状況や、再起動 Batch などを音声で操作できるようにするのも面白いかもしれません。

沢山の機能を追加してより良い怠惰ライフをお過ごしください!

追伸

私はまだ試してないのですが、ラズパイを噛ますことで Google Home をプッシュ通知対応にすることができるようですよ。

Google Home スピーカーに外部からプッシュして自発的に話してもらいます