Skip to content
Michii edited this page Oct 10, 2026 · 1 revision

LoRA 学習ガイド

日本語ホーム · English

Qwen3-TTS Base に声の LoRA アダプターを学習させ、声を保ちながら感情・読み方を指定します。組み込みの声を使うだけなら学習は不要です。

学習率は 1e-6 から始め、5e-6 に上げないでください。 本プロジェクトは高い学習率で声が止まらなくなる問題を報告しています。loss だけでは分からず、生成音声の試聴・停止検査が必要です。正本の設定と根拠(英語)、RECIPESを参照してください。

手順

  1. 文字起こし付き WAV のデータセットを作成。
  2. 学習パラメーターを設定。
  3. Start Training。GPU を専有する別プロセスで実行し、アプリは先に TTS モデルをアンロード。
  4. Trained Models で音声を生成して試聴。
  5. Voices で人物に割り当て。

データセット

Dataset Builder で合成音声を作る

Build New Dataset または Dataset を開きます。Dataset Builderを参照してください。声の基本説明を固定し、行の感情を変えて音声を作ります。

最小の目安は感情を変えた 6 サンプル、通常は 15–20 程度から始められます。短い感嘆、さまざまな感情の一文、複数文の長い朗読を混ぜます。平静な音声だけでは感情指示に反応しにくくなります。上流の小規模合成データの目安と、180–200 クリップを使うライブラリー向けの設定は別の条件です。

録音を ZIP でアップロードする

dataset.zip
├── sample_001.wav
├── sample_002.wav
├── ...
├── ref.wav
└── metadata.jsonl

metadata.jsonl は 1 行に 1 JSON オブジェクトです。

{"audio_filepath": "sample_001.wav", "text": "The transcript of this sample.", "ref_audio": "ref.wav"}
{"audio_filepath": "sample_002.wav", "text": "Another transcript.", "ref_audio": "ref.wav"}

WAV は 24 kHz モノラル推奨で、他のサンプルレートは自動変換します。ノイズのない録音を使い、1 データセットに 1 話者を入れます。30 秒を超えるクリップはスキップします。文字起こしは音声に正確に合わせてください。

全サンプルで同じ ref_audio を使うことが推奨されます。指定がなければデータセット内の ref.wav、次に最初の学習サンプルを使います。参照は話者埋め込みを作るので、一貫させます。

実録音の metadata.jsonl に emotion フィールドはありません。感情は録音に含まれます。Dataset Builder の Emotion も音声を作る指示であり、学習ラベルではありません。録音にも感情の幅を含めてください。

Voice Lab

複数の声には Voice Lab を使えます。Preparer で朗読と文章を対応付け、重複除去、一括学習、プロファイル作成、命名へ進みます。README のツール説明とリンク先のガイドを参照してください。

保存形式

lora_datasets/{name}/
├── metadata.jsonl
├── ref.wav
├── ref_text.txt
└── sample_000.wav ...

ref_text.txt は ref.wav の正確な文字起こしです。

学習設定

設定 Training の既定値 意味
Epochs 5 データ全体を学習する回数。多すぎると過学習
Learning rate 1e-6 重みの更新幅。5e-6 を使わない
LoRA rank 32 アダプターの容量
LoRA alpha 128 scale は alpha ÷ rank(32 なら 4、64 なら 2)
Batch size 1 ステップごとのサンプル数。1 を維持
Gradient accumulation 8 メモリーを増やさず複数ステップの勾配を蓄積
Language English データの言語に必ず合わせる。日本語なら Japanese

ライブラリー向けの正本の設定は 6 epochs、1e-6、rank 64、alpha 128、180–200 clips。評価用の設定は 6 epochs、1e-6、rank 32、alpha 128、200 clips、seed 1234 です。UI の既定値と混同しないでください。

rank 32 は約 56 MB、rank 64 は約 111 MB。小さいデータなら 32 を出発点にし、100 以上のサンプルがある場合に 64 を検討します。容量を増やすとノイズまで記憶することがあります。loss が良くても音声が悪い場合は、rank を下げることを先に試します。

loss と実際の声

良い loss は良い声の証明ではありません。 上流の小規模データでは 4.1–4.2 が良好、低すぎると過学習・不明瞭な音声、高すぎると声や表現を十分に学べない傾向がありました。この範囲は目安で、実行ごとの差もあります。歴史的な表(英語)を参照してください。古い 5e-6 以上の設定は推奨されません。

開始後のログは epoch、loss、学習率、残り時間を表示します。最小 loss のチェックポイントが保持され、次の音声生成時に TTS が再ロードされます。loss の最小点が音声品質の最良点とは限らないため、必ず試聴します。

試聴・採用

Trained Models の Generate で自分の文章と指示を試します。比較・ブラインド評価で現行の声と聴き比べ、採用時は旧版と記録を残してロールバックできるようにします。採用前の stop check(identity gate)が、話し続けて止まらない声を検出します。

良いデータの目安

平静、喜び、怒り、悲しみ、ささやき、叫びなどを含めます。長さは 1–3 秒の短い一言、4–8 秒の一文、15–20 秒の複数文、20–30 秒の朗読を混ぜます。短い行は停止を、長い行は文間のつながりを学ぶ助けになります。

合成する参照サンプルでは、後で使うナレーション指示を付けず 空の instruction で生成することが推奨されています。参照用 seed を固定すると、再生成時の話者埋め込みを保ちやすくなります。

実録音は自然な声の特徴、合成データは感情や品質の調整に向きます。どちらでも、明瞭さ、1 話者、正確な文字起こし、感情の幅を確認してください。

他の言語

アダプターは学習言語のアクセントも学びます。話者ごと・言語ごとに別のアダプターを学習し、Language をデータと一致させます。英語、中国語、韓国語、日本語、フランス語、ドイツ語、イタリア語、ポルトガル語、ロシア語、スペイン語に対応します。

よくある問題

問題 対処
loss が 10 より高いまま WAV、文字起こし、参照を確認。学習率を上げて押し下げない
止まらない・新しい文章が不明瞭 1e-6 で再学習し、epochs を減らす。短い一言も追加
明瞭だが声が似ない epochs、rank、共通の ref_audio を確認
単調 感情を増やす。rank 8–16 も試す
早口になる 参照を空の instruction で再生成
参照の不一致 ref_text.txt を ref.wav に正確に合わせる
他言語で意図しないアクセント Language と学習データを一致させる

上流の全設定表と実験観察は英語ガイドに残しています。日本語版は実際に使う手順と現在の注意点をまとめています。

Clone this wiki locally