日本語音声基盤モデルの事後学習:TTSに強化学習を適用する
概要編では、モデルサイズと学習データ量を拡大した日本語音声基盤モデル(LLM-TTS)を構築し、Text-to-Speech(TTS)性能を紹介しました。 事前学習編では、このモデルがテキストと音声のトークン列を生成できるようになるまでの設計を扱いました。
本記事では、このモデルを出発点として、生成結果に報酬を与えて学習する 強化学習(Reinforcement Learning; RL) をTTSへ適用し、発話内容の正しさを事後学習によって改善できるか検証します。
前半では、話者情報を入力せず、テキストだけから音声を生成するモデルにRLを適用します。音声認識モデルを用いた発話内容の評価と音声長へのペナルティを組み合わせた3種類の報酬設計を比較します。さらに、各設計が発話内容、音声長、話者性に与える影響を調べます。 後半では、参照音声から話者性を引き継ぎ、任意の話者のTTSを実現するゼロショットTTSにも対象を広げます。
関連記事
- 概要編:日本語音声基盤モデルをスケーリングさせ、TTS性能を見てみる
- 前処理編:音声データを処理する前処理パイプラインと実行基盤を作った話
- 事前学習編:日本語音声基盤モデルの事前学習
- 事後学習編:この記事
具体的には、次の4点を紹介します。
- 音声を用いた報酬計算を強化学習フレームワークへどのように組み込んだか
- 音声認識モデルを用いた報酬設計が、発話内容、音声長、話者性へどう影響するか
- 推論エンジンと数値精度によって、生成結果やRL中の確率計算がどのように変わるか
- ここまでに得た知見をもとに3BモデルをゼロショットTTS向けに事後学習し、日本語TTSベンチマークで評価した結果
1. TTS向け強化学習の全体構成
学習基盤には、言語モデル向けの強化学習フレームワークであるverlを利用しました1。 verlの生成・学習処理に、音声の復号と音声認識による報酬計算を接続しています。 音声トークンの生成から報酬計算までは、次の流れで行います。
- 入力テキストをもとに、LLM-TTSモデルが音声トークンを生成する
- Neural Audio Codecを用いて、音声トークンを波形へ復号する
- 音声認識モデルで生成音声を評価し、報酬を計算する
- 評価値をverlへ返し、モデルを更新する
1-1. LLM向けRLとの違い
LLM向けRLでは、生成したテキストをルールまたは報酬モデルで評価できます。 一方、LLM-TTSが生成する音声トークン列だけを見ても、入力文を正しく発話できているかは評価できません。 そこで、音声トークンをNeural Audio Codecで波形へ復号し、さらに音声認識モデルで評価します。 つまり、生成から報酬計算までの間に、Neural Audio Codecと音声認識モデルによる二段階の推論が加わります。
1-2. 報酬計算を別の実行環境へ分離する
報酬計算では、学習対象とは別に音声認識モデルを動かす必要があり、その実行環境には学習側とは異なる依存関係が含まれます。 そこで、学習処理と報酬計算を独立した実行環境に分けました。 実際の実行にはコンテナを用い、両者を同一ノード上のHTTP APIで接続しています。
この構成により、報酬側のモデルや依存関係を変更しても学習環境を作り直す必要がありません。 また、生成音声をキューに集め、専用GPU上でまとめて評価することで、音声認識の推論をバッチ化できます。

2. 事前学習済みモデルの報酬設計を検討する
まず、事前学習済みモデルに対してRLを行い、発話内容を評価する報酬を検討しました。 このモデルには話者性を制御する仕組みがなく、生成される声質はサンプリングごとに変わり得ます。 TTSのRLでは、音声認識モデルを用いて発話内容の正しさを評価する方法が提案されています。 Liuらは、生成音声の認識結果と正解文から計算する文字誤り率と、生成音声を入力した音声認識モデルが正解文に割り当てた確率から計算する負の対数尤度を組み合わせた報酬を使用しています2。
本記事でも、Whisperの認識結果と正解文から計算する文字誤り率(Character Error Rate; CER)と、Whisperが正解文に割り当てた確率から計算する負の対数尤度(Negative Log-Likelihood; NLL)を報酬の構成要素として使用しました。 CERは最終的な認識結果の誤りを表しますが、認識結果が1文字変わるたびに離散的に変化します。 一方、NLLはWhisperが正解テキストへどの程度確信を持っているかを連続値として表します。
2-1. 予備実験で見えた挙動
報酬設計の初期検証には、LLaMAをベースとする公開音声合成モデルLLaSAを使用し、CERとNLLを組み合わせて学習しました3。 学習が進むにつれてCERとNLLはともに改善しましたが、生成音声を確認すると、発話が次第に遅くなり、音声全体が長くなる傾向が見られました。
同じ傾向が本シリーズで事前学習した3Bモデルでも見られたため、報酬以外の条件を揃え、LLaSAと3Bモデルの両方で報酬設計が音声長に与える影響を調べました。
2-2. 比較する報酬
発話が遅くなる問題は先行研究でも報告されており、同じ入力文に対する生成群の中央値から音声長が外れた場合にペナルティを与えるLength Penalty(LP)が用いられています4。 本記事でも同じLPを採用し、NLLとLPの影響を調べるために次の3条件を比較しました。
- CERのみ:認識結果の誤りだけを報酬にする
- CER + NLL:CERと、正解文に対するWhisper NLLを報酬にする
- CER + NLL + LP:CERとNLLに、音声長へのペナルティを加える
各条件を320ステップ学習しました。 学習後の評価には、学習に使用していない1,000文を用い、1文あたり4回生成した結果を集計しました。評価用のCERは報酬計算と同じWhisperモデルで算出しており、異なる音声認識モデルでも同様に改善するかは未検証です。
2-3. 発話内容と音声長の比較
各報酬条件について、学習前と320ステップ後のCER、Whisper NLL、平均音声長を比較しました。

CERの評価結果はいずれの条件でも改善しました。 NLLを加えるとWhisper NLLはさらに改善しましたが、CERには明確な追加改善がありませんでした。
一方、LPを加えないNLL条件では、平均音声長がLLaSAで2.82秒、3Bモデルで5.26秒増加しました。 この発話の引き伸ばしは両モデルに共通しており、3Bモデルの事前学習に固有の問題ではなく、NLLを含む報酬条件で現れる挙動だと考えられます。 これに対し、NLLとともにLPを加えることで、音声長の増加は両モデルで抑えられました。
以下は、3Bモデルによる同じ入力文の生成音声です。 CERのみを用いた320ステップ後の音声でも学習前よりやや発話が遅くなっていますが、NLLを加えた音声では、同じ文を引き伸ばすような読み上げがさらに顕著です。 LPを加えた場合にはこの引き伸ばしが抑えられ、学習前に近い話速へ戻っています。
| 学習前 | |
|---|---|
| 学習後:CERのみ | |
| 学習後:CER + NLL | |
| 学習後:CER + NLL + LP |
今回の評価では、発話内容を改善するためにNLLは必須ではなく、CERのみでも同程度の改善が得られました。 NLLは連続的な報酬として扱いやすい一方、音声長に意図しない影響を与えています。 LPはNLLによる音声長の増加への対処として有効でした。
3. 報酬による話者性の変化
3-1. 学習に伴う女性側比率の変化
ここまでの実験では話者性を制御していないため、生成される声質はサンプリングによって変化します。 そこで、学習に伴う変化を確かめるために生成音声を聞いたところ、特定の報酬条件では女性的に聞こえる声が増える傾向が見られました。
この傾向を定量的に確認するため、話者埋め込みを用いて生成音声の話者性を分析しました。 話者埋め込みの抽出にはWavLM-Large ECAPA-TDNNを使用しました。 男性25話者と女性25話者から1話者あたり10発話、合計500発話の埋め込みを抽出し、男女それぞれ250発話の平均から二つの参照埋め込みを作成しました。 各生成音声の埋め込みと二つの参照埋め込みとのコサイン類似度を比較し、女性側の方が高かった生成の割合を、以下では 女性側比率 と呼びます。 3つの報酬条件について、学習に伴う女性側比率の変化を以下に示します。
| モデル | 報酬 | 女性側比率(学習前) | 女性側比率(320ステップ後) |
|---|---|---|---|
| 3Bモデル | CERのみ | 50.8% | 40.5% |
| 3Bモデル | CER + NLL | 51.5% | 93.5% |
| 3Bモデル | CER + NLL + LP | 50.7% | 99.5% |
| LLaSA | CERのみ | 61.9% | 5.3% |
| LLaSA | CER + NLL | 61.6% | 99.5% |
| LLaSA | CER + NLL + LP | 62.2% | 97.5% |
CERのみの条件では、女性側比率は両モデルで低下しました。 低下幅はモデルによって異なり、本シリーズの3Bモデルでは50.8%から40.5%となりました。 一方、NLLを含む条件では、両モデルともほとんどの生成が女性音声側の参照埋め込みへ近づきました。 LPによって音声長を抑えた場合にもこの傾向は残ったため、単に音声が長くなったことだけでは説明できません。 NLLはWhisperの確信度を改善する一方で、報酬を得やすい特定の音響的な傾向へ生成分布を狭めた可能性があります。
以下は、3BモデルへCER、NLL、LPを用いた場合の音声例です。 320ステップ後の音声は、学習前よりも高く女性的に聞こえる声質へ変化しています。
| 学習前 | 320ステップ後 |
|---|---|
3-2. Whisper報酬と話者性の関係
RL後に見られた女性側への偏りが、Whisperが自然な女性音声を一般的に認識しやすいことに由来する可能性を検証しました。 実際のRLに用いた入力文には、同じ文章を男女話者が読んだ自然音声の組がありません。 そこで、RLとは別の共通100文を複数の男女話者が読み上げた自然音声9,997件を用いました。 各文について女性話者と男性話者のCERとNLLの平均値を求め、男女間の差を比較しました。 また、モデルが使用する音声コーデックの影響を確認するため、LLaSAで使用するXCodec2と、本シリーズの3Bモデルで使用するNeuCodecで符号化・復号した音声についても同じ評価を行いました。
以下の差は「女性 − 男性」であり、負の値は女性音声の指標が低いことを表します。 95%信頼区間は文単位のbootstrapによって求めました。
| 音声 | CER差(95%信頼区間) | NLL差(95%信頼区間) |
|---|---|---|
| 元の自然音声 | +0.12pt(-0.08〜+0.31pt) | +0.015(+0.010〜+0.020) |
| XCodec2による符号化・復号後 | +0.17pt(-0.10〜+0.41pt) | +0.011(+0.006〜+0.017) |
| NeuCodecによる符号化・復号後 | +0.35pt(+0.08〜+0.61pt) | +0.016(+0.010〜+0.022) |
自然音声では、女性音声のCERとNLLが男性音声より低くなる傾向は見られませんでした。 音声コーデックで符号化・復号した場合にも、女性側が有利になる結果は得られませんでした。
一方、RLが最適化するのはモデル自身が生成した音声に対する報酬です。 そこで、生成音声におけるWhisper報酬と話者性の関係を調べました。 RLによる話者性の変化が生じる前の状態を調べるため、ここでは学習前モデルを使用しました。 学習前モデルへ実際のRLに用いた5,056文を入力し、各文につき8音声を生成しました。 生成音声を3-1と同じ方法で女性側と男性側に分類し、両方の候補が得られた文について、同じ文の生成候補間でCERとNLLを比較しました。
以下の差も「女性側 − 男性側」であり、95%信頼区間は文単位のbootstrapによって求めました。
| モデル | CER差(95%信頼区間) | NLL差(95%信頼区間) |
|---|---|---|
| 3Bモデル | -6.3pt(-11.3〜-1.7pt) | -0.049(-0.065〜-0.033) |
| LLaSA | -15.7pt(-27.1〜-4.5pt) | -0.095(-0.112〜-0.079) |
実際のRLに用いた入力文では、両モデルとも女性側に分類された生成音声のCERとNLLが低くなりました。 したがって、Whisperが自然な女性音声を一般的に有利に評価しているとは言えない一方、実際のRLにおけるモデルの生成範囲内では、女性側の候補が報酬を得やすい傾向がありました。
2章では、CERのみでもNLLを加えた場合と同程度にCERが改善し、NLLを加えると音声が長くなりました。 さらに本章では、NLLを含む条件で話者性の偏りも確認しました。 そこで、以降のRL実験では発話内容の報酬にはCERのみを用い、NLLとLPは使用しないことにしました。
4. 推論エンジンと数値精度の違い
今回のRLでは、学習中の音声生成を高速化するためにvLLMを使用し、パラメータの更新にはPyTorchのFully Sharded Data Parallel(FSDP)上のTransformers実装を使用しました。 同じモデルの重みを使っていても、生成側と学習側の実装や数値計算の違いによってトークン確率に差が生じることがあります。
通常の推論では、最終的な音声品質が同程度であれば、生成系列が完全に一致しなくても問題にならない場合があります。 しかしRLでは、vLLMが生成に用いる方策と学習側のTransformersモデルが計算する方策の確率差が大きいと、実際に系列を生成した方策とは異なる方策を最適化することになります。 そのため、生成側と学習側の不一致は方策勾配そのものに影響します。 この問題は 学習・推論間の不一致(training-inference mismatch) として認識されています5。 Qiらは、BF16からFP16へ変更することで不一致を縮小できると報告しています6。
本記事で比較するFP16とBF16はいずれも16ビットの浮動小数点形式ですが、指数部と仮数部へのビットの割り当てが異なります。 FP16は指数部が5ビット、仮数部が10ビットであるのに対し、BF16は指数部が8ビット、仮数部が7ビットです。 そのため、BF16はFP32とほぼ同じ値域を持つ一方、仮数部が短いため、FP16が表現できる範囲では値の間隔がFP16より粗くなります。 FP32、BF16、FP16のビット配置と、値域・表現密度の違いを以下に示します。


ここでは、次の二つを分けて調べました。
- 固定したチェックポイントで、推論エンジンと数値精度が生成軌跡やCERを変えるか
- 実際のRL中に、生成側と学習側が同じトークンへ計算する確率がどの程度異なるか
4-1. エンジンと数値精度による生成軌跡の違い
まず、固定したチェックポイントから生成するとき、推論エンジンと数値精度によって音声トークンの生成軌跡がどの程度変わるかを調べました。 これは、異なる計算エンジン間の不一致をFP16が縮小するというQiらの結果を、音声トークン生成で確認するオフラインの実験です。
3BモデルとLLaSAについて、それぞれ同じチェックポイント、トークン化済み入力、音声コーデックを使用し、通常文60文に対するTransformersとvLLM、FP16とBF16の組み合わせを比較しました。 サンプリングによるばらつきを除くため、ここでは最も確率の高いトークンを毎回選ぶgreedy生成を使用しています。
4-1-1. 生成軌跡はエンジンより数値精度の変更で早く分岐する
数値精度の比較ではFP16とBF16を、エンジンの比較ではTransformersとvLLMを比較しています。 「一致トークン数」は、生成途中で分岐した入力について、異なるトークンを選ぶまでに一致していたトークン数の中央値です。 3Bモデルの生成トークン数の中央値は322〜422でした。 LLaSAは全条件で中央値が最大値の1,024トークンに達しており、このgreedy生成自体が不安定でした。
| モデル | 変更した条件 | 固定した条件 | 完全一致率 | 一致トークン数 |
|---|---|---|---|---|
| 3Bモデル | FP16 / BF16 | Transformers | 0.0% | 6 |
| 3Bモデル | FP16 / BF16 | vLLM | 0.0% | 7 |
| 3Bモデル | Transformers / vLLM | FP16 | 20.0% | 56 |
| 3Bモデル | Transformers / vLLM | BF16 | 1.7% | 13 |
| LLaSA | FP16 / BF16 | Transformers | 5.0% | 10 |
| LLaSA | FP16 / BF16 | vLLM | 5.0% | 11 |
| LLaSA | Transformers / vLLM | FP16 | 61.7% | 39 |
| LLaSA | Transformers / vLLM | BF16 | 8.3% | 13 |
数値精度を変更した行では、3Bモデルで6〜7トークン、LLaSAで10〜11トークン後に分岐しました。 一方、推論エンジンを変更した行のうちFP16では、分岐した入力でも3Bモデルで56トークン、LLaSAで39トークンまで一致し、完全に一致した入力もありました。 BF16でエンジンを変更すると、一致トークン数は両モデルとも13まで短くなり、完全一致率も下がりました。 以上から、数値精度の変更はエンジンだけの変更より早く生成軌跡を分岐させ、BF16ではエンジン間の差も拡大する結果でした。
4-1-2. BF16ではlogitの同値が増え、3BモデルのCERも悪化する
各条件のlogit同値率とCERを以下に示します。 logit同値率は、全生成ステップのうち出力候補1位と2位のトークンのlogitが完全に同じだった割合です。 CERは各音声について計算した値の平均です。
| モデル | エンジン | 数値精度 | logit同値率 | CER ↓ |
|---|---|---|---|---|
| 3Bモデル | Transformers | FP16 | 1.77% | 27.8% |
| 3Bモデル | Transformers | BF16 | 12.64% | 47.9% |
| 3Bモデル | vLLM | FP16 | 1.69% | 31.5% |
| 3Bモデル | vLLM | BF16 | 12.43% | 39.4% |
| LLaSA | Transformers | FP16 | 0.12% | - |
| LLaSA | Transformers | BF16 | 1.16% | - |
| LLaSA | vLLM | FP16 | 0.17% | - |
| LLaSA | vLLM | BF16 | 1.10% | - |
logit同値率はエンジン間ではほぼ変わらず、FP16からBF16へ変更すると3Bモデルで約7倍、LLaSAで約7〜10倍に増えました。 一方、同値率の絶対値はモデル間で大きく異なり、3Bモデルの方がLLaSAより約10倍高い値でした。
3Bモデルでは、どちらのエンジンでもBF16でlogit同値率が増えると同時にCERも悪化しました。 同値となった位置ではargmaxで選ぶトークンが一意に定まらないため、BF16の丸めによって増えた同値が生成軌跡を変え、CER差につながった可能性があります。 一方、LLaSAは全条件で生成長の中央値が上限の1,024トークンに達したため、この実験のCERは比較に使用しませんでした。
4-1-3. 音声トークンではベースLLMよりlogitの同値が多い
高い同値率が音声トークンを生成するモデルに特有の傾向かを調べるため、ベーステキストLLMと比較しました。 LLaSAの出発点であるLlama 3.2 1B Instructと、3Bモデルの出発点であるLlama 3.2 3Bに加え、参考としてLlama 3.2 1B Baseも評価しました。 モデルごとに固定した正解系列を与え、同じ位置のlogitをFP16とBF16で比較しました。 テキストLLMには英語と日本語を各50文、音声合成モデルには正解音声の音声トークン列を使用しました。 結果を以下に示します。
| モデルと予測対象 | top-1 logit平均(FP16) | FP16同値率 | BF16同値率 |
|---|---|---|---|
| Llama 3.2 1B Base・テキスト | 20.72 | 0.61% | 3.94% |
| Llama 3.2 1B Instruct・テキスト | 18.44 | 0.41% | 3.14% |
| Llama 3.2 3B・テキスト | 18.72 | 0.34% | 3.02% |
| LLaSA・音声トークン | 14.17 | 2.22% | 15.83% |
| 3Bモデル・音声トークン | 66.97 | 9.07% | 49.96% |
今回比較した二つの音声合成モデルでは、どちらも対応するベーステキストLLMよりlogit同値率が高くなりました。 この増加はFP16でも見られ、BF16ではさらに増幅されました。 LLaSAではベーステキストLLMの約5倍、3Bモデルでは約17〜26倍となっており、音声トークン生成で同値率が高くなる傾向は3Bモデルだけの現象ではありません。
ベーステキストLLMではモデルサイズによらずtop-1 logitの平均と同値率が近い一方、3B音声合成モデルではtop-1 logitの平均が大きくなりました。 したがって、この差はベーステキストLLMが3Bモデルであることだけでは説明できません。 同値率が増えた要因はモデルによって異なります。 両方の音声合成モデルで上位候補間のmarginがベーステキストLLMより狭くなり、さらに3Bモデルではraw logitのスケールが大きくなったことで、BF16の影響がより強く現れたと考えられます。
3Bモデルの高い同値率は、予測分布が全般に平坦だったためではありません。 正解音声のトークン列を与えた分析では、3BモデルはLLaSAと比べてFP32でのNLLが低く、上位二つのlogitの差も大きい結果でした。 一方、top-1 logitの平均はLLaSAの約5倍で、この値域ではBF16で隣り合う表現可能な値の間隔が広く、近い値を持つ上位のlogitが同じ値へ丸められやすい状態でした。 FP16では同じ値域の表現間隔がBF16より細かいため、同値率は低くなりました。 FP32の上位二つのlogitだけをBF16へ丸めたときの予測同値率は、実際のBF16推論における同値率とほぼ一致しました。 この結果から、raw logitのスケールが大きく、BF16の丸め幅が粗くなったことが、3Bモデルで同値率が高かった主要因の一つである可能性があります。
今回の二つの音声合成モデルでは、FP16とBF16のどちらでもベーステキストLLMよりlogit同値率が高くなりました。 したがって、LLM-TTSでは使用する数値精度にかかわらずlogitの同値に注意が必要であり、特にBF16ではその増加が顕著でした。 ただし、高い同値率が音声品質の低さを直接意味するわけではありません。 同値率は、数値精度や推論実装による生成軌跡の変わりやすさを確認する診断指標として利用できます。
4-2. RL中の不一致とFP16の採用
次に、実際のRL中に生成側と学習側が計算する確率の差を調べました。 RLでは、vLLMが音声トークンを生成したときの対数確率を記録します。 その後、学習側のTransformersモデルは生成された系列を入力して同じトークンの対数確率を再計算し、方策勾配の損失を求めます。 以下では、この二つの対数確率の差を生成・学習間の不一致として測定します。
3BモデルとLLaSAについて、CERのみを報酬としてFP16またはBF16で320ステップ学習しました。 表の「対数確率差」は、実際に生成された各トークンについて、vLLMが生成時に記録した値と学習側のTransformersモデルが再計算した値の絶対差を平均したものです。 0に近いほど、生成側と学習側の計算が一致しています。
見やすくするため、対数確率差は10⁻³単位で示します。
| モデル | 数値精度 | 対数確率差(10⁻³単位)↓ | 学習後CER ↓ |
|---|---|---|---|
| 3Bモデル | FP16 | 8.63 | 3.5% |
| 3Bモデル | BF16 | 72.47 | 3.4% |
| LLaSA | FP16 | 3.77 | 21.3% |
| LLaSA | BF16 | 31.30 | 21.6% |
両モデルとも、BF16では生成・学習間の対数確率差がFP16の約8倍に増えました。 一方、学習後CERは各モデルのFP16とBF16で近く、BF16による明確な悪化は見られませんでした。
以上の結果を踏まえ、以降のRL学習と学習後の推論にはFP16を採用しました。理由は二つあります。 一つ目は、FP16ではRL中の生成側と学習側の対数確率差が小さく、方策勾配のずれを抑えられるためです。 二つ目は、学習中に最適化する方策と学習後に利用する方策の数値精度を揃えるためです。 固定した3BモデルではFP16で推論した方がCERが低かったため、学習後の推論にはFP16を採用することに決定し、それに合わせて学習にもFP16を使用しました。
5. ゼロショットTTSの学習
ここまでは、話者情報を入力せず、テキストだけから音声を生成する設定を扱いました。 ここからは実験条件を変え、テキストに加えて参照音声を入力し、その話者性を引き継いだ音声を生成するゼロショットTTSを扱います。 ゼロショットTTSでは、話者ごとの追加学習を行わず、参照音声で話している人物の声質を保ったまま、参照音声とは異なる文章を読み上げます。 モデルには参照音声、その書き起こし、読み上げる対象テキストを入力し、対象テキストに対応する音声を生成させます。
ここまでの学習で得た報酬設計や数値精度に関する知見を基に、本シリーズの3BモデルをゼロショットTTS向けに教師ありファインチューニング(Supervised Fine-Tuning; SFT)とRLの二段階で学習しました。 SFTでこの入力形式から目的の音声を生成できるようにした後、RLでは発話内容を評価するCERと、生成音声が参照音声の話者性を引き継いでいるかを評価する話者類似度を報酬に使用しました。
5-1. 日本語TTSベンチマークによる評価
ゼロショットTTSの評価には、系列整合性評価に特化した高難度日本語TTSベンチマークJ-HARD-TTS-Eval(以下、J-HARD)を使用しました7。 J-HARDには、短い入力(Short)、繰り返しを含む入力(Repetition)、韻を含む入力(Rhyme)、前の発話に続く文章を読む入力(Continuation)の4カテゴリがあります。 各サンプルには読み上げる対象テキストに加え、参照音声とその書き起こしが付属するため、発話内容と参照話者の再現度を同時に評価できます。
生成音声の発話内容はCER、話者性は生成音声と参照音声の話者埋め込み間のコサイン類似度で評価しました。 Shortは対象テキストが極端に短く、少数の挿入誤りでもCERが大きくなります。 また、短い生成音声から得た話者埋め込みは不安定だったため、Shortの話者類似度は使用しませんでした。
5-2. 音声コーデックが話者類似度に与える影響
ゼロショットTTSの結果を見る前に、評価の前提として音声コーデックが話者類似度へ与える影響を確認しました。 LLM-TTSモデルの出力は、必ず音声コーデックを通って波形になります。 話者類似度が低い場合には、原因がモデルの話者条件付けにあるのか、音声コーデックによる情報損失にあるのかを分ける必要があります。
そこで、元音声を音声コーデックで符号化し、そのトークンをそのまま復号するコーデック再合成評価を行いました。 この評価にはTTSモデルの生成が含まれないため、音声コーデック単体でどの程度話者情報が保たれるかを測ることができます。
J-HARDの参照音声200件を使用し、J-HARDの評価と同じWavLM-Large ECAPA-TDNNでコーデック再合成前後の話者類似度を測定しました。
| 音声コーデック | 話者類似度 ↑ |
|---|---|
| 3Bモデルで使用 | 0.738 |
| 比較対象のTTSモデルで使用 | 0.952 |
同一音声ごとの差は平均0.214で、200件すべてで比較対象の音声コーデックの値が高くなりました。 この結果から、3Bモデル側では、音声コーデックを通すだけで話者埋め込みが大きく移動することが分かります。
コーデック再合成後の値は、現在の評価系で音声コーデックだけによって話者類似度がどの程度変わるかを示しています。 同じ音声コーデックを用いるTTSモデルの話者類似度について、実用上の上限を見積もるための参照値になります。 音声コーデックが異なるモデルの話者類似度をそのまま比較すると、TTSモデルの話者模倣能力と、音声コーデックの情報保持能力を混同してしまいます。
一方、コーデック再合成前後の音声を実際に聞くと、音質にはわずかな変化があるものの、同じ話者に聞こえました。 以下は、話者類似度が0.73となった例です。
| 元音声 | NeuCodecによるコーデック再合成後 |
|---|---|
このように、人間が聞いた話者性はほとんど変わらなくても、音声コーデックを通すだけで話者埋め込みは移動します。 話者類似度はモデル間の比較に便利ですが、値の差をそのまま知覚上の話者差と解釈せず、音声コーデックの影響と実際の聴感を併せて確認する必要があります。
以降の比較では同じ音声コーデックを使用し、ベースモデルからSFT後、RL後への変化を評価します。
5-3. SFT規模の検討
ゼロショットTTSに用いるSFT条件を検討するため、SFTを行わないベースモデル、約656時間の対象音声でSFTしたモデル、約4,002時間でSFTしたモデルを比較しました。 それぞれをRLの出発点として、同じ条件で320ステップ学習し、Shortを除くJ-HARDの3カテゴリについて、CERが30%以下の生成音声の話者類似度を集計しました。
| RL前のモデル | Repetition | Rhyme | Continuation | 3カテゴリ平均 |
|---|---|---|---|---|
| ベースモデル | 0.507 | 0.564 | 0.587 | 0.553 |
| SFT 約656時間 | 0.522 | 0.587 | 0.597 | 0.568 |
| SFT 約4,002時間 | 0.546 | 0.619 | 0.607 | 0.591 |
この結果から、ゼロショットTTSの話者類似度を高めるには、RLだけでなく、その前段のSFTで話者条件付けの基礎を作ることが重要だと考えられます。
次節では、最も高い話者類似度となった約4,002時間のSFTモデルについて、SFTとRLによる変化を詳しく見ます。
5-4. SFTとRLによる変化
ベースモデル、SFT後、さらにCERと話者類似度を報酬として320ステップのRLを行った後を比較しました。 J-HARDにおける平均CERは次のように変化しました。
| モデル | Short | Repetition | Rhyme | Continuation |
|---|---|---|---|---|
| ベースモデル | 75.9% | 58.4% | 20.7% | 30.1% |
| SFT後 | 174.2% | 40.4% | 2.3% | 9.0% |
| RL後 | 9.0% | 23.6% | 0.9% | 0.6% |
SFTによってRepetition、Rhyme、ContinuationのCERは改善した一方、Shortでは悪化しました。 RL後には、SFT後と比べて4カテゴリすべてのCERが改善し、特にShortとContinuationで改善幅が大きくなりました。
話者類似度は、発話内容が大きく崩れた音声を除くため、CERが30%以下の生成音声について集計しました。
| モデル | Repetition | Rhyme | Continuation |
|---|---|---|---|
| ベースモデル | 0.315 | 0.460 | 0.384 |
| SFT後 | 0.451 | 0.528 | 0.493 |
| RL後 | 0.546 | 0.619 | 0.607 |
SFTとRLを通じて、話者類似度は3カテゴリすべてで段階的に改善しました。 発話内容と話者類似度を同時に改善できた一方、RepetitionのCERはRL後も23.6%と他のカテゴリより高く、同じフレーズを生成し続ける失敗が課題として残りました。
5-5. ゼロショットTTS実験のまとめ
ゼロショットTTSでは、SFTによって参照音声から話者性を引き継ぐ初期モデルを作り、その後のRLによって発話内容と話者類似度をさらに改善できました。 一方、音声コーデックを通すだけでも自動評価の話者類似度は変化するため、異なる音声コーデックを使用するモデル間では注意して比較する必要があります。 J-HARDのRepetitionではRL後にも生成の失敗が残り、繰り返しを含む入力への対応は今後の課題として残りました。
6. まとめ
本記事では、日本語音声基盤モデルへ強化学習を適用する仕組みと、報酬設計、数値精度、音声コーデックが生成へ与える影響を紹介しました。 得られた結果は次の通りです。
- 事前学習済みモデルへのRL:3BモデルではCERを報酬に用いることで発話内容の正しさが改善した。同様の改善はLLaSAを用いた予備実験でも確認できた
- Whisper NLL:NLL自体は改善したが、CERへの追加効果は見られず、音声が長くなった。この傾向はLLaSAでも再現し、LPを組み合わせることで抑えられた
- 話者性の変化:NLLを含む条件では女性音声側の参照埋め込みへ偏った。自然音声ではWhisperの明確な男女差は見られなかったが、学習前モデルの生成候補では女性側のCERとNLLが良かった
- 数値精度:FP16はRL中の学習側と生成側の確率差を小さくした。また、学習時と学習後の推論で数値精度を揃えるため、主な学習設定にFP16を採用した
- 音声コーデック:コーデック再合成前後の音声は同じ話者に聞こえたが、自動評価の話者類似度は低下した。話者類似度は聴感と併せて解釈する必要がある
- ゼロショットTTS:約4,002時間の対象音声でSFTしたモデルへRLを行い、J-HARDのCERと話者類似度をともに改善した
関連記事
- 概要編:日本語音声基盤モデルをスケーリングさせ、TTS性能を見てみる
- 前処理編:音声データを処理する前処理パイプラインと実行基盤を作った話
- 事前学習編:日本語音声基盤モデルの事前学習
- 事後学習編:この記事
参考文献
-
verl Project, verl: Volcano Engine Reinforcement Learning for LLMs. ↩︎
-
Chang Liu et al., Group Relative Policy Optimization for Text-to-Speech with Large Language Models, 2025. ↩︎
-
Zhen Ye et al., LLaSA: Scaling Train-Time and Inference-Time Compute for LLaMA-based Speech Synthesis, 2025. ↩︎
-
Changfeng Gao et al., Explore the Reinforcement Learning for the LLM based ASR and TTS system, 2025. ↩︎
-
Feng Yao et al., Your Efficient RL Framework Secretly Brings You Off-Policy RL Training, 2025; Jiacai Liu et al., When Speed Kills Stability: Demystifying RL Collapse from the Training-Inference Mismatch, 2025. ↩︎
-
Penghui Qi et al., Defeating the Training-Inference Mismatch via FP16, 2025. ↩︎
-
Shuhei Imai et al., A Study on a High-Difficulty Japanese Text-to-Speech Corpus Specialized for Sequence Consistency Evaluation, Proc. ASJ, 2025. Dataset: Parakeet-Inc/J-HARD-TTS-Eval. ↩︎