Archive for December, 2009

MacでTwitterのタイムラインを読み上げさせる

Tuesday, December 22nd, 2009

Twitterは便利で楽しいものですが、タイムライン(TL)を追うのはなかなか大変です。
TLはすべて追えなくても気にするべきではない、とはよく言われるものの、他の作業をしていてもTLが気になったり…

そこで、他の作業をしながらTLも追いかけられるように、Macで自分のTLを読み上げる仕組みを作ってみました。


こんな感じで読み上げられます。
動画では写していませんがGrowlを準備しておけばつぶやきも表示されます。

以下、今回作成した仕組みの詳細です。
Perlやコマンドラインは使いますが、おそらく1時間-2時間で構築できると思いますので、よろしければ試してみてください。
質問、コメント等は @naokisatoname まで。

(more…)

Macで日本語を読み上げるSayKana

Thursday, December 17th, 2009

ニコニコ動画でお馴染みのゆっくりさん。
あの仕組みは、一般的にはSofTalkというWindows用のフリーウェアを利用するのが一般的らしい。

では、Macで同じようなことはできないか、というと、SayKanaというフリーウェアを使えば可能である。
実際、SofTalkでも、SayKanaを提供しているAQUESTさんがWindows用に配布しているAquesTalkというフリーウェアを利用しているので、音声のエンジンはほとんど変わらない。

SayKanaのインストールは、.dmgにインストーラが付属しているので、それを実行するだけで良い (因みに、インストーラで行っているのは SayKana という実行ファイルを /usr/local/bin に移しているだけ)。

プログラムの実行は、コマンドラインから SayKana "文字列" の形式で実行する。

SayKana "こんにちは"

その他のオプションや音声記号列の仕様は公式HPを参照の事。

なお、SayKanaへ渡す引数はUTF-8である必要があるので、Windowsで作成した.txtファイルを読み上げる場合等はnkfで変換した方が良い。

sudo port install nkf
nkf -w hoge.txt | SayKana -f -

また、SayKanaは漢字や記号を認識しないため、実際に使用する際は kakasi を用いて漢字からひらがなに変換しておくなどする。
kakasiに渡す引数はEUC-JPにした方が良いらしい。

sudo port install kakasi
nkf -e hoge.txt | kakasi -w | kakasi -JH | nkf -w | SayKana -f -

因みに、SayKanaにアルファベットを渡すとアルファベットを棒読みするだけなので、その場合はMac標準の読み上げプログラムである say を使った方が良い。

say "Hello"

PerlからTwitterを簡単に利用するNet::Twitter

Thursday, December 17th, 2009

TwitterはAPIが公開されているので容易にそのデータを利用することができるが、PerlからTwitterにログインしてTL等の情報を利用するにはNet::Twitterモジュールを活用すると良い。

インストールはCPANから可能。

sudo perl -MCPAN -e shell
install Net::Twitter

Snow Leopardの環境では、比較的時間はかかったものの、正常にインストールすることができた。

実際にPerlで利用するには、以下の様にコーディングする。

my $twitter = Net::Twitter->new (
username => "username", #ユーザ名
password => "password" #パスワード
)

my $ref = $twitter->friends_timeline();

この様にすると、$refに自分のTLの情報が格納される。
格納されたTLの情報から、以下の様にしてユーザの名前やつぶやきの内容を取得できる。

$ref->{'user'}{'name'}; #ユーザの名前
$ref->{'text'}; #つぶやきの内容