ゆっくりにアクセントをつけてみた

あらすじ

前回、 棒読みちゃんと同じAquesTalkという音声合成エンジンを使い、 Linuxでも棒読みができるアプリケーションyukkuriを作った俺。

ところがこのyukkuriには致命的な欠陥があったのだ!!

実際に喋らせてみた

棒読みちゃん以上に棒読みだった。 完全に真っ平ら。ぺったんこ。 実は棒読みちゃんは棒読みじゃなかった

どうやらAquesTalkは自分でアクセント記号を付けないといけないようです。 棒読みちゃんにもアクセント付きに変換された文字列が表示されます。

アクセントの付け方

やはりこのままmecabを使いたいので 「mecab アクセント」 でぐぐってみたところ、 Unidicというmecab用アクセント辞書があるようです。 これを組み込めばアクセントがうまく処理できそうです。

アクセントの仕様はかなり複雑なので一部から実装していきます。 実際にニコ生で使って気になるアクセントがあったらテストを書いて修正していくという方法を取ります。

アクセントのテストデータ

アクセントの処理を実装するにあたって、もちろんテストデータが必要になります。

方法1. 棒読みちゃんに喋らせてみてアクセント付き文字列を使う

残念ながらLinuxではWineを使っても棒読みちゃんが動かなかったので断念。

方法2. TASETのデモページを使う

CRFを用いたアクセント結合推定 というなんか難しいサイトの デモページ で文章にアクセントをつけることができます。 ただし変換にかなり時間がかかり、実際に喋らせてみるとなんかちょっと変です。

方法3. 聞く

2で作ったアクセントを実際に喋らせてみて、 自然に聞こえるように微調整するのが一番良さそうです。

ただし、細かい部分では正しい日本語の発音なんてのは知らないので、 こんなもんなのかで済ませます。

結果

たぶん棒読みちゃんより正確なアクセントが付けれるようになった。 確認はコードを実行してみるか、 ニコ生の放送を見てくださいな。