Googleニュース等のヘッドラインをMacに読み上げさせるやつ作った。最終的にMac以外でも動くようになった。



新聞の勧誘を「インターネットでニュース見てますので」と言って断ってるんだけどよく考えたら見てなかったから、新聞の人に申し訳なくて作った。
自分でインターネットにニュース見に行くの面倒くさいし、テレビとかラジオつけると余計な番組やっててウルサイからニュースだけ届けてほしい。

というわけで3ヶ月ぐらい前に作って、そこそこ良くてずっと使ってるから書いておく。


■使い方
詳細は上のgithubのREADMEを見るとよい。


面倒だったら
git clone git://github.com/shokai/speech-news.git
cd speech-news
gem install bundler
bundle install --path vendor/bundle
でインストールできて


読み上げる。
ruby -Ku speech_news.rb --help
ruby -Ku speech_news.rb

Mac/Linuxに喋らせるで書いた、MacのsayコマンドのKyoko化(日本語化)をやっておく必要あり。



■毎日決まった時間に読み上げる
crontab -e して
0 7 * * *  cd /Users/sho/src/ruby/speech-news && ruby -Ku speech_news.rb > /dev/null 2>&1
0 12 * * * cd /Users/sho/src/ruby/speech-news && ruby -Ku speech_news.rb > /dev/null 2>&1
0 19 * * * cd /Users/sho/src/ruby/speech-news && ruby -Ku speech_news.rb > /dev/null 2>&1
こう書いておくと、7時/12時/19時にニュース読んでくれる。朝はおはようって言うし夜はこんばんはって言う。
ちゃんと書けてるかは crontab -l で確認。


■Mac以外でも読み上げる
Mac/Linuxに喋らせるに書いたGoogle翻訳の声を使うgsayコマンドも一緒に入れておいた。
-sayオプションでgsayを使うようにすれば、Mac以外でも読んでくれる。声怖いけど。
ruby -Ku speech_news.rb -say "tools/gsay"


■Googleニュース以外も読み上げたい
pluginsディレクトリの中に.rbファイルを置けばニュースソースとして自動的に読み込むようになってる。
プラグインは読み上げるべき文字列を配列で返してくれるRubyプログラムならなんでも良い。
今はgoogle.rbだけが置いてある。


自分でプラグインを書くならgoogle.rbを参考にするとか、
a.rb
# プラグインのテストです
return ['うぽって微妙に古そうな銃ばかりでてくるし',
'あれは使われなくなった銃の行き着く精神世界なのでは',
'飛行機の墓場みたいな']
のような感じで、とりあえずStringのArrayを返すやつ書いてみると動く。