twitterのタイムラインを読み上げる、saykanjiプラグインを書いてみた
saykanjiコマンドがおもしろそうだったので、termtterのsayプラグインを下敷きに、saykanjiプラグインとして仕立ててみました。
とりあえず、Mac OS Xにのみ対応していますが、ちょっと手をいれれば、他のOSへの対応もできそうな気もします。
下準備
SayKanaコマンドとMeCabが必要です。
SayKanaはzipアーカイブをダウンロードして展開、pkgファイルからインストールしてください。
MeCabはソースからインストールする場合はMecabのサイトを参考に、MacPorts経由でのインストールは、以下のような感じでいけると思います。
% sudo port install mecab +utf8
いずれの場合も、UTF-8をあつかえるようにインストールしてください。
使い方、設定など
とりあえず、"~/.termtter/config"で"t.plug 'saykanji'"すれば、タイムラインを読み上げてくれると思います。
### 設定例 # 読み上げスピード。値が大きいほど、スピードが速くなります。 # 100が標準で、50から300までの値をとれます。 config.plugins.saykanji.say_speed = '200' # 指定したユーザを読み上げます。 config.plugins.saykanji.user_to_say = ['p2pquake', 'jihou'] # キーワードを含む投稿を読み上げます。 config.plugins.saykanji.keyword_to_say = ['地震', /^@user_name/] # ユーザ名、キーワードをいずれも設定しなかった場合、すべての投稿を読み上げます。
英語の読み上げ
SayKanaは、英語の読み上げができません。ですから、以下のような形式の辞書を用意することで、対応します。
"あっと","@" "ついったー","twitter" "たんぶらー","tumblr" "ふりっかー","flickr"
辞書は"~/.termtter/tmp/"の中に、"kana_english_dict.csv"という名前で保存してください。文字コードはUTF-8です。
NADの部屋2。にて配布されている、NADのカタカナ英語辞書10.6に同梱されている、「NADのカタカナ語10.6.txt」を流用することもできます(参考:バイリンガルなsaykanjiにしておく - ザリガニが見ていた...。)。その際は、文字コードをUTF-8に変換することを忘れないでください。
英語の読み上げは単語単位ですので、
"ついったったー","twitter user"
などとしても、読み上げてはくれません。
また、ポスト中のユーザIDなども読み上げることができます。たとえば"@yamadaichirou"さんのIDを読み上げるなら
"やまだいちろう","yamadaichirou"
などとします(@は含めないでください)。
ただし、"@yamada_ichirou"さんのように、IDに_(アンダーバー)を含む場合、その部分は単語の区切りと認識されてしまうので
"やまだ","yamada" "いちろう","ichirou"
というような形で、対応してください。
感想
漢字の読み違いなどはあるものの、思っていた以上にちゃんと読んでくれるので、楽しいですね。
とはいえ、のべつまくなしに喋らせるとちょっとうるさいので、実用性を考えるなら、アラート的な使い方がよいでしょうか。
どうでもいいことですが、ぼくがはじめてタイムラインの読み上げをさせたとき、いきなり「ちんちんがいたい」なんてしゃべりはじめて、どうしてくれようかと思いました。twitterは、おそろしいところです。
MeCabについては、Rubyバインディングが用意されているので、そちらを使うのが本当かもしれません。でも、ちょっと面倒そうだったのと、よみがなを得るためだけにそこまでしなくても、ということで今回は使いませんでした。