SSブログ

フリガナとDiff [プログラム [全般]]

DUP映像でカラオケで言っていたプログラム,C# 2.0で全面作り直しをしています。

さて,どうしてもでてくるのが,MIDIの歌詞データと本来の歌詞データとの相違です。 簡単に言うと,漢字の読みをどうやって処理するか,という問題です。

正攻法なら,漢字の読みを取得してくるのでしょうが,歌詞というのは本来は読まない読み方をするものなので,その方法は使い物になりません。 で,今回はDiffを使って差分をとり,音数で配分するようにして処理するようにしています。

とはいえ,Diffを使うのも結構問題が出ます。例えば,キラリ★Dear Love!より,次の歌詞

見てると信じたこの瞬間
輝き出せる気がした

と,

見てるとしんじたこのときかがやき出せる気がした

との文字単位のDiffをとると,

  • 「瞬間\n輝」と「ときかがや」が異なると出る
  • 「瞬間\n輝」と「と」,「」と「かがや」が異なると出る

の二種類が,候補に挙がります。そして,悪いことに後者を現在のプログラムは取り上げてしまいます(というか,以前のバージョンでもそうでした)。さて,どうすっかなぁ……。


nice!(0)  コメント(1)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 1

y-ookubo

前者になるようにDiff結果に細工を加えました。
各不一致部の文字数の比が1に近づく組を採るようにしたためです。
・前者は4/5
・後者は(1/4+0/3)/2=1/8
なので,前者,という考えです。

まぁ,改行を挟んで「瞬間」と「輝」に割り振る文字数は文字数の比を使っているので,
・「瞬間」と「ときか」
・「輝」と「がや」
となってしまいますけどね……。
by y-ookubo (2006-03-22 13:46) 

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。