8
11

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とText-to-Speechで一斉放送システムを作ってみた

Posted at

はじめに

自宅にいても変化に気づかないことが結構あります。たまたま二階に居たので気づかなかった、寝ていたから気づかなかった、とかよくある話です。
そんな気づき漏れをGoogle Homeでなくそう、というのが今回の目的です。
年老いた母のために考えてみました。

実現方法

  • 自宅の要所要所にGoogle Homeを設置します。その後Google Homeアプリでグループ設定します。

  • 母艦にラズパイを利用します。それにPython版google-home-notifierをインストールすると、Google Homeのグループに対して一斉放送することができます。Python版google-home-notifierはWebhookを実装しているので、httpで喋らせたい文章を引き渡せば、Text-to-Speech機能を介して、Google Homeに一斉放送することができます。

  • Google Homeに一斉放送させたいIoTデバイス側では、httpで喋らせたい文章を引き渡します。

  • 特に外部サービスを利用しないで仕組みは簡単です。

参考:

お知らせ例

  • ドア・チャイムがなったらお知らせする(来客、宅急便など)。
  • ポストに投函されたらお知らせする(郵便、回覧板など)。
  • 電話が鳴ったら相手の名前をお知らせする。
  • 洗濯が終わったらお知らせする。
  • お風呂が沸いたらお知らせする。
  • 電子レンジの温めが終わったらお知らせする。

デバイス側の実行例

インストール方法(スマホ)

####スマホでGoogle Homeアプリを起動し、グループ設定します

詳しい設定方法は省略しますが、google-home-notifier-pythonは個々のデバイスもしくはグループに対して、喋らせたりmp3再生できます。
下記例ではデバイス「ベッドルーム」と「リビング」が登録されていて、その2台を「ホームグループ」としてグループ登録しています。
今回は「ホームグループ」に対して通知します。

インストール方法(ラズパイ)

####動作環境を確認します

$ lsb_release -a
No LSB modules are available.
Distributor ID:	Raspbian
Description:	Raspbian GNU/Linux 9.6 (stretch)
Release:	9.6
Codename:	stretch

$ python3 -V
Python 3.5.3

####gitをインストールします

$ cd
$ sudo apt-get update
$ sudo apt-get install git

####google-home-notifier-pythonをインストールします

ここにあります。

$ git clone https://github.com/harperreed/google-home-notifier-python.git
$ cd google-home-notifier-python
$ pip3 install -r requirements.txt

####google-home-notifier-pythonの設定をします

通知先を「ホームグループ」に設定します。

$ cp -p main.py  main.py.org
$ vi main.py

(変更)

main.py
#chromecast_name = "Home group" #edit me to be your google home group
chromecast_name = "ホームグループ"

google-home-notifier-pythonを絶対パスで起動するとエラーになるので、相対パスで実行するようスクリプトgoogle-home-notifier.shを作成します。

$ vi google-home-notifier.sh
google-home-notifier.sh
#!/bin/sh

cd /home/pi/google-home-notifier-python
/usr/bin/python3 ./main.py
$ chmod a+x google-home-notifier.sh

####SupervisorでOS起動時にgoogle-home-notifier-pythonを自動実行するようにします

Python3でSupervisorを動かしてみた、ラズパイでねを参考にSupervisorをインストールします。

その後SupervisorでOS起動時にgoogle-home-notifier-pythonを自動実行するようにします。

$ sudo vi /etc/supervisor/conf.d/google-home-notifier.conf
/etc/supervisor/conf.d/google-home-notifier.conf
[program:google-home-notifier]
command=/bin/bash /home/pi/google-home-notifier-python/google-home-notifier.sh
numprocs=1
autostart=true
user=pi

OSを再起動します。

$ sudo reboot

動作確認します

インストールしたラズパイのIPアドレスが192.168.3.230の場合です。ブラウザからURL指定します。
OS起動後、google-home-notifier-pythonが立ち上がるまで少し時間がかかります。一度使えるようになると即座に処理されます。

:one:ディレクトリgoogle-home-notifier-python/staticにあるmp3ファイルを再生します。

:two:指定した文章を喋ります。ディレクトリgoogle-home-notifier-python/static/cacheにmp3ファイルがキャッシュされます。

ディレクトリ構造は下記のとおりです。

$ cd
$ cd google-home-notifier-python/static
$ ls
JR.mp3  cache  doorbell1.mp3
$ cd cache
$ ls 
こんにちは-ja-false.mp3  今日は良い天気ですね-ja-false.mp3
こんばんは-ja-false.mp3

おわりに

スマートスピーカは便利ですね(=^・^=)

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?