May 30, 2011
最近読んだ本:Perl CPANモジュールガイド

先週、YouTube で Perl関係の動画をつらつら眺めていたら、こんな動画を見つけました。
この動画を観てなんとなく勢いで購入してしまいましたけども、ここで紹介されている Perl CPANモジュールガイドは、最近の定番モジュールの解説書です。最近の Perl について書かれた本だと、少し前にモダンPerl入門という本がありました。このモダンPerl入門、内容はとても充実している良書なのですが、とてもイキナリ初心者に読ませるような本ではありません。今までこの Perl CPANモジュールガイドのように、最近の Perl について書かれた初心者向けの本は無かったので貴重なんじゃないでしょうか?動画では cpanm について言及されていますけども、cpanm だけじゃなく perlbrew の解説もあります。きちんとこの二つのツールの解説があるのは、今から Perl本体や CPANモジュール をインストールして学ぶ方に大きな助けになると思います。この本は、初めてのPerl 第5版や続・初めてのPerl 改訂版の副読本にちょうど良いんじゃないでしょうか?
しかし、読んでると自分がいかに CAPN の便利なモジュールを使いこなしていないのかが分かって本当にヘコみます。
May 29, 2011
Open JTalk の Mei (Normal)用コマンドオプションを変更
以前ぽち*ぷ〜ちの Open JTalk で音声合成して日本語テキスト読み上げに debian squeeze で Open JTalk を導入して音声合成をする方法を書いていましたけども、HTSボイスに Mei (Normal) を使った場合だとコマンドオプションが良くなくてあまり綺麗な声には出来ませんでした。ところが以前ニコニコ動画にアップした Open JTalk音声合成動画のコメントで、Mei (Normal) がもっとずっと綺麗な声になるオプション例を公開している、
というサイトを教えていただきました。早速そのオプションを取り入れて音声合成してみた結果がこちらです。
まだまだ Open JTalk のデモサイトの調整には及びませんけども、ちょっとびっくりするくらいに綺麗になりました。
May 12, 2011
指輪物語を読み返してみた



なんとなく思い立って十数年前に図書館で読んだ指輪物語を読み返してみる気になり、評論社の文庫版を買って読み始めてしまいました。



以前読んだ時からお気に入りキャラはトム・ボンバディルとボロミアです。トムの老荘の隠君子じみた自由闊達なところや、ボロミアの率直で人間臭いところを読むと、やっぱりこの二人はとっても大好き。映画ではトムの登場するストーリーが丸ごとごっそり割愛されていたり、ボロミアがニコニコ動画の MikuMikuDance動画でネタキャラとして扱われてるのがとっても悔しくてなりません。誰ですか、好みの振れ幅が両極端に開き過ぎてるなんて言ってるのは[犬]ω<#)ノ!?



まだ読み返し始めてようやく半分ぐらいなのですけども、本文中の旅歩きの描写で、普段インドアなぽちも山歩きとか徒歩の旅に出たくなってしまいました。煙草が大嫌いなぽちがジッポライター必要かな?とか、ツールナイフは便利そうかな?とか、コンパスも欲しいね?とか、アウトドア用品を物色しているなんて異常事態が起きていたり…。と、最近はこんな有様なので、SDL Perl でのゲーム作りや、ぽちたて作りは完全に停滞しています。
May 06, 2011
Perl で素因数分解
先日、ニコニコ生放送で C や Lua などのプログラミング言語を使ってプロジェクト・オイラーの問題を解くのを配信している初心者の方がいました。三問目で躓いて悩んでらっしゃったのを観て、うっかり触発されて、その問題を Perl で解いてみようかな?なんて気になってしまいました。
The prime factors of 13195 are 5, 7, 13 and 29. What is the largest prime factor of the number 600851475143 ?
これは、600851475143 の素因数のうちの最大数を求める問題です。
下のコードは、600851475143 を小さい順に 2 から 600851475143 の平方根以下までの範囲の整数で割っていって、割り切れたら再帰的にまたその商を同じ手順でひたすらどんどん割り続け、最後に割り切れた商を最大の素因数として表示します。
#!/usr/bin/perl
use strict;
use warnings;
print &largest_prime_factor( 600851475143 ), "\n";
sub largest_prime_factor {
my $n = shift;
for ( my $i = 2; $i <= int sqrt $n; $i++ ) {
return &largest_prime_factor( $n / $i ) if $n % $i == 0;
}
return $n;
}
その後、素因数分解のアルゴリズムを調べてみたら、もっとスマートな方法がたくさんあるようです。正規表現のパターンマッチを使って素因数分解しちゃうという、いかにも Perl ならではの方法まであったり…。
May 03, 2011
ぽちたて 0.1.5 をリリースしました

ファイルタイプの判別に File::MMagic を使うようにした、ぽちたて 0.1.5 をリリースしました。
バージョンアップするほどの変更ではないかもしれませんが、とりあえず 0.1.4 よりは安全性は高くなった気がします。
May 01, 2011
日本語テキスト音声合成システム Open JTalk
今までぽちたてを作ってみたりしてテキスト縦書きビューワーにばかり関心を持っていましたけども、最近は音声合成での日本語テキスト読み上げにも興味が出て来ました。Linux で使えて日本語で音声合成が出来るものには、
があるようです。
AquesTalk や AquesTalk2 は、その音声ライブラリが、ゆっくり声の SofTalk の内部で使われているので有名なのですが、プロプライエタリなものなので無償利用可能な評価版には「ナ行、マ行」の音韻がすべて「ヌ」になる制限があるから使えません。一方、オープンソースな Galatea Talk は、最新リリース情報を見ると開発が二年以上停滞しているようです。そこで同じオープンソースなもので、比較的活発に開発され、MMDAgent などにも組み込まれている Open JTalk を試してみる事にしました。
の記事を参考に、無事に debian squeeze でもビルド出来ました。あまり期待していなかったせいか、予想よりも良い感じに日本語テキストを読み上げてくれます。配布されている作成済みのボイスデータは男声だけですけども、女声のボイスデータが必要なら、同じ Open JTalk を使っている MMDAgent の Sample Script に含まれている、メイのボイスデータが流用出来ます。
2011年 5月 3日追記:ぽち*ぷ〜ちの Open JTalk で音声合成して日本語テキスト読み上げに debian squeeze で Open JTalk を導入する方法を書きました。
2011年 5月 4日追記: