0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

音声モデルを量産して分かった18のこと — 拡散TTSの声設計から、学習コーパス製造、品質ゲートの落とし穴まで

0
Posted at

📝 この記事は forge.workstyle.tech に掲載した記事の転載です。

キャプション1行から声を設計し、学習コーパスを自動で作り、役割専用ボイス12本(ナレーター/カウンセラー/営業/プレゼンター/オペレーター/MC の男女)を全数検収に通すまでの記録です。約1か月の実作業で踏んだ失敗を、18本の記事に分けて書きました。この記事はその目次です。

先に結論

声の設計と、声の製造と、声の運用は、別の技術で別の失敗をする。

  • 設計は拡散TTS。キャプションと乱数種で声が決まり、完全に再現する
  • 製造はコーパス生成が本体。品質ゲートの設計が、そのまま声の品質になる
  • 運用は軽量な学習済みモデル。拡散TTSは会話には遅すぎる(同一GPUで2.5倍)

そして最大の教訓は一点に尽きます。品質ゲートは「あること」と「効いていること」が別。この18本のうち6本は、ゲートが存在したのに効いていなかった話です。

読む順

設計 → 製造 → 検査 → 運用 の順に並べています。上から読むと、1本の声が生まれて工場に乗るまでを辿れます。

第1章 設計 — 声をどう決めるか

  1. 音質で選んだTTSが、会話には遅すぎた
    RTF実測2.5倍差。「声の設計は拡散TTS、喋らせるのは学習済みモデル」という二段構えに落ち着くまで。
  2. 声をガチャで引く
    キャプション+乱数種で声は決まる。設計値を台帳に残せば、モデルを失っても声は焼き直せる。
  3. 「ナレーターっぽい声」を24候補から機械に選ばせる
    全候補を聴くのは続かない。話速・抑揚・安定性を自動計測して、上位だけ聴く。指標の限界で男性候補が全滅した話も。

第2章 製造 — コーパスの品質が、そのまま声になる

  1. 品質ゲートを厳しくするほど、棒読みが生き残る
    感情つきコーパスが全部棒読みになった原因は、品質ゲートそのものだった。このシリーズの中心にある話
  2. 学習後に話速は変えられない
    語尾の癖も話速もコーパスに焼き付く。合成時のパラメータでは戻せない。
  3. 生成するたび「録音場所」が変わるTTS
    同じモデル・同じ話者でも、クリップごとに周波数特性が違う。揃えないとスタイル切り替えで音質が飛ぶ。
  4. クリップ1本の粗さが、スタイル全体を嗄れさせる
    5本中1本が粗いと、そのスタイル全部が嗄れる。平均への希釈は効かない。

第3章 検査 — ゲートは「あること」と「効いていること」が別

  1. AIが「こんにちわー」と伸ばす癖は、どこで身についたのか
    検証がかな正規化で長音を捨てるため、原理的に検出できなかった欠陥。
  2. 「少々」が「しょも」になる
    モデルもパラメータも正常で、入力テキストだけが壊れていた。記号の除去リストが「々」「〆」「髙」を落としていた。
  3. ハルシネーション対策のコードが、ハルシネーションの時だけ動かなかった
    1行のバグで、ガードが「必要な場面でだけ無効」になっていた。
  4. 品質ゲートが許した「3文字」が、モデルの口癖になった
    ゲートを通り抜けたサイズと、モデルが再現した音のサイズが一致していた。
  5. 治せる欠陥で候補を落としていた
    その指標は、製品の性質を測っているのか、工程の状態を測っているのか。
  6. 文字起こしでは見つからない欠陥がある
    STTだけの検査は、無音を挟んだ0.1秒の付加音を全部見落とす。波形包絡で獲る。

第4章 運用 — 工場として回す

  1. 70分かけた学習素材が、ネットワークの一瞬の瞬きで消えた
    接続断1回で205本がやり直し。リトライの無い箇所の見つけ方と、冪等なレジューム設計。
  2. "ja" を "JP" と書いて喃語モデルができるまで
    言語コードの大文字小文字で喃語モデルが完走する。踏んだ罠のカタログ。
  3. 登録経路が4つ、管理画面が0
    資産カタログが管理不能になるまで。棚卸しAPIを作って初めて全体が見えた。
  4. デプロイのたびに互いの成果を消していた
    並行する2つの作業系が、順番に相手の変更を本番から消した。ブランチ確認では防げず、稼働Podとのsha256突合で初めて止まった。
  5. 測れていないものを閾値で追い込むと、必ず失敗する
    指標の0件を「対象が無い証拠」と読み、閾値を絞り続ける。そもそも観測できていないことに最後まで気づかない。

時間がない人向けの3本

  • 品質ゲートの設計に興味があるなら → 4番(選択バイアス)→ 11番(3文字)→ 13番(STTで見えない欠陥)。この3本で「ゲートがあるのに効かない」の型が一通り揃います。
  • これから音声モデルを学習させるなら → 15番(罠カタログ)→ 9番(入力が壊れる)→ 5番(話体はコーパスに焼き付く)。
  • MLOps・製造の話として読むなら → 12番(工程の欠陥と製品の性質)→ 14番(冪等なレジューム)→ 18番(測れていないものを追わない)。

この18本に共通していること

失敗の大半は、モデルでもGPUでもなく、検査の設計で起きていました。ゲートが緩すぎたのではなく、ゲートが測っていないものが製品に焼き付く。しかも音声は、テキストと違って「通ってしまった欠陥」が耳で聞くまで分かりません。

だから最終的に効いたのは、賢いモデルを探すことではなく、何を測っていないかを一つずつ潰すことでした。

知見の元になった作業ノートは 拡散TTSから実用ボイスを量産する製造パイプライン にまとめてあります。


元記事: https://forge.workstyle.tech/blog/voice-model-production-pipeline-series/?utm_source=qiita&utm_medium=crosspost&utm_campaign=voice-model-production-pipeline-series

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?