[P] LoRA経由でChatterbox TTSに8つのインド言語を追加 — パラメータ1.4%、フォネーム・エンジニアリングなし [P]

Reddit r/MachineLearning / 2026/4/15

💬 オピニオンSignals & Early TrendsIdeas & Deep AnalysisModels & Research

要点

  • 開発者がChatterbox-Multilingual TTSをファインチューニングし、従来のG2P(グラフェムからフォネームへの)パイプラインやフォネーム・エンジニアリングを使わずに、追加の8つのインド言語(テルグ語、カンナダ語、ベンガル語、タミル語、マラヤーラム語、マラーティー語、グジャラート語、ヒンディー語)を導入した。
  • この手法は、モデルのBPEトークナイザにインド文字(Indic-script)のグラフェムを拡張し、「ブラーミック・ウォームスタート」により新しい文字埋め込みを、音韻的に類似したデーヴァナーガリー文字から初期化する。
  • LoRAアダプタは約7.8Mパラメータのみで学習(544Mモデルの約1.4%)し、残りのTTSスタック(ボコーダ、話者エンコーダ、音声トークナイザ)は凍結したままとした。
  • ゼロからではなく、段階的かつ重み付けした言語学習(ヒンディー語のみから開始して順に追加)により、壊滅的忘却を抑え、追加言語導入後のヒンディー語の文字誤り率(CER)が改善したと報告されている。
  • 音声サンプルと、その結果得られたモデルが公開されており、CERは各言語100の保持サンプルに対してWhisper large-v3 ASRで評価された。
  • 最も大きな精度改善はヒンディー語および他のいくつかの言語で見られる一方、マラヤーラム語は報告結果においてCERが特に高い。

TL;DR:
Chatterbox-Multilingual(Resemble AIのオープンソースTTS)を微調整し、LoRAアダプタ+トークナイザ拡張によってテルグ語、カンナダ語、ベンガル語、タミル語、マラヤーラム語、マラーティー語、グジャラート語、ヒンディー語をサポート。学習したのは7.8M / 544Mパラメータのみ。モデル+音声サンプルを提供。

---

問題

Chatterbox-Multilingualは23言語をゼロショットのボイス・クローニングでサポートしていますが、ドラヴィダ語(テルグ語、カンナダ語、タミル語、マラヤーラム語)がなく、インド・アーリア語系はヒンディー語以外のカバー範囲が限られています。つまり、表現のない500M+の話者がいます。

従来のアプローチは次のようになります。各言語ごとにG2P(グラフェムからフォノームへの変換)を作り、モデル全体を再学習し、それに数か月を費やします。ヒンディー語のシュワ削除だけでも未解決の問題です。ベンガル語のG2Pは特に難しいことで有名です。

アプローチ

そこで、フォノームの代わりにグラフェムのレベルで行いました。

  1. Indic文字でBPEトークナイザを拡張:
    (2454 → 2871トークン)。テルグ語、カンナダ語、ベンガル語、タミル語、マラヤーラム語、グジャラート語のグラフェムを追加し、既存のデーヴァナーガリーに並べました。

ブラーミン系のウォームスタート
— 音韻的に同等なデーヴァナーガリー文字から、新しい文字埋め込みを初期化。テルグ語の「క」(ka)は、ヒンディー語の「क」(ka)から初期化されます。これは、ブラーミン系の文字体系が音声的な構造を共有しているためです——同じ音で、異なるグリフです。モデルはランダムノイズではなく、妥当な事前分布からスタートできます。

  1. T3バックボーンにLoRA
    — LlamaベースのT3モジュールの q/k/v/o 投影に対してランク32のアダプタを適用。学習可能パラメータは約7.8M(全体544Mの1.4%)。それ以外はすべて固定:ボコーダ(S3Gen)、話者エンコーダ、音声トークナイザ。

  2. 言語のインクリメンタル学習
    — 重み付きサンプリングで、言語を1つずつ追加。まずヒンディー語のみ(パイプラインを検証)で開始し、その後テルグ語+ヒンディー語、カンナダ語+テルグ語+ヒンディー語、最後に8つの言語すべて。これにより致命的な忘却を防ぎます——新しい7言語を追加した後で、ヒンディー語のCERが実際に改善しました。

結果

Whisper large-v3 ASRで、言語ごとに100個のホールドアウトサンプルを用いたCER(Character Error Rate):

言語 CER
ヒンディー語 0.1058 0.29のベースラインから改善
カンナダ語 0.1434
タミル語 0.1608
マラーティー語 0.1976
グジャラート語 0.2377
ベンガル語 0.2450
テルグ語 0.2853
マラヤーラム語 0.8593 実験的 — より多くのデータが必要

マラヤーラム語は大きく苦戦しています。おそらくより多くの学習データ、または専用の学習ラウンドが必要です。他の言語はすべて、判読可能で自然な響きの音声を生成します。

うまくいかなかった点/制限

-
マラヤーラム語
— CER 0.86は実質的に聞き取れません。可能性として、文字体系の複雑さ(多くのコンジャンクト)やデータ不足が挙げられます。
-
MOS評価はまだ
— CERは、単語が正しいことは示しますが、自然に聞こえることを保証しません。主観評価はまだ実施中です。
-
言語ごとに話者2人
— IndicTTSから男性+女性。すべての声のタイプに一般化することはできません。
-
コードミキシングなし
— ヒンディー+英語が混ざった文は、まだ特別に学習していません。

リンク

-
モデル+音声サンプル:
https://huggingface.co/reenigne314/chatterbox-indic-lora
-
記事(全文の解説):
https://theatomsofai.substack.com/p/teaching-an-ai-to-speak-indian-languages
-
ベースモデル:
[ResembleAI/chatterbox](
https://github.com/resemble-ai/chatterbox
)(MITライセンス)

クイックスタート

```python
from chatterbox.mtl_tts import ChatterboxMultilingualTTS

model = ChatterboxMultilingualTTS.from_indic_lora(device="cuda", speaker="te_female")
wav = model.generate("నమస్కారం, మీరు ఎలా ఉన్నారు?", language_id="te")
```

学習の詳細

- ハードウェア:1x RTX PRO 6000 Blackwell(96GB)
- データ:SPRINGLab IndicTTS + ai4bharat Rasa
- 学習ラウンド6回、インクリメンタルに言語を追加
- LoRA rank 32、alpha 64、bf16

パート2(コード付きの技術的な深掘り)を今週公開予定です。このアプローチについての質問には喜んで答えます。

submitted by /u/Icy_Gas8807
[link] [comments]