自分の声で学習させたAI音声キャラに、「囁き声(こそこそ声)」を足したい——そう思って手を動かした結果、2回派手に失敗して、3つ目でようやく成功しました。同じことをやりたい人がハマらないように、失敗の中身ごと残しておきます。
使っているのは Style-Bert-VITS2(SBV2)系のボイスクローンですが、考え方はほかのTTSでも共通します。
方法①:DSP後処理で加工する → 失敗
まず思いつくのが、出来上がった音声を後処理でいじる方法です。低い周波数を削る、息っぽいノイズを足す、ピッチを下げる……。
結果は全滅でした。電子音・金属音が乗る、音が劣化するだけで、囁きにはなりません。ここで得た一番大事な学びがこれです。
> 囁き ≠ 低い声。ピッチを下げても囁きにはならない。
囁きは「声の高さ」ではなく「声質」そのものが違う現象なので、出来上がった波形をいじる後処理では原理的に作れませんでした。ついでに、ノイズ除去(デノイザ)を通すと囁きは壊れます。囁きの成分がノイズに近いスペクトルなので、ノイズと一緒に消されてしまうためです。
方法②:囁き音声を追加学習(fine-tune)する → 失敗
次に、囁きの音声を十数分用意して追加学習させました。これも失敗。原因は2つでした。
- 初期化の罠:追加学習を「どのモデルから始めるか」の設定を1か所間違えると、汎用のベースモデルから初期化されてしまい、せっかく学習した本人の声がゼロからやり直しになっていた。
- 普段の声が劣化:新しく学習し直した判別器の影響で、囁き以前に普段の声まで下手になった。
ここでの教訓:
> fine-tune は「何から初期化するか」が全て。設定ファイルや配置の1行で、別人になる。
追加学習は強力ですが、始点を間違えると「囁きも直らず、普段の声も悪化」という最悪の二重失敗になります。バックアップ必須です。
方法③:スタイルとして足す(style-only)→ 成功
最終的にうまくいったのは、モデルの重みは一切変えず、囁き音声の「話者スタイル(埋め込みの平均)」だけを追加する方法でした。
- 学習し直さない → 時間がかからない
- 重みを触らない → 普段の声への影響がゼロ
- 囁きを「スタイル」として選べるようになる
2キャラでこの方法が完全に成功し、普段の声はまったく劣化しませんでした。
(※学習データにそもそも囁きが1秒も入っていないキャラでは、スタイルだけでは破綻します。その場合は「本人の実音源から囁きの断片を切り出して、必要な箇所に貼る」という別アプローチに切り替えました。これはまた別記事で。)
まとめ:まず試すべきは「style-only」
- 囁き=声質の問題。ピッチ加工やDSP後処理では作れない
- デノイザは囁きを壊す
- fine-tune は初期化設定が命。1行間違えると別人になる(必ずバックアップ)
- 最安全・最速は style-only(学習不要・普段の声が不変)=ここから試すべき
AIキャラに感情や声色を足したいとき、いきなり追加学習に飛び込むと火傷します。まず重みを触らない方法から——これが2回の失敗から得た結論でした。
この記事を書いた人 / 作っているもの
この記事のAIキャラも、Claude Codeで組んだ9役分業のAIチームの一部として毎日動いています(同じ仕組みで定期自動タスク28種・SNS自動投稿を月119件運用中)。その“仕組みの全体像”の実録をこのブログに書いています。まとめて手に取れる形にしたのが下記です。
- AIチーム設計図キット — Claude Codeで9人体制のAIチームを組むための設計図一式
- 📖 note版(読み物・図解つき): https://note.com/kumura_ailab/n/n6161c3e2cda8
- 📦 BOOTH版(実ファイル一式・zip): https://kumura-ailab.booth.pm/items/8643701
- 他の実録記事: AI相棒ラボ トップ
