ラベル 垰瀬内 の投稿を表示しています。 すべての投稿を表示
ラベル 垰瀬内 の投稿を表示しています。 すべての投稿を表示

2014/11/26

「炉心融解」を駅名だけで歌わせてみてる(3)

色々とあれですが、とりあえず最後まで出来ました。

#動画はオリジナルのものをお借りしています。
http://www.nicovideo.jp/watch/sm8089993




「炉心融解」を駅名だけで歌わせてみてる(1) では、Aviutlを使って全部手動で入力し、
「炉心融解」を駅名だけで歌わせてみてる(2) では、Cevioのデータを解析して動画を自動生成するというアプローチで進めてみました。

今回は、Cevioのデータを解析する代わりに、
歌声のwavファイルを解析することで、どのタイミングでどの歌詞を歌っているかを推定することで、
動画を自動生成するアプローチを取ってみました。
で、一応最後まで通してみました。

現状の実装では
・歌声のwavファイル
・歌詞がひらがなで書かれたファイル
・駅名と路線リスト
の3つを入力すると、4,5個のスクリプトを経由して
AviSynthのファイルが生成されます。
ちなみにAviSynthのファイルは「つんでれんこ」にそのまま投げられます。

精度で言うと、
自動推定なので、割とミスってる場所も見られます。
わかりやすい所で言うと、ロングトーン前後と最後がかなりひどいことになっています。

とはいうものの、(恐らく)人手やると手間がかかる、
歌詞が多い箇所は比較的うまく行っているようです。

Cevioを対象にするなら、Cevioのファイルそのものを解析したほうが正確なのですが、
今回のアプローチは音声を対象にするので、
人が歌った歌声等にもそのまま適用できるのがおいしいところです。

なんにしても、駅名炉心融解ももうちょいで完成しそうです。
今回作ったツールをまとめつつ、次のネタを考えたいところですね。

-----これまで
「炉心融解」を駅名だけで歌わせてみてる(2) 
「炉心融解」を駅名だけで歌わせてみてる(1) 
【垰瀬内なら】駅名替え歌を自動生成する(3) 【自動で作る】 
【垰瀬内なら】駅名替え歌を自動生成する(2) 【自動で作る】
【垰瀬内なら】駅名替え歌を自動生成する(1) 【自動で作る】

2014/11/20

「炉心融解」を駅名だけで歌わせてみてる(2)

とりあえず、できたところまで。
#動画はオリジナルのものをお借りしています。
http://www.nicovideo.jp/watch/sm8089993



AviSynthというソフトを使うと、スクリプトで字幕を入れられるようなのでテスト中。

どのタイミングで何を歌っているかわかれば
自動で字幕が入れられるようになるので、
回り道してそっちにも手を出そうかなあと思っているところです。

-----これまで
「炉心融解」を駅名だけで歌わせてみてる(1) 
【垰瀬内なら】駅名替え歌を自動生成する(3) 【自動で作る】 
【垰瀬内なら】駅名替え歌を自動生成する(2) 【自動で作る】
【垰瀬内なら】駅名替え歌を自動生成する(1) 【自動で作る】

2014/11/08

「炉心融解」を駅名だけで歌わせてみてる(1)

#内容的には以前の記事の続きなのですが、
  技術的な進展は特にないので……。

題名の通りのことをやっています。
今のところ、ここまで出来ました。

思ったより作るのしんどいような、そうでもないような。

動画はオリジナルのものをお借りしています。
http://www.nicovideo.jp/watch/sm8089993

2014/11/03

【垰瀬内なら】駅名替え歌を自動生成する(3 【自動で作る】

#きっとn番煎じ (n>1, n∈N)

【やっつけデモ】
「炉心融解」で歌詞を作ってCevioにベタ打ちさせるとこうなりました。










聴きました?










現状の出力結果はこんな感じ

元歌詞
今回の出力
(前回の出力)

 まちあかり はなやか えーてる ますいの つめたさ
 たちあらい はなやま えべつ  はるひの  つねやま
 (かみさかい はなやま  えべつ    はるひの   うめやま)

 ねむれない ごぜんにじ すべてが きゅうそくに かわる
  ねづ+えない  ごめんまち  すまでら  うおずみ      かわづ
 (ねづ+えない  ごめんまち  すまでら  うおずみ      わらび)

 おいるぎれのらいたー  やけつく ような いのなか
  おいつ+ひねの+やいた  まきむく ようが いのなだ
 (おいつ+ひねの+やいた  まきむく ようが いのなだ)

 すべてが そう うそなら ほんと(う)に よかったのにね
 すずめだ その ぬのはら ほんまち      こなかの+みね 
(すずめだ その ぬのはら ほんまち      こなかの+みね)

--ここから新規--

 きみの くびを  しめる ゆめをみた  ひかりの あふれる ひるさがり
 ひびの ゆびそ しべつ ゆもと+みた みかきの あつべつ みつわだい

 きみの ほそい のどが はねるのを なきだしそうなめで   みていた 
 にじの よろい おおだ  やなぎもと  わりだし+とうな+めで みてじま

 かくゆうごうろにさ       とびこんでみたいと      おもう
 かく+つるみおの+にま こび+こいで+みわ+みと おもと

 まさおなひかり    つつまれてきれい
 まるお+なち+さり つづ+わけ+へいせい

 かくゆうごうろにさ     とびこんでみたら    そしたら
 たく+ゆう+ととろ+きさ おび+とりで+みはら よしわら  

すべてが ゆるされるような     きがして
 ふじえだ  ゆず+さめず+ようか きが+みえ

 べらんだの    むこうがわ かいだんを のぼって いくおと
 れぶん+やの ぬまのさわ かいやまと のぼて    ゆのもと

 かげりだしたそらが      まどがらすにへやに   おちる
 はげ+みだ+ひた+そはら かすがばる+みせだに のびる

 かくさんするゆうぐれ   なきはらしたような ひのあか
 はくさん+すふ+ゆのまえ まるやました+おな ひろわら

 とけるよ(う)に すこしずつ すこしずつ  しんでいく   せかい
 とおりたに   るもい+ふく くほんぶつ しんげ+くず てらい

   きみの くびを しめる ゆめを みた はるかぜに ゆれる かーてん かわいて
  にいの くりの みはる ゆのお ちた はぶ+かめい ゆのつ はなてん  かばいけ

 きれた くちびるから    こぼれる ことばは  あわのよう
 ひけた くじ+りふ+はら ほろべつ  のとがわ あわの+よの

 かくゆうごうろにさ    とびこんで  みたいと   おもう まっしろにきおく  とかされてきえる
 さく+ぬまぶくろ+いさ もり+といで きた+いほ よこお やしろ+にしはる とさくれ+めいほう 

 かくゆうごうろにさ      とびこんで みたら
 がく+くす+とうろ+ひわ もじ+こまえ+みなら

 また むかし みたいに ねむれる ような そんな きがして
 やた むらい みついし えんがる よつや  ほんな しが+ひめ 

 とけいの びょうしんや てれびの しかいしゃや
 よこいそ ぞうしがや  めぐみの  しもいさか
 
 そこにいるけど   みえない だれかの わらいごえ   ほうわ して   はんきょうする
 ぼこい+みぶ+でと みえまち はしらの わらび+のえ もおか+ひえ はなぞの+うす

 あれぐろ・あじてーと みみなりが きえない やまない
 あぞうの+たじべ      みき+なりた  きこない やまな

 あれぐろ・あじてーと みみなりが  きえない やまない
 やつしろ+やまて      みい+はりま みえばし やまだ

 だれも みんな きえてく   ゆめを みた まよなかの へやの ひろさと せいじゃくが
 やくも じんば みねのぶ ゆさと ひら さよ+なかの てらお しもさと へいわ+くが

 むねにつっかえて じょうずに いきが できなくなる
 むれ+みつ+かまて ぞうしき  いしが せき+やぶ+やつ

 Shout!
 ひな!

 かくゆうごうろにさ    とびこんで  みたら
 やす+ゆら+こうろ+ちわ ほみ+こぼけ みたか

 そしたら きっと ねむるように  きえていけるんだ
 よしはま きよ   てたる+とうに きりめ+ちたはんだ

 ぼくの いない あさは   いまより ずっと すばらしくて
 よぶの いわい あたわ いまばり ふと  すわ+かみすげ

 すべての  はぐるまが かみあった  きっと そんな せかいだ
 すえ+せの たつるはま かみ+あがた きの  ほんだ せや+きだ

 (Ah...)
 あわ+あわや

【実装】
・ユーザが歌詞をいい感じに区切ると、
 それと同じ文字数で似たような母音を持つ駅名をデータベースから拾ってくる
(異なる母音の文字数=距離で距離最短の駅名を使用)

・駅名間の距離は母音間の距離を文字ごとに計算した時の和

・母音間の距離は以下の通り
 母音不一致: 0.25
 母音一致:0 (駅名の始め/終わりの時は-2)
 文字一致:-0.25

・同じ駅は使わないようにする
(ただし同名の駅が複数個ある場合はその数まで可)

データベースにはwikipediaの日本の鉄道駅一覧を使用。

【前回との差分】
・バグ取り!
 -「かわる」を「わらび」と歌うのはさすがにおかしい
 -た行の駅がことごとくバグってた

・データベース中の「っ」「ゃ」「ゅ」「ょ」を、置換することで対応
 ex. 「きゃ」->「か」
 -なので、本来は「きゃ」と読むべき駅名を「か」と歌ってしまっている可能性

【課題】
・歌わなくてもいい音の推定
(あれぐろ・あじてー、みみなりがきえなやまない みたいな)

・時間伸縮に対応させる
(おいるぎれの -> おいつ+きれ+のう みたいな)

・実際の発音と表記の発音が違う問題をどうにかする
(ほうき->ほおき みたいな)

・そもそもユーザが歌詞を切らなくていいようにする

・デモ用のWebページつくる

・cevioをマスターする

2014/10/22

【垰瀬内なら】駅名替え歌を自動生成する(2) 【自動で作る】

#きっとn番煎じ (n>1, n∈N)

【やっつけデモ】
「炉心融解」で歌詞を作ってCevioにベタ打ちさせるとこうなりました。



(聞けない方はこちらから落としてください。)







聴きました?










現状の出力結果はこんな感じ

元歌詞
今回の出力
(前回の出力)

 まちあかり はなやか えーてる ますいの つめたさ
  かみさかい はやなま  えべつ    はるひの   うめやま
 (あいかまち あかさか えべつ  あさひの  うめやま)

 ねむれない ごぜんにじ すべてが きゅうそくに かわる
  ねづ+えない  ごめんまち  すまでら  うおずみ      わらび
 (あつ+えさき ごめんまち うえむら うおずみ   あかゆ)

 おいるぎれのらいたー  やけつく ような いのなか
  おいつ+ひねの+やいた  まきむく ようが いのなだ
 (おいつ+いけの+あいが  あおうづ おうか  いそはら)

 すべてが そう うそなら ほんと(う)に よかったのにね
  すずめだ その ぬのはら ほんまち      こなかの+みね
 (うえむら おの くろさか こんぞうじ  こなかの+いで)

【実装】
・ユーザが歌詞をいい感じに区切ると、
 それと同じ文字数で似たような母音を持つ駅名をデータベースから拾ってくる
(異なる母音の文字数=距離で距離最短の駅名を使用)

・その際、最初と最後の母音が似てるときは距離にボーナスをつける
(現在の実装では1文字母音が異なると距離+1,
 最初と最後の母音が同じだと距離ボーナスで-2,
 文字が完全に一致している場合もボーナスで-0.25)

・同じ駅は使わないようにする
(ただし同名の駅が複数個ある場合はその数まで可)

データベースにはwikipediaの日本の鉄道駅一覧を使用。

【課題】

・「っ」「ゃ」「ゅ」「ょ」「ー」に対応させる
(現状はいろいろごまかしている えーてる->えてる まっさお->まさお とか)

・時間伸縮に対応させる
(おいるぎれの -> おいつ+きれ+のう みたいな)

・実際の発音と表記の発音が違う問題をどうにかする
(ほうき->ほおき みたいな)

・そもそもユーザが歌詞を切らなくていいようにする

・デモ用のWebページつくる

・cevioをマスターする

2014/10/08

【垰瀬内なら】駅名替え歌を自動生成する(1) 【自動で作る】

#きっとn番煎じ (n>1, n∈N)

【背景】
とりあえず、こちらをお聞きください。

【駅名だけで】炉心融解歌ってみた【ぽちゃっこ】
作詞:あくあ さん
歌唱:ぽちゃっこ さん


このような作品は「垰瀬内シリーズ」(たおせない)と呼ばれ、
ニコニコ動画に359件投稿されています(2014/10/08 4:46現在)

今回はこれ(と同じくらいのクオリティ)の歌詞を自動で作ることを目標とします。

【(やっつけ)デモ】
とりあえず、
「炉心融解」で歌詞を作って(一発で)歌って(録音して適当にコンプかけて)みるとこうなります。
なんとなーく聞いてみて歌詞に違和感がなければ目標達成ですが。


(聞けない方はこちらから落としてください。)







聴きました?










現状の出力結果はこんな感じ

元歌詞
出力

まちあかり はなやか えーてる ますいの つめたさ
あいかまち あかさか えべつ  あさひの  うめやま

ねむれない ごぜんにじ すべてが きゅうそくに かわる
あつ+えさき ごめんまち うえむら うおずみ   あかゆ

おいるぎれのらいたー   やけつく ような いのなか
おいつ+いけの+あいがー あおうづ おうか いそはら

すべてが そう うそなら ほんとうに よかったのにね
うえむら おの くろさか こんぞうじ  こなかの+いで

きみの くびを しめる ゆめをみた ひかりの あふれる ひるさがり
いちお うしお いしづ うえの+いが いだきそ あつべつ いつかまち

きみの ほそい のどが はねるのを なきだし そうな めで みていた
いちお おおき おうか かいうえの あしだき  おうか あげ いえひさ

かくゆうごうろにさ    とびこんで  みたいと   おもう
あつ+うぐいすの+にさ  おぎ+おうめ  いが+いの  おおご

まっさおなひかり  つつまれてきれい
あかの+あき+あき うす+あげ+かいせい

かくゆうごうろにさ    とびこんで  みたら そしたら
あつ+うす+こうろ+いさ  おぎ+おうめ いがや おいたま

すべてが ゆるされる ような きがして
うえむら うす+あかゆ おうか いが+いで

【実装】
・ユーザが歌詞をいい感じに区切ると、
 それと同じ文字数で似たような母音を持つ駅名をデータベースから拾ってくる
(異なる母音の文字数=距離で距離最短の駅名を使用)

・その際、最初と最後の母音が似てるときは距離にボーナスをつける
(現在の実装では1文字母音が異なると距離+1,
 最初と最後の母音が同じだと距離ボーナスで-1,
 文字が完全に一致している場合もボーナスで-0.5)

データベースにはwikipediaの日本の鉄道駅一覧を使用。

・現在はそのうち「あ行」と「か行」が使えるように実装済み

【やるべき課題】
・データベース増やす
(「さ行」から「わ行」)

・「っ」「ゃ」「ゅ」「ょ」「ー」に対応させる
(現状はいろいろごまかしている えーてる->えてる まっさお->まさお とか)

・時間伸縮に対応させる
(おいるぎれの -> おいつ+きれ+のう みたいな)

・そもそもユーザが歌詞を切らなくていいようにする

・デモ用のWebページつくる

・歌唱力をあげるかcevioをマスターする