2009年05月22日 20:30 [Edit]
perl - SayKanji + Yahoo API = itte.pl
以下、ソース。
#!/usr/local/bin/perl # # $Id: itte.pl,v 0.1 2009/05/22 10:12:26 dankogai Exp dankogai $ # use strict; use warnings; use URI; use LWP::Simple; use XML::Simple; my $appid = 'your.api'; # customize here my $apiroot = 'http://jlp.yahooapis.jp/FuriganaService/V1/furigana'; sub yomi { my $str = shift; my $uri = URI->new($apiroot); $uri->query_form( appid => $appid, sentence => $str, ); return unless my $res = get($uri); my $word = XMLin($res)->{Result}{WordList}{Word}; # use Data::Dumper; # print Dumper $word; map { $_->{Furigana} || $_->{Surface} } grep { !ref $_->{Surface} } (ref $word eq 'ARRAY' ? @$word : $word); } my $str = @ARGV > 1 && $ARGV[-2] eq '-f' ? do{ local $/; my ($f, $fn) = splice @ARGV, -2; open my $fh, '<', $fn or die "$fn:$!"; my $s = <$fh>; close $fh; $s; } : pop @ARGV; for my $word ( yomi($str) ) { # warn $word; my $say = $word =~ /\A[\d\x{80}-\x{10ffff}]+\z/ ? 'SayKana' : 'say'; system $say, @ARGV, $word; }
一番の違いは、形態素解析にMeCabではなくYahoo!デベロッパーネットワーク - テキスト解析 - ルビ振りを使っていることと、アルファベット部分は英語で読み上げること。前者のおかげで「小飼弾」もちゃんと読んでくれる。後者は音声が変わっちゃうのだけど、それがかえって面白い。
Enjoy!
Dan the Perl Monger
Posted by dankogai at 20:30│Comments(0)│TrackBack(1)
この記事へのトラックバックURL
この記事へのソーシャルブックマーク
この記事へのトラックバック
MacOS Xには英語版Text To Speachを行うsayコマンドが搭載されています。これを使っても、疑似日本語を喋らせる事が可能なのですが、もっとちゃんと日本語として喋る日本語Text To Speachが「SayKana」です。
結構優れているなと思ったのは、アクセントだけじゃなくて数字...
SayKana【わだつみ】at 2009年05月23日 17:17

