StyleTTS2 – オープンソースのEleven-Labs品質テキスト音声変換技術
(github.com/yl4579)人間レベルのテキスト・トゥ・スピーチモデル、StyleTTS 2
- StyleTTS 2は、スタイル拡散と大規模音声言語モデルを用いた敵対的学習により、人間レベルのテキスト・トゥ・スピーチ(TTS)合成を実現する。
- このモデルは、参照音声なしでテキストに最も適したスタイルを生成するため、拡散モデルを通じてスタイルを潜在ランダム変数としてモデリングし、効率的な潜在拡散を実現する。
- 大規模な事前学習済み音声言語モデルを識別器として使用し、新しい微分可能な継続時間モデリングによってエンドツーエンド学習を行い、音声の自然さを向上させる。
準備事項
- Python 3.7以上が必要。
- StyleTTS 2リポジトリをクローンし、必要なPython要件をインストールする。
- LJSpeechデータセットをダウンロードし、24 kHzにアップサンプリングしてデータフォルダに展開する。
- LibriTTSデータセットを使用する場合は、train-clean-360とtrain-clean-100を結合し、フォルダ名をtrain-clean-460に変更する必要がある。
学習
- 第1段階の学習と第2段階の学習を順番に実行でき、モデルは特定の形式で保存される。
- データ一覧の形式は
filename.wav|transcription|speakerである必要があり、マルチスピーカーモデルではスタイル拡散モデル学習のために参照音声のサンプリングが必要。
重要な設定
config.ymlファイルには、SLM敵対的学習のためのOOD(out-of-distribution)テキストパス、学習用の最小・最大長、マルチスピーカーモデルを学習するかどうか、OOM(out-of-memory)問題を防ぐためのバッチ割合など、重要な設定が含まれる。
事前学習済みモジュール
- ASRフォルダには事前学習済みテキストアライナー、JDCフォルダには事前学習済みピッチ抽出器、PLBERTフォルダには事前学習済みPL-BERTモデルが含まれている。
一般的な問題
- 損失がNaNになる問題やメモリ不足の問題に対する解決策として、バッチサイズの調整や
max_len値を下げる方法が示されている。
ファインチューニング
train_second.pyスクリプトを修正し、DPを使用するファインチューニングスクリプトが提供されているが、DDPは現在動作しない。
推論
- LJSpeechおよびLibriTTSデータセット向けの推論用ノートブックファイルを参照し、LibriTTSでは参照音声ファイルが必要。
- 事前学習済みのStyleTTS 2モデルをダウンロードできるが、使用前に合成音声サンプルがStyleTTS 2モデルによって生成されたことを聞き手に知らせるか、使用許可を得た声を使う必要がある。
GN⁺の意見
この記事で最も重要なのは、StyleTTS 2が人間レベルのTTS合成を実現した点であり、これはスタイル拡散と大規模音声言語モデルを用いた敵対的学習の可能性を示している。この技術は音声合成の自然さを大きく向上させ、参照音声なしでも多様なスタイルを生成できる能力を提供することで、音声ベースのインターフェースやデジタルアシスタントの発展に大きな影響を与える可能性がある。
1件のコメント
Hacker Newsの意見
StyleTTS2を使った100%ローカル音声チャットボットの開発経験
StyleTTS2の音声品質に関する個人的な意見
StyleTTS2のインストールと使用経験の共有
StyleTTS2のインストールおよび動作に関する経験
StyleTTS2の音声サンプルと実際の音声の比較
StyleTTS2の音質に対する評価
StyleTTS2のタイトルと内容に関する意見
StyleTTS2の推論時間に関する質問
StyleTTS2のライセンスに関する質問
Text-to-Speechモデルに対するマーケットプレイスの展望