韓国で開発をしている大学生です。初めて記事お作成してみます。
目次
- 概要
- 亜流雀々
- 本プロジェクトの開発過程
- 結果
概要
Japanese to Multi Language TTS - VITS (MB-iSTFT-VITS)
まず、このプロジェクトは日本語データセットで韓国語を発話できるようにするために始めたプロジェクトです。
その後、HANGULIZEプロジェクトを発見し、ミュートクリーナーにハングルのサイズを追加して10+ヶ国語を発火させることができるようになりました。 外国語を流暢に話す日本人だと感じたら、このプロジェクトは成功だと言えます。
亜流雀々
以下は、このプロジェクトに到達するために制作した亜流作です。
- RVC-VITS (https://github.com/kdrkdrkdr/RVC-VITS)
特徴:RVCでデータaugmentation後に学習する変換されたデータセットのイントネーションとキャラクターだけの特徴が生かされないイシューが発生
- JK-VITS (https://github.com/kdrkdrkdr/JK-VITS)
特徴:該当言語に音素変換して似た発音ができるように誘導似たような発音をするが正確な発音ができないイシュー発生
開発過程
-
音素変換ツールの修正
既存に開発されたg2pk2 の微細なエラー修正と日本語変換を含めてハングル発音に変えられるよう修正しました。 そうして作られたのがg2pk3です。 カントリーコードがなくても自分でハングルの発音に変えられる言語はg2pk3に内蔵された韓国語、日本語、英語です。
残りのサポート言語は、Hangulizeを通じてハングルに変換され、変換されたハングルを発音表記に変換します。
Hangulizeもこのプロジェクトに適用できる形に修正しました。
日本語はpyopenjtalkの内部コードを修正し、私の好みに合わせてOpenJTALKクラスを修正しました。
- データセット前処理および事前学習モデルを利用して微調整
JSUT日本語音声データセットのtranscriptファイルを前処理しました。
前処理過程は日本語→カタカナ→韓国語→韓国語発音→字母分離の順です。
データセットの前処理後、2番で作った事前学習モデルを利用して微調整しました。
batch_size=32、sample_rate=44100で3000step学習しました。
微調整なので100Kまで学習する必要がなく、3000step以上学習する時、日本語話者からパッチムをしっかり聞くことができないからです。 ミュートクリーナーが韓国語の自毛基盤であるため、これを考慮しなければなりませんでした。
プロジェクトリンクわこちらで