StyleTTS:「どう話すか」を独立した制御対象にする
テキストと録音を、聴ける作品に
ナレーション、ステム分離、カバー、効果音を、ブラウザだけで。
- テキスト読み上げも、ボイスクローンも
- ステムを分離、またはカバーを生成
- 登録して試聴。聴いてから決められる
多くの TTS モデルは、本来大きく異なる2つの問いをひとまとめにしています。何を話すのか、そしてそれをどのように伝えるのか、という問いです。コロンビア大学で開発された StyleTTS は、この2つを意図的に切り離しました。画像生成の技術、つまりニューラルネットワークがある画像のテクスチャを別の画像の内容に適用できるようにしたのと同じスタイル転送の手法を音声に応用し、韻律、リズム、話し方を、話者のアイデンティティに暗黙のうちに組み込まれたものではなく、独立して制御できる「スタイル」として扱います。
StyleTTS とは?
StyleTTS は非自己回帰型のテキスト読み上げモデルです。つまり、1回に1つずつトークンを生成するのではなく、発話全体を並列に生成します。この構造上の選択により、推論時には自己回帰型の手法よりも大幅に高速になります。そのアーキテクチャは、連携して動作する8つの異なるモジュールで構成されています。テキストエンコーダー、スタイルエンコーダー、識別器、テキストアライナー、ピッチ抽出器、音声デコーダー、継続時間予測器、韻律予測器です。多くの新しいエンドツーエンドモデルよりもモジュール性の高い設計であり、それは意図的なものです。このモジュール性によって、スタイルをほかのすべてと絡み合った副産物ではなく、独立したコンポーネントとして操作できます。
スタイルベクトル:「スタイルベース」を成立させるもの
ここは理解しておく価値のある部分です。モデル名の要点そのものだからです。StyleTTS のスタイルエンコーダーは、参照用のメルスペクトログラムを受け取り、そこからスタイルベクトルを抽出します。これは話者埋め込みと似た働きをしますが、「誰が話しているか」だけでなく、それ以上のものを捉えます。捉えるのは、その人がどのように話しているか、つまりペース、強調、感情的な色合い、話し方の音響的な質感です。
そのスタイルベクトルは、Adaptive Instance Normalization(AdaIN)を通じて音声デコーダーに注入されます。これは、ニューラルスタイル転送の画像モデルが、ある画像の視覚的スタイルを別の画像の内容に適用するために使うものと同じ正規化技術です。ここでは音声に対して同様の役割を果たします。デコーダーの出力は、ネットワーク内の複数の地点でスタイルベクトルに基づいて繰り返し再正規化されます。これにより、単一の参照スタイルが生成される発話全体に影響し、開始時の1つの静的な条件入力に縮約されることがありません。
自然さを高める敵対的学習
スタイルベースの設計に加え、StyleTTS は識別器を使って学習されます。これは敵対的生成ネットワークと同じ中核的な発想で、再構成損失だけを最適化するのではなく、デコーダーの出力を本物の人間の録音と区別しにくいものへと近づけます。タイミングとピッチ輪郭を明示的に処理する専用の継続時間予測器および韻律予測器と組み合わせることで、より単純な非自己回帰モデルが生み出しがちな平板で機械的な抑揚ではなく、StyleTTS の出力に自然なリズムをもたらします。
ゼロショットのスタイル転送と話者転送
StyleTTS は、学習時に未知だった話者へのゼロショット適応に対応しています。これは、学習には含まれなかった LibriTTS コーパスの保留テスト話者を使って実証されています。新しい話者の参照クリップを用意すれば、追加のファインチューニングなしで、スタイルエンコーダーがそこから利用可能なスタイルベクトルを抽出します。スタイルと内容がアーキテクチャ上で分離されているため、一般的なクローンモデルよりも珍しい組み合わせも可能になります。「声」を分割できない単一の属性として扱うのではなく、ある話者の話し方のスタイルを別の話者の声のアイデンティティに適用できます。
StyleTTS の始め方
- リポジトリをクローンします。 GitHub から公式の
yl4579/StyleTTSプロジェクトをgit cloneし、コードと推論用ノートブックを取得します。 phonemizerをインストールします。 StyleTTS の推論パイプラインは、合成前にテキストを音素へ変換するためにこれを必要とします。提供されているノートブックを実行する前にインストールしてください。- 用途に合った事前学習済みチェックポイントをダウンロードします。 一貫した単一話者のナレーションには、単一話者の LJSpeech コーパスで学習したモデルを利用できます。別の LibriTTS 学習済みチェックポイントは、複数話者とゼロショット生成に対応します。
- 対応する HiFi-GAN ボコーダーのチェックポイントを入手します。 StyleTTS が出力するメルスペクトログラムから最終的な波形を生成するには、それに対応して学習された HiFi-GAN モデルとの組み合わせが必要です。ボコーダーと音響モデルのチェックポイントが一致していないと、出力品質が低下します。
inference.ipynbで最初の生成を実行します。 提供されているノートブックでは、事前学習済みモデルを読み込み、テキストから生成する手順を確認できます。独自のパイプラインを構築する前に、スタイル転送の効果を実際に聞く最も手早い方法です。- ゼロショットのデモを試す場合は、LibriTTS の test-clean split をダウンロードします。 これは、モデルが学習時に一度も見ていない参照話者で生成をテストする場合に限って必要です。
より良い結果を得るためのヒント
- 話者のアイデンティティだけでなく、スタイルを基準に参照クリップを選びます。 スタイルエンコーダーは声のアイデンティティと同じくらい話し方の特徴も捉えるため、韻律が明瞭で録音状態の良い参照クリップのほうが、技術的にはクリーンでも平板で単調なクリップより説得力のある転送になります。
- プロジェクトで必要な話者構成にチェックポイントを合わせます。 LJSpeech 学習済みモデルは、一貫した単一話者のナレーションに適しています。複数話者またはゼロショット機能が必要な場合に限って、LibriTTS チェックポイントを選びます。
- テキストアライナーとピッチ抽出器を学習データと整合させます。 独自の音声でファインチューニングまたは再学習する場合、プロジェクトの事前学習済みアライナーとピッチ抽出器は、特定のメルスペクトログラム前処理に合わせて学習されています。そこから外れる場合は、メインモデルだけでなく、これらのコンポーネントも再学習する必要があります。
- 合成音声であることを適切に開示します。 研究目的で公開された多くの音声モデルと同様に、誰かの声の特徴や実際の録音から構築した声を使う場合は、元の話者の同意を得るか、出力が合成であることを明確に開示する責任があります。ここでは、直接識別できる「スタイル」によってクローンされた話し方がより本人らしく感じられるため、特に重要です。
- 参照クリップが手元にない場合は、StyleTTS 2 を検討してください。 オリジナルの StyleTTS は、スタイルベクトルの抽出に参照音声サンプルを必要とします。後継の StyleTTS 2 では、参照音声をまったく使わずに拡散によってスタイルをサンプリングできるよう、後にこの仕組みが再設計されました。ワークフローで常にクリーンな参照クリップを用意できるとは限らない場合に知っておく価値があります。
StyleTTS とほかの非自己回帰・クローン手法の比較
| StyleTTS | 一般的な話者埋め込み TTS | 自己回帰型クローンモデル | |
|---|---|---|---|
| 生成方式 | 非自己回帰(並列) | モデルによる | 自己回帰(逐次) |
| スタイル制御 | 明示的、AdaIN で注入されたスタイルベクトル | 暗黙的、話者埋め込みと絡み合う | 暗黙的、参照音声と結び付く |
| 推論速度 | 高速(並列生成) | モデルによる | 一般に低速 |
| ゼロショット話者適応 | 対応 | 限定的、アーキテクチャによる | 対応、一般的な設計目標 |
| 学習方法 | 敵対的(識別器ベース) | モデルによる | モデルによる |
| アーキテクチャのモジュール性 | 高い(8つの独立モジュール) | 低い | 一般に、よりエンドツーエンド寄り |
StyleTTS 固有の貢献は、話し方のスタイルを話者のアイデンティティと切り離せないものではなく、独立して制御できる変数として扱う価値があると実証したことです。この区別は、その後の、後継モデルを含む拡散をより重視したモデルに直接受け継がれました。
よくある質問
StyleTTS における「スタイル」とは、具体的に何ですか?
参照音声クリップからスタイルベクトルとして抽出される、韻律、リズム、強調、感情的な色合いといった話し方の特徴を指します。参照話者の声のアイデンティティとは異なりますが、両者には関連があります。
StyleTTS は GPT ベースのクローンモデルのような自己回帰型ですか?
いいえ。StyleTTS は非自己回帰型で、トークンごとではなく発話全体を並列に生成するため、一般に自己回帰型の手法より推論が高速です。
StyleTTS の動作には参照音声クリップが必要ですか?
オリジナルの StyleTTS では必要です。スタイルエンコーダーが参照メルスペクトログラムからスタイルベクトルを抽出します。後継の StyleTTS 2 は、スタイルを拡散でサンプリングされる変数としてモデル化し、後にこの要件をなくしました。
StyleTTS は未知の話者の声をクローンできますか?
はい。学習時に未知だった話者へのゼロショット適応に対応しており、LibriTTS テストセットの保留話者を使って実証されています。
StyleTTS はどのボコーダーを使用しますか?
HiFi-GAN です。使用する特定の音響モデル(LJSpeech または LibriTTS)と一緒に学習された、対応するチェックポイントを組み合わせます。
Echoraでテキストを音声に変換
テキストから一人の話者による音声を作る同様のワークフローをブラウザで利用したい場合は、Echoraのテキスト読み上げを使えます。最大5,000文字を入力し、内蔵音声または保存したカスタム音声を選び、必要に応じて対応している話し方タグを追加して安定性を調整できます。生成結果はプレビューしてMP3でダウンロードできます。