要約
AIスピーカーやナビを使っているときに、誘導音声の声が変わってしまった経験があるかもしれません。話者の声を好きな俳優のユ・インナの声に設定しましたが、音声合成技術がパーソナルアシスタント、ニュース放送、音声案内など、生活のさまざまな部分に組み込まれるにつれて、さまざまな声で音声を合成することが重要になってきました。また、音声合成研究の分野ではカスタム音声合成と呼ばれる、他人の声だけでなく相手の声もAI音声として利用したいという需要が高まっています。
今日は、カスタム音声合成用に登場したAdaSpeechと呼ばれる音声合成(TTS)モデルを見ていきます。 カスタムボイスを生成するテクノロジーは、主に、事前にトレーニングされたソース TTS モデルをユーザーの音声に適合させるプロセスを通じて行われます。このとき使用されるユーザーの音声データは便宜上小さいものがほとんどで、量も少ないため、生成された音声を自然で元の音声に近い感じにするのは非常に難しい作業です。 カスタマイズされた音声でニューラルネットをトレーニングすることには、主に2つの問題があります。
まず、特定のユーザーの声の音響条件が、ソース TTS モデルから学習した音声データとは異なることがよくあります。たとえば、話し手の韻やスタイル、感情、強み、録音環境はさまざまであり、それらから生じる音声データの違いが、ソースモデルの汎化性能を阻害し、適応品質を低下させる可能性があります。
第二に、ソースTTSモデルを新しい音声に適応させる場合、微調整パラメータと音声品質にはトレードオフがあります。言い換えると、適応性の高いパラメーターを使用すればするほど、生成できる品質は向上しますが、メモリ使用量が増え、モデルのデプロイコストも高くなります。
既存の研究では、モデル全体または部品(特にデコーダー)を微調整する方法、マルチスピーカー音声合成で話者を区別するために使用される話者埋め込みのみを微調整する方法、話者エンコーダーモジュールをトレーニングする方法、ソース音声と適応データの領域が同じであると仮定する方法を指定しました。しかし、実際の使用にはパラメーターが多すぎたり、満足のいく品質が得られないなどの問題があります。
AdaSpeechは、上記の問題を解決しながら、新しいユーザー(またはスピーカー)の声を高品質で効率的に生成できるTTSモデルです。パイプラインは大きくプレトレーニング、微調整、推論の3つの段階に分かれており、既存の問題を解決するために2つの手法が使われています。これからは、それらを一緒に見ていきましょう!🙂
忙しい人のためのまとめ
- 音声データからさまざまなスコープに応じた音響特徴を抽出し、それを音響条件モデリングによって既存の音素符号化ベクトルに追加することにより、モデルの汎化性能が向上しました。
- 条件付きレイヤー正規化を使用して、ソースモデルを新しい話者のデータに適合させるプロセスを効率的に改善しました。
- 従来のベースラインモデルよりも少ないパラメーターと少ない新しい音声データで、高品質のカスタム音声を作成できるようになりました。
モデル構造
AdaSpeech のバックボーンモデルは FastSpeech 2 です。主に音素エンコーダー、バリアンスアダプター、MEL デコーダーで構成されています。これには、著者が考案した 2 つの新しい要素 (図 1 のピンク色の部分) が含まれています。
音響条件モデリング
一般に、モデルトレーニングで使用されるソースボイスは、新しいユーザーの声の音響的特徴をすべて網羅することはできないため、モデルのジェネラライズパフォーマンスを向上させることが重要です。モデルが TTS に入力するテキストにこれらの音響的特徴を含めることは難しいため、モデルはトレーニングデータに音響的特徴を記憶するという偏りがあり、カスタムボイスを生成する際の一般化性能の妨げとなります。この問題を解決する最も簡単な方法は、モデルの入力として音響特徴を提供することです。音響条件モデリングは、スピーカーレベル、発話レベル、音素レベルに分けられ、広域から周辺情報までさまざまな音の特徴を含む音響条件モデリングと呼ばれます。各レベルには以下の情報が含まれます。
- スピーカーレベル:スピーカーの全体的な特性を捉えるレベルで、最も広い範囲の音響特性(スピーカーの埋め込みなど)を表します。
- 発話レベル:文章を発音するときに現れる特徴を捉えるレベルで、基準音声のメル・スペクトログラムを入力とし、そこから特徴ベクトルを出力します。モデルをトレーニングすると、ターゲット音声が基準音声になり、推論では、合成したい話者の声の1つがランダムに選択されて基準音声として使用されます。
- 音素レベル:文中の音素単位で特徴を捉える最小レベルの範囲(特定の音素の強さ、ピッチ、韻、一時的な環境ノイズなど)。この場合、同じ音素に対応する MEL フレームをセクション内の平均値に置き換えて表現した音素レベルのメル・スペクトログラムが入力されます。そして推論では、構造は同じですが、音素エンコーダーからの隠れベクトルを入力として受け取り、音素レベルベクトルを予測する音響予測器を使います。
条件付きレイヤー正規化
ADASpeechのメルデコーダは、Transformerモデルに基づくセルフアテンションとフィードフォワードネットワークで構成されており、多くのパラメータが使用されているため、新しい音声に微調整するプロセスは効率的ではありません。そこで、著者らは各層のセルフアテンションとフィードフォワードネットワークに条件付き層正規化を適用し、 ここで使用するスケールとバイアスをユーザーに合わせて更新することで、微調整中に更新されるパラメーターの数を減らしました。 そして、ここで使われているスケールとバイアスは、上の図のように線形層を通過し、これらのベクトルがスピーカーの埋め込みから計算されるため、条件付きと呼ばれています。
トレーニングと推論プロセス
AdaSpeechをトレーニングし、新しい話者に音声を推論するプロセスは、上記のアルゴリズムで要約できます。まず、できるだけ多くのテキスト音声データを使用してソースモデルを事前トレーニングし、次に微調整を行って、条件付きレイヤーの正規化と話者の埋め込みに使用されるパラメーターを新しい話者の音声データで更新します。推論では、話者情報から計算する必要があるパラメータの値と、学習によって微調整されていないパラメータの値が一緒になってメルスペクトログラムを作成していることがわかります。
実験結果
カスタム音声品質評価
MelGaNをボコーダーとして使用し、合成したカスタムボイスの自然さをMOSとして評価し、SMOSという指標で類似性を評価しました。AdaSpeechは、ベースラインよりも少ないかそれに近いパラメーターだけで高品質な音声を合成できることがわかります。そしてソースのTTSモデルは、もちろんLibrittsというデータセット用に事前トレーニングされていたので、Librittsの新しいスピーカーとして採用したときが、最高得点を獲得するようです。
アブレーション研究
彼らは、相対的な品質を評価できるCMOS(比較MOS)を用いて、本論文で貢献したとされる技術についてアブレーション研究を行いました。特定の部分を削除したADASpeechのCMOSは、表2の基本的なADASpeechよりも低かったため、すべての手法が品質向上に寄与していると結論付けることができます。
音響条件モデリング 分析
図4 (a) は、学習した話者の発話レベルの音響ベクトルを t-SNE で表したものです。同じ話者が発音した異なる文は同じクラスターに分類されていることがわかり、このことから、モデルは文章を話すときの 1 人の話者の固有の特徴を学習したと判断できます。いくつかの例外は見られますが、これらの文章はたいてい短い話し方や感情的な話し方なので、他の話者の発話と区別するのが難しいです。
条件付きレイヤー正規化 分析
CMOSと比較すると、条件付きレイヤー正規化を使用した場合に音声品質が最高であることがわかります。そのため、レイヤーノーマライズを行う場合は、スピーカーの特性を反映してスケールやバイアスを修正した方が良く、それらだけを更新するとモデルの適応性に良い影響が出ることがまとめられます。
適応型データ分析の量
最後に、著者らは、このモデルが実用的かどうかを判断するために、新規ユーザーの音声データがどれだけ必要かをテストする実験を行いました。図4 (b) からわかるように、合成された音声の品質は 10 サンプルを使用するまでは急速に向上しますが、それ以降は大きな改善は見られないため、各スピーカーにつき 10 サンプルのみを使用して ADASpeech を微調整しても問題ありません。
結論 そして 意見
AdaSpeechは、これまでパラレル音声合成で速度が向上したFastSpeechの利点を生かしながら、新しいユーザーに適応できる機能を備えたTTSモデルです。音響条件モデリングは音声の特性を捉えることでモデルの汎化性能を向上させ、さらに細分化すれば、ユーザーの特性により近い話し方をする AI が生まれるかもしれません。また、たった10サンプルでカスタム音声TTSを満足できるモデルという点では、利用価値は無限だと思うが、それでもユーザーの声とそれに対応するテキストを一緒に微調整するためのデータとして利用すべきなのは現実的には残念だ。実際、AI音声合成サービスを利用している人の間で自分の声を録音できたとしても、わざわざ一緒にテキストを入力するユーザーが増えるでしょう。そこで、次のセッションでは、テキストと音声のペアリングデータなしでカスタム音声合成を可能にする AdaSpeech の修正版を紹介します。
リファレンス
(1) [ファーストスピーチ 2] FastSpeech 2: 高速で高品質なエンドツーエンドのテキスト読み上げ
(2) [アダスピーチ] AdaSpeech: カスタムボイスのためのアダプティブテキスト/スピーチ
(3) [アダスピーチ] https://speechresearch.github.io/adaspeech/
リファレンス
(1) [ファストスピーチ 2 ペーパー] FastSpeech 2: 高速で高品質なエンドツーエンドのテキスト読み上げ
(2) [ADAスピーチペーパー] AdaSpeech: カスタムボイスのためのアダプティブテキスト/スピーチ
(3) [ADAスピーチデモ] https://speechresearch.github.io/adaspeech/