Spaces:
Running
on
Zero
AkitoP様、いつも最高なソフトをありがとうございます!
質問があって、僕は小学5年生なのですが、
ローカルで、gpt sovits v2 で声のクローン生成を行っています
学習上限を解除して、500回くらいモデルを学習させてます。
ただ、AkitoP様のように綺麗に声が出ません。
というのも、Tokenizer が重要なんじゃないかなって思うんですが
僕の gpt sovits v2 には、Tokenizerの機能が無くって、
どうやったら Tokenizerを僕も使えるようになりますか?
Filesから、ダウンロードして起動しようとしても
バグっちゃいます。
僕も日本語のTokenizerを使えるようになりたいです!
どうか教えてください!
こんにちは!
あなたが小学5年生でありながら、GPT-SoVITS V2を使って音声のクローン生成に取り組んでいるなんて、本当に素晴らしいですね。
Tokenizerについて
私の使っているWeb UIの「tokenize」機能は、元々のGPT-SoVITS V2に含まれているものです。テキストから音声を生成するためには、日本語の文章を一つ一つの「音素」に変換する必要があります。例えば、「こんにちは」は「k o [ N n i ch i w a」のように変換されます。
日本語では、アクセントを示すために「[ ]」といった記号を使って、どの音素で声を上げたり下げたりするかを指示します。元のGPT-SoVITS V2のプロジェクトでは、この音素への変換はinference_webui.pyの307行目から377行目にあるget_phones_and_bertという関数内で行われています。また、実際にモデルが音声を生成するget_tts_wav関数では、498行目でall_phoneme_ids(すべての音素)がモデルに入力されています。
現在、GPT-SoVITS V2はpyopenjtalkという辞書を使って日本語のテキストを音素に変換しています。しかし、この辞書は完璧ではないため、変換時に違う書き起こしが起きることがあります。そこで、私のこのSPACEでは、この音素への変換部分を取り出して二つのステップに分け、中間で音素を修正できるようにしています。これにより、変換ミスを手動で訂正することができます。
実際の音声合成に関しては、私の環境と元のGPT-SoVITS V2は同じで、特別なTokenizerがあるわけではありません。もし効果がよくない場合は、以下の点を試してみてください:
訓練データの充実:良い結果を得るためには、8秒以上の音声クリップを最低でも200個以上集めると効果的です。
モデルの訓練:SoVITSモデルを200エポック以上訓練すると、品質が向上します。
GPTモデルの精度:話し方や口調を再現するために、GPTモデルのtop_3_accという指標を0.7〜0.8の範囲に保つと良いです。値が低すぎると再現性が低く、高すぎると過学習になってしまいます。
参考音声の多様性:GPTモデルは参考音声の語調や話し方を模倣します。そのため、さまざまな語調のデータを訓練に加えると良いでしょう。合成する際には、希望する語調に合わせて適切な参考音声を選択することで、より自然な結果が得られます。
私のSPACEをローカルにクローンする場合、環境設定やコードの一部を調整する必要があるかもしれません。その際は、ChatGPTに具体的な手順を尋ねてみると、詳しく教えてもらえると思います。
ここまで深く研究しているあなたは本当にすごいです!これからも興味を持って学んでいってください。応援しています!