RaspberryPi
Firebase
Alexa
GoogleHome
Clova

Google Homeと暮らした1年間のログを分析してみた

ログを見るかぎり2017/10/12にGoogle Homeを購入してから1年がたちました。
そして2017/10/14にQiitaに初投稿してから本日で丸1年になります。

なのでこの1年間のGoogle Homeへの発話ログを抽出し分析してみました。
これはまだ国内ではあまりない情報ではないかと思います。

先に結論をまとめちゃうと、

  • ITリテラシーおばあちゃん級でも結構使ってくれる
  • Google Homeは3回に1回はよくわかってない
  • 一日あたり平均37.4回Google Homeに話しかけてる
    • 1/3は家電操作でこれがメイン
  • 標準機能もわりと使える
    • 天気、タイマー、アラーム
  • スマートなスピーカーなだけあって音楽用途に強い
    • 常時稼働してるスピーカーってだけで強い
    • Spotifyで新たなアーティスト発掘嬉しい

利用環境

まずは前提情報として利用環境について説明していきます。
ログの分析結果までスキップはこちら。

保有スマートスピーカー

2018/10/14現在、我が家には10台のスマートスピーカーがあります。

スマートスピーカー 台数 備考
Google Home 2台 リビングとキッチンに。
Google Home Mini 3台 リビングと洗面所と寝室に。
Echo Dot 1台 外出時に使うぐらい。
普段はコールドスタンバイ。
Echo Spot 1台 主に開発用。
たまに家電操作。
Clova Friends 1台 主に開発用。
たまに家電操作。
OK Banana 1枚 バナナパンツにGoogle Assistantを実装した
オリジナルスマートスピーカーです。
中身はラズパイとGoogle Assistantです。
コールドスタンバイ。
スマートミラー 1台 中身はラズパイとGoogle Assistantです。
コールドスタンバイ。

家族構成

現在の家族構成は私、妻、もうすぐ3歳児、1歳児の4人家族です。
上の子は喋りはじめの頃、頑張って「おーけーぐーぐー」と唱えていたものの全く反応してもらえず、今はもうGoogle Homeに話しかけなくなってしまいました。

なので利用者は私と妻の2人です。
ちなみに妻は未だにガラケーを使っていたりと、ITリテラシーは世のおばあちゃんと同じぐらいです。

住居環境

2017年内は1LDKの賃貸マンションに住んでいました。
リビング7畳、寝室4.5畳に家族4人で生活と中々やばめな環境です。
リビング、寝室にそれぞれ置いたGoogle Homeで事足りていました。

2018年頭から購入した3LDKのマンションへ引っ越しました。
リビングが3倍ほどの広さとなったからか、引っ越した当初はGoogle Homeの認識が悪くなった記憶があります。

Google HomeはVoice Matchの機能により登録した個人の声を学習しています。
そして私達が普段耳にしている音は半分以上が反響音で構成されているとのことです。
環境が大きく変わったことによりこの反響音の成分も変化してしまったため、認識率が落ちたのではないかなと思います。

スマートホーム化の範囲

Qiitaに何度か投稿していますが、我が家はかなりスマートスピーカーに対して最適化を行っています(人に対して、ではなく)。
照明テレビエアコンパソコンPS4と、一通りの家電は音声操作できます。
過去にはお風呂のお湯はりスイッチなんかも自作スイッチボットで音声操作できましたが、見てくれが悪いため引っ越しのタイミングで廃止されました。

ただしこれはリビングのみとなります。
寝室は妻の気に入った照明(リモコン操作できないタイプ)をつけられており、エアコンもほとんど使用しないため音声操作化されていません。
廊下や洗面所等の照明はスイッチボットを使わなければいけないため、前述した通り音声操作化できない状況です。

しかし寝る時以外はほぼリビングにいるので、スマートホーム化の範囲としてはまあこれでいいかなと思っています。

1年間の発話ログ

さて上記までの前提を踏まえここからが本題です。
Google Homeの発話ログはGoogle アカウントから以下のようにたどると参照できます。

Google アカウント > 個人情報とプライバシー > アクティビティ管理 > 音声アクティビティ > 履歴を管理

image.png

我が家のGoogle HomeではVoice Matchにより私と妻それぞれの声を認識するようアカウント設定していますが、ここには私と妻の両方のログが蓄積されていました。
もちろんスマホのGoogle Assistantに話しかけた内容はおろか、OK Bananaに話しかけた内容まですべて蓄積されています。
アカウントが紐付いているGoogle Assistantに話しかけられた全ての発話を蓄積しているようです。

ログのダウンロード

さきほどの画面でひたすら下にスクロールしていくと過去ログがどんどん見えていきますが、さすがに1年分これはきついのと、おそらく途中でブラウザが固まります。
なので以下の方法でログをダウンロードしましょう。

他の Google アクティビティ > マイ アクティビティからのデータのダウンロード

image.png

なんとこの画面からGoogle アカウントのすべての情報がダウンロードできます。
しかし全ての情報となると相当な量となるため、音声アクティビティのみに絞ります。

選択を解除 > 「マイ アクティビティ」をチェック > 「特定のアクティビティ データを選択する」をチェック > 「アシスタント」のみチェック

ここでは「アシスタント」の他に「音声」という項目がありました。
両方ダウンロードしてみましたが内容は大体同じで、アシスタントの方がレコード数が多かったのでこちらを使いました。

それとファイル形式をHTMLかJSONか選択できます。
私はデータを扱いやすいためJSONでエクスポートしました。

そしてデータのサイズによりますが少し待ちます。
私はデータが723MBあり、ダウンロード可能となるまでに10分ほどかかりました。
実はこのダウンロードデータ、実際発話した音声のmp3データも含まれているので結構でかいのです。

ダウンロードしたzipからmp3はスルーしてJSONのみひっこ抜けばログゲットです。

ログを分析

私はExcel大好きおじさんなのでなんでもかんでもExcelにつっこみます。
ある程度大きなデータでもExcelで扱えるよう、PCは自作でそれなりスペックを確保しています。

ひとまずJSONをさらっと見て必要そうなデータを表形式で並べてCSVエクスポートします(ツールのソースを追記しました)。
あとはCSVをExcelにつっこんでデータをこねこねしていった結果、

項目 レコード数
総レコード数 24,747
 発話レコード数 15,752
 発話以外のレコード数 8,995

となりました。

「発話以外のレコード数」とは見た感じ明らかに発話じゃないレコードです。
「文字に変換できません」とか「音声コマンドが不明です」とかです。
多分うまく認識できなかった言葉とかだと思います。
1/3はこのレコードなので3回に1回はGoogle Homeはよくわかってないってことでしょうか。

続いて発話レコードについてもう少し掘っていきます。
このレコードには発話内容の文字列があるので、よく使うワードで抽出したりしてざっくり分類していきました。

項目 レコード数 日あたり
レコード数
備考
発話レコード総数 15,752 44.4  
 正常レコード 11,233 31.6 意図通り認識されてるっぽいやつ
 誤認識レコード 2,069 5.8 意図しない認識されてるっぽいやつ
 開発レコード 2,450 6.9 アプリ開発とかでテストしてるっぽいやつ

とりあえず大きく3つに分類しました。

正常レコード、誤認識レコードを合わせると一日あたり平均37.4回Google Homeに話しかけていることになります。
予想以上に話しかけていました。
予想以上と感じたということはわりと生活に溶け込んでいるのだと思います。

誤認識レコードは明らかに意図してないような認識をされていました。
テレビの音を拾ったっぽかったり、ほかのGoogle Homeの喋ってる音を拾ったっぽかったりと。
謎語録を一部掲載しておきます。

「体の形をしています それで顔が丸い」
「ここがふわっとしてその対策として確立されました」
「小さい 入った方が でも変わるんですけどちょっと嫌になっちゃうので」
「ラムダ つまんない 仕事行ってたものでアップロードエラーですよね プロジェクトの下に 複数デバイスをいる場合はそれでは仕事にあるやつなので」
「Ok Google 今日の私は予想最高気温21」

Google Homeの主な使いみち

正常発話レコードを主な使いみちごとに分類した結果が以下になります。

分類 レコード数 日あたり
レコード数
備考
家電操作 4,944 13.9 照明、テレビ、PC、エアコン
標準機能 2,186 6.2 タイマー、アラーム、今何時、天気、買い物リスト、アプリ
動画 1,994 5.6 PS4、Chromecast
音楽 1,690 4.8 Google Play Music、Spotify
薬ログ 419 1.2 薬ログを参照

家電操作

一番の使いみちは圧倒的に家電操作です。
スマートスピーカー最大の利点は個人的にはこれです。

スマートスピーカーをお持ちでまだスマートホーム化していなければ是非とも導入を検討してみてください。
赤外線リモコン対応家電(照明、テレビ、エアコン)であれば簡単に対応できると思います。

Raspberry Piを使ってがっつり家電操作してみたい方はQiita過去記事を参照頂くか、先日の技術書展5で出した合同誌(スマートスピーカーを遊びたおす本)に内容をまとめていますのでご覧頂くと参考になるかと思います。

標準機能

標準機能もそれなりに使っています。
妻は毎日天気を確認していますし、料理ではタイマーもよく使っています。
買い物リストやアプリも導入当初は使っていましたが、今はあまり使っていません…

動画

動画に分類しているものは、子供向け番組の録画再生かYouTube再生になります。
PS4を含んでいますが我が家ではPS4はtorne専用機として運用しています。

子供がぐずっていときや、家事などで子供の相手をできないときにほんと助かります。
特にYouTubeはエンドレスで関連動画が再生されていき、大抵はアンパンマンのおもちゃで遊ぶ動画が繰り返されます。

音楽

うちはテレビがついていない時は常に音楽が鳴っています。
私も妻も音楽が好きなので利用頻度は高い方だと思います。
Google Home話しかけての音楽再生以外にも、PCやスマホからGoogle Homeにキャストして再生することも多いです。

現在Spotifyをメインに使っていますが、無料プランのためランダムに音楽が流れます。
これにより知らなかったアーティストから気に入った曲が見つけられたりして便利です。

ちなみに普段リビングでは3台のGoogle Homeから同時に音楽を鳴らしています。
これ音に包まれたような感じがしてオススメです。
あと休日なんかはちょっと贅沢して家中のすべてのGoogle Homeを鳴らすと、どこに行っても同じ音楽が流れていてこれまたいい感じです。

そもそも常時稼働してるスピーカーという存在が強いです。
電源をつけるのが億劫で合計10万円ぐらいなまともなアンプ&スピーカーを一切使わなくなってしまいました(いま思いましたが、音声操作で電源をつけれるようにしたらいいかも…)。

薬ログ

最後に薬ログですが、これはGoogle Homeを買って次の日に作った機能です。
Google Homeに話しかけてGoogleスプレッドシートに記録していき、ログがなければGoogle HomeとLINEから通知するというものです。

当時私は重度のヘルニアで痛み止めを服用しておりこれを飲み忘れると大変なことになっていたため、一番にこれを作りました。
その後しばらく活躍しましたが今年4月頃より症状が改善したため薬が不要になり現在は止めています。
「絶対に薬を飲み忘れられない!」という方は是非お試し下さい。

分類の内訳

参考までに分類の内訳は以下のようになります。

項目 分類 レコード数 日あたり
レコード数
備考
テレビ 家電操作 2,039 5.7  
音楽 音楽 1,690 4.8  
照明 家電操作 1,585 4.5  
時刻関連 標準機能 1,396 3.9 タイマー、アラーム、今何時
Chromecast 動画 1,130 3.2 子供向けYouTubeの再生用
PS4(torne) 動画 864 2.4 子供向け録画番組の再生用
PC 家電操作 482 1.4  
おやすみ 家電操作 439 1.2 すべての家電をオフにする
薬ログ 薬ログ 419 1.2  
エアコン 家電操作 399 1.1  
天気 標準機能 316 0.9  
音量調整 標準機能 172 0.5  
その他 標準機能 153 0.4 予定確認、経路検索等
アプリ 標準機能 78 0.2 Google Homeアプリ
買い物リスト 標準機能 71 0.2  

ちょっとしたグラフ

時間帯ごとの発話の平均をグラフにしてみました。
どの時間帯によく使っているかを可視化しています。

時間帯あたり発話数平均(月~金)
image.png
当たり前ですが忙しい時間帯によく使われています。
夫婦共働きなので昼間は有給時や祝日のものと思われます。

時間帯あたり発話数平均(土日)
image.png
一日通してわりと満遍なく使われています。
出かけていることも多いので平日に比べて量は少なめです。

JSON > CSV 変換ツール

Node.jsで動きます。
「発声しました」の文字列のあるレコードのみ出力します。
以下のように引数にログのJSONを突っ込むとassistant.csvってファイルを吐きます。

$ node index.js assistant.json

ソース

index.js
const fs = require("fs")
const logFile = require(`./${process.argv[2].replace(".json", "")}`)

const getDateTime = isotime => {
    const jsttime = new Date(isotime).toLocaleString()
    const arr = jsttime.split(" ")
    const date = arr[0].replace(/-/g, "/")
    const time = arr[1]
    return [date, time]
}

const getResponse = record => {
    let response = ""
    try {
        response = `"${record.subtitles[1].name}"`
    } catch(e) {}
    return response
}

const exportCsv = () => {
    let data = "\uFEFFdate,time,type,utterance,response\n"
    for (const record of logFile) 
        if (record.title.indexOf("発声しました") > -1)
            data += [
                getDateTime(record.time), 
                record.header, 
                record.title, 
                getResponse(record)
            ].join(",") + "\n"
    fs.writeFile("./assistant.csv", data, e => {})
}
exportCsv()

まとめ

  • ITリテラシーおばあちゃん級でも結構使ってくれる
  • Google Homeは3回に1回はよくわかってない
  • 一日あたり平均37.4回Google Homeに話しかけてる
    • 1/3は家電操作でこれがメイン
  • 標準機能もわりと使える
    • 天気、タイマー、アラーム
  • スマートなスピーカーなだけあって音楽用途に強い
    • 常時稼働してるスピーカーってだけで強い
    • Spotifyで新たなアーティスト発掘嬉しい

またデータ外の個人的な感想としては、

  • ウェイクワードは未だに慣れない
    • 「OK Google」はやっぱ長い
    • 家電操作のようにさくっと発話したい時はAlexaやClovaに浮気してしまうことも…
  • 職場でも使いたい
    • 今の職場はとても使える環境じゃない(というかWi-Fiがない)
    • 会議のアラームとかスマホでいちいち設定してるけど、スケジューラ眺めながら音声でさくっと登録したい

以上、みなさまもGoogle Homeと暮らした1年をログから振り返ってみてはいかがでしょうか。