Rasberry Piを使わずにGoogle HomeにしゃべらせるAndroidアプリを作りたい

着想

「ねぇGoogle、今何している時間?」と聞くと「今は~してる時間です」と答えてくれるアプリを作りたい。目的は、子供の朝支度や夜のルーチンを促すため。

方向性

dialogflowを使えばできるっぽいが、「~につないで」と言わなくてはいけないっぽい。これはめんどくさい。
しかも以外に作るのが大変そうである。

であれば、スマホで入力したテキストをGoogle Homeにしゃべらせるのはどうだ??google home notifierを使わなければいけないので、Rasberry Piがいるのか??しかし持ってない。

qiita.com
を見る限り、Rasberry PiがなくてもAndroidのみで実装できそうな気がする。
スマホで入力したテキストをGoogle Homeにしゃべらせる、とういシンプルなアプリをつくってみたい。

問題は、AndroidをWebサーバにしないといけないところ。しかしこんな素晴らしい記事が。
Android内にHttpサーバを立てて、ChromeCastでローカルファイルを再生する - Qiita

実装

大まかな処理の流れは、

  1. テキストボックスに文字列を入力し、ボタンを押す
  2. テキストボックスの内容をText to Speechで音声ファイルにする
  3. 前のステップで作った音声ファイルをGoogle HomeにCastする

という感じか。

調べてみたところ最後のステップが難しそうである。音声ファイルをMediaMetadataCompatという形式で渡してやらないといけないようだ。

さらに調べてみたところ、以下の記事を参考にすればできそうな気がしている。
blog.livedoor.jp

方向転換

とここまで考えたところで、Bluetoothでよくね?という気がしてきた。
akira-watson.com

完全にこの記事のアプリでいいのでは、、
Google Homeには先にBluetooth接続しておいて、文字列を入力した文字をTTSで音声に変換すれば、Google Homeがしゃべっているっぽくなるはずである。
やってみたところ、問題なくアプリから入力した文字列をGoogle Homeにしゃべらせることができた。
子供の反応は未検証。