« Googleには検索できない文が設定されている | main | muxtape + InFullVolume »

muxtapeに音声botを作った

http://kyoujin.muxtape.com/

全く何言ってんのかわかりませんがたまに'きほーんーてーきー'とか'そウCてーもぅUだーCta-'とか言い出して吹きます。
ソースは以下。

#!/usr/bin/perl

use strict;
use LWP::Simple;
use XML::RSS;
use Lingua::JA::Romanize::Japanese;
use Data::Dumper;
use Date::Simple;
use WWW::Mechanize;


sub reduce_candidate{
my $str = shift;
my @words = split / /, $str;
my @_words;
for my $word (@words){
if($word =~ /^(.+?)\//){
push(@_words, $1);
}else{
push(@_words, $word);
}
}
return join ' ', @_words;
}

# get kyoujin speech from rss
my $xml = new XML::RSS;
my $conv = Lingua::JA::Romanize::Japanese->new();
my @results;
$xml->parse(get('http://twitter.com/statuses/user_timeline/5932892.rss'));
for my $item ( @{$xml->{'items'}}){
my $content = $item->{'title'};
$content =~ s/^kyoujin: //g;
$content = $conv->chars($content);
$content = reduce_candidate($content);
$content =~ s/[^\w ]//g;
push(@results, $content);
}
my $result = join '. ', @results;

# make mp3
my $path = '/Users/po/test/kyoujin-muxtape/';
my $aiff_file = $path . 'test.aiff';
my ($y, $m, $d) = Date::Simple->today->as_ymd;
my $mp3_file = $path . "$y-$m-$d.mp3";
`say -v Alex -o $aiff_file $result`;
`ffmpeg -i $aiff_file -title '$y-$m-$d' -author 'kyoujin' $mp3_file`;

# post to muxtape
my $agent = new WWW::Mechanize;
$agent->agent_alias('Windows Mozilla');
$agent->post('http://muxtape.com/login',
{
name => '',
pass => ''
}
);
$agent->get('http://muxtape.com/upload');
$agent->submit_form(
form_number => 1,
fields => {
file => $mp3_file
}
);

@kyoujinのRSSをLingua::JA::Romanize::Japaneseでローマ字にした後sayコマンドでaiff生成し、ffmpegでmp3に変換し、mechanizeでpostって感じです。このままだとマジ聞き取れないのでなんとかなんないかなー。 なんとなくuse encoding 'utf-8';とか書いてたらmechanize内のmp3 postの所で500 wide character in syswriteが出まくりました。

トラックバック

このエントリーのトラックバックURL:
http://polog.org/mt-tb.cgi/415

コメント (5)

おまえが「あいうえお」全部吹き込めよ。
そっちのがききたい。
もしくはヘボン式ローマ字を使うんじゃなくて、日本語に聞き取りやすい単語に置き換えるスクリプトを作るとか?

>おまえが「あいうえお」全部吹き込めよ。
>そっちのがききたい。
クソ笑った それ面白いわ
ニコニコ動画ベースにwavの50音セットを放り込むとオレオレボーカロイド作れるツール作ってる人とかいるしね。windowsのツールだけど

>もしくはヘボン式ローマ字を使うんじゃなくて、日本語に聞き取りやすい単語に置き換えるスクリプトを作るとか?
これも考えてちょっと検索したんだけど、データ公開してる人いなかったんだよね
自分で組むのは面倒だよー

うあ、投稿上限12曲のこと考えてなかった

http://d.hatena.ne.jp/hitode909/20080124/1201144244
Rubyのソースもある。

上限12曲ってなんだ?

おおthx。さすが。

12曲はmuxtapeってサービスに投稿できる曲数の上限。

コメントを投稿

Powered by
Movable Type 3.34