2013年10月30日水曜日

RasPiに緊急地震速報を報告させてみました

連続稼働に向けてラックに吊り下げたRaspberryPiですが、こいつに緊急地震速報を報告させてみました。
Pythonのスクリプトとして作ったのですが、処理としては以下のような感じです。表示および音声合成は別スクリプト&別スレッドにすることで、表示処理と音声読上げを同時に起動し、遅れをなるべく少なくするようにしています。

1.RaspberryPiでEEWBOTを監視し、地震速報を取得する

Twitterのアカウントでeewbotというbotアカウントを運営している方がいて、実験的に高度利用者向けの緊急地震速報をcsvで配信されています。
こちらのtweetをストリーミングAPIで受けとります。

2.受信した内容をデコードします。

デコードと言っても、都合のいいように表示用と読上げ用のテキストを生成するだけです。

3.USB接続のLCDに表示させます

生成したテキストをUSB接続のLCDに表示させます。

4.スピーカに音声出力します

RaspberryPiに接続したスピーカに合成音声で出力します。音声合成にはAquesTalk Piを使っています。いわゆる「ゆっくり声」で読み上げます。(笑)
(注:AquestTalk Piは商用利用では有償なので、真似する人はご注意を)
いまのところ、RaspberryPiのスピーカ端子にダイソーの100円スピーカ(ケーブルなし)を挿しているので、音量が小さくて静かな状況でないと聞き取れません。なるべくシンプルかつ小さくアンプを仕込む方法を考えています。

5.動かしてみて

遠めの地震だと地震速報の読上げ&表示後に揺れがきます。比較的近くだと揺れが先か同時くらいですが。音声だけだと読み取れなくても同じ内容がLCDをみれば表示されているので、読上げ完了を待たなくても内容がわかりますし、聞き取れなくてもやはり内容はわかりますので、結構便利です。
ちなみに、日本気象協会の地震情報(tenkijp_jishin)もフォローしていて、その内容もそのまま表示&読上げをしています。こちらは緊急地震速報が落ち着いてしばらくしてからTweetされます。

6.メモ

以降は自分用のメモです。
動かすの使った追加パッケージは以下のとおり。
$ sudo apt-get install python-gd
$ sudo apt-get install ttf-kochi-gothic-naga10 ttf-kochi-mincho-naga10
$ sudo pip install pyserial
「TweetToVoiceLCD.py」を走らせれば動作開始。

0 件のコメント: