ソング(ハミング)のモーフィング機能
Hiroshiba opened this issue · comments
内容
ソング・ハミング機能(というよりframe_synthesis
)はWORLDを活用したモーフィングと相性が良く、機能として楽しそうかもです。
トーク側のモーフィングは、同じAudioQueryで生成した2種のボイス(スタイル)音声をworldで分解し、分解した領域で重み付き平均を取ったあと、worldで再合成しています。
この仕組み上、一度フレームレベルのf0の推論が挟まるので若干品質が下がるのですが、ソング側はフレームレベルのf0が最初から作られているので品質が保たれやすいかもしれません。
(でもVOICEVOXのソングエンジンはunvoice部分もf0を推論するので、結局worldでの分解は必要かも?)
それはさておき、オリジナルの歌声を作れて楽しいかなと。
Pros 良くなる点
品質が高めかも。
オリジナルの声を作れる。
キャラクターの歌声をちょっと味付けできる。
Cons 悪くなる点
実装がややこしめ
実現方法
方法が2つあると思います。
1つめが、トークと同じく2音声を分析→片方のf0を信用してスペクトログラム的なのだけ重み付き和→worldで再合成。
worldの分析誤差があるかもだけど、トーク側のコードを使いまわしたり共通化できたりしそう。
2つめが、frame_audio_queryが出したf0を信用してworldで2音声を分析→スペクトログラム的なのの重み付き和を取ってworldで再合成。
こっちのが処理は単純だけど、実装しないといけなそう。
品質良い方を採用するのが良さそう?
その他
エンジンの新機能があると楽しそうだな〜と思い、前から考えてたのをissueにしてみました。