Google Homeに自動で声を聞かせてradikoを再生する

IoT/自動化
スポンサーリンク
Google HomeとMESHを使って、朝起きたらradikoを自動再生する仕組みを無理やり作りました。

 
スポンサーリンク

radikoを自動再生したい

ラジオを自動再生させたいと思ったんだけど、わが家にはラジオの機械が無い。

 
ラジオを再生できるのは、まずはiOSのradikoアプリ。
 
しかしiPhoneのradikoアプリはiPhoneの仕様により自動起動することができないので却下。

 
もうひとつはGoogle Home。

Google Homeでは標準でradikoを再生できる。

わが家にはGoogle Home Miniを置いていて、最近はもっぱらこちらのradikoでラジオを聴いている。

 
そして自動化といえばIFTTT。

しかしGoogle Home(Assistant)はIFTTTに対応してはいるが、使えるのはトリガーのみで、アクション(「〇〇したらGoogle Assistantに△△させる」)には対応していない。

今のところ、Google Homeにコマンドを送るには声でコマンドを喋る以外にはない。

 
一方、Google Assistantにコマンドを送る方法としてはGoogle Assistantアプリもある。
 
しかしこちらはあくまでもクラウドのGoogle Assistantにコマンドを入力するもので、デバイスとしてのGoogle Homeにコマンドを送るわけではない。

実際にGoogle Assistantアプリにコマンド(声でもテキストでも)を入力すると、このような返事が返ってくる。

Googleアシスタントスクリーンショット

 
スポンサーリンク

Google Homeでradikoを自動再生する

仕方ないので、力業(ちからわざ)で自動再生させることにした。

コマンドをしゃべる声を音声ファイルとして再生して、Google Homeに聞かせることにした。

 
やりたいこと

朝起きたらradikoでラジオ(FM802)を自動で再生する。

目覚ましとして鳴らすのではなく、起きた後で再生するようにする。

起きたことは、iPhoneアプリ「Sleep Meister」の起床ツイートにつけたハッシュタグで認識。

 
 
関連記事
「1日1ノート」のEvernoteライフログ、新しいノートの自動作成はこのタイミングで! – ハミングスタジオブログ

冬の二度寝防止のためにたどり着いた方法は、いたってシンプルだった – ハミングスタジオブログ

 

音声ファイル作成

声でしか起動できないのなら、声を録音すればいい。

とはいえ、録音した自分の声が毎朝再生されるのはさすがに恥ずかしいので、音声合成のサービスを使うことにする。

 
Sound of Text

Google翻訳の合成音声を音声ファイルとしてダウンロードできるこちらのサービスを使って、音声コマンドを作成した。

Sound of Textスクリーンショット

普通に「OK, Google、ラジオをつけて」と入力すると発音がおかしかったので、このように入力した。

「。」(句点)や「ぇ」を入れると語尾の音がはっきりした(気がする)。

「Google」と「ラジオ」の間に間が空かずGoogle Homeがうまく認識しなかったので、「っ」(促音)を間に入れることで間(ま)を作ることができた。

「っ」の数によって間の長さが変わるようだ。

 
なお、通常Google Homeでradikoを再生するには「radikoで(局名)を再生」のように言わないといけない。

事前にGoogle Assistantアプリのルーティンで、「ラジオをつけて」と言うと「radikoでFM802をつけて」と言うのと同じになるように設定している。

最初は「802(はちまるに)」と言わせようとしたが、「802」と入力すると「はっぴゃくに」と認識するし、「はちまるに」と入力しても発音が変になるのでこのようにした。

Googleアシスタントルーティンスクリーンショット

 
こうしてできた音声ファイルをiTunesに入れて、MESHアプリを入れているデバイスと同期する。

これでファイルの準備はOK。

 

IFTTTとMESH

実行部分はIFTTTとMESHを使って組む。

 
まずはIFTTT。
 
Sleep Meisterの起床ツイートに「#GoodMorning」というハッシュタグを入れているので、これの検知をトリガーとする。
トリガーをTwitter > New tweet by you with hashtagにして、ハッシュタグに「#GoodMorning」を入力。

アクションをMESH > Send an event to MESH appにして、EventIDに適当なIDを入力。

ここでは「wakeuptune」にした。
IFTTTアプレットスクリーンショット

 
これでIFTTTの方は完成。

 
つづいてMESH。
 
IFTTTタグを置いて、「受信したら」を選択、イベントIDに先ほどIFTTTで設定したIDを入力。

MESH IFTTTタグスクリーンショット

 
つづいてミュージックタグを追加。

「再生する」を選択して、プレイリストに音声ファイルを追加。

動作は「再生/一時停止」。

MESH ミュージックタグスクリーンショット

 
これをIFTTTタグと接続して完成。

MESHレシピスクリーンショット

 
最初はウェイクワードとコマンドを別の音声ファイルにして、後々ウェイクワードのファイルを使いまわせるようにしようと思っていた。
しかし、ここでミュージックタグを後ろに追加してコマンドの音声ファイルを置くと、再生時にウェイクワードの方の音声が途切れてうまく再生されなかったので、結局ひとまとめにした音声ファイルにした。
 
わが家ではこのようにMESHアプリの入ったiPadとGoogle Home Miniが近い位置に配置されているので、通常音量でじゅうぶん認識される。

iPadとGoogle Home Mini

 

完成

これで、朝起きてSleep Meisterのアラームを止めると音声ファイルが再生されて、それを聞いたGoogle Homeがradikoを再生してくれた。
ベッドの中で音声ファイルが流れるのを聞くのはちょっとアレだけど。

 
ここでは合成音声を使用しているので、Google AssistantでVoice Matchを使用して自分の声を認識させているとうまく動作しないと思う。

その時は自分の声を録音しましょう。

 
それにしてもかなり強引なやり方。

IFTTTでGoogle Homeにコマンドを入力できるようになったらスマートに解決するのになー。

 
 
2021.01.17追記
Google Homeにテキストでコマンドを入力する方法、iOSショートカットを使って実現できました。

iOSショートカットでGoogleアシスタントを賢く使えば自動化の幅が広がる | ハミングスタジオブログ

 
 
 
 
IoT/自動化
この記事が役に立った/気に入ったら
ぜひ「いいね!」してください!
最新情報をお届けします。
はらだよしのりをフォローする
スポンサーリンク
ハミングスタジオブログ
タイトルとURLをコピーしました