Skip to main content
voice-ai

声質変換の遅延を減らす7つの方法と、その代償

ボイスチェンジャーの遅れを減らすには、どこに手を入れればいいのか。声質変換の遅延を削る7つの方法と、それぞれ何と引き換えになるのかを、専門知識なしで読める形で整理します。

「遅延を減らしたいんですが、どうすればいいですか」。では、どこに手を入れましょうか——という話をします。

方法は大きく7つ。ただしどれもタダでは手に入りません。遅れを減らせば、たいてい何かと引き換えになります。ここでは、効き方と代償をセットで見ていきます。

そもそも遅れがどこで生まれるのかは ボイスチェンジャーの遅延はどこで生まれるのか をご覧ください。

1. 音をためる量を減らす

7つのうち、いちばん効くのがここです。

声を変えるプログラムは、マイクの音をある程度ためてから処理します。バス停で人が集まるのを待つようなものですね。この待つ量を減らせば、遅れは直接的に減る。ある研究では約0.16秒ためており、それが遅れ全体(約0.19秒)の大半を占めていました。ここを削れば、そのぶんがそのまま効いてきます。

代償は音の品質です。 少ない材料で判断することになるので、変換の精度が落ちる。ためる量を利用者が調整できるソフトもあり、この量を減らすと遅れは減るが品質は落ちる、というトレードオフとして案内されています。

ためる量をあとから変えられるように作っておく方法もあります。ある研究では、学習の段階でわざといろいろな量を試させることで、1つのプログラムのまま「品質重視」「速さ重視」を切り替えられるようにしています。

2. 「先を聞く」量を減らす

声を変えるとき、プログラムは少し先まで聞いてから判断することがあります。同時通訳の方が、話の続きを少し聞いてから訳し始めるのと同じですね。先の展開がわかったほうが自然に訳せる。

この「先を聞く」量も遅れに直結します。ある方式では0.05秒ほどを先読みに使っており、減らせばそのぶん速くなる。

では、減らすと何が落ちるのか。 ある研究は、先を聞かない方式では「その人らしさ」の再現度が落ちると報告しています。抑揚やしゃべり方の癖を目標の声に合わせるには先の情報が要る、という仮説が示されています。つまり最初に崩れるのは音のきれいさではなく「誰の声に聞こえるか」のほうだ、ということです。

崩れ方は、もう少し広い範囲に及びます。「声の高さ(ピッチ)だけがおかしい」「音の切れ目だけが変」といった局所的な壊れ方ではなく、できあがる声の品質が全体として落ちます。 一部を後から手直しして取り戻せる種類の劣化ではありません。なお、この崩れ方を細かく分析した公開文献は確認できません。

そのため先を聞く量は、あとから調整するつまみではなく、最初に決めておく前提になります。後回しにすると、終盤の手戻りが大きくなります。

3. そもそも先を聞かない作りにする

2番の発展形です。「先を聞く」ことを前提にしない設計に切り替えてしまう。過去と今の音だけで声を作るので、待つ必要がなくなります。

ただ、簡単ではありません。先を聞く量をゼロにしきれず、わずかに残したまま設計された方式もあります。先を聞かない作りは目的ではなく、遅れを減らすために、どこまで品質の低下を許容できるかの選択になります。

4. 声を組み立てる部分を軽くする

分析した情報から、実際に聞こえる音を作る部分があります。ここを軽い仕組みに取り替える。携帯電話や小型機器でも動くよう設計された、軽くて高品質な方式が公開されています。

ただし、効き方には順序があります。ある測定では、この部分が計算時間の3割ほどを占めていました。ところが遅れ全体で見ると、わずか4%程度。待ち時間が大部分を占める状況では、ここを速くしても体感はほとんど変わりません。「重そうな部分を軽くする」という直感で手をつけると、労力のわりに効果が出にくい部分です。

5. プログラム自体を小さく・軽くする

大きなプログラムを、性能を保ったまま小さく作り直す方法です。よくできた例では、遅れを大きく縮めながら品質評価でも比較対象に見劣りしない結果が報告されています。

日本発の研究もあります。名古屋大学の研究グループが、パソコンのCPU1つだけで動く低遅延の声質変換を実現しました。プログラムの中身をあえて「すかすか」に作る手法などを組み合わせたものです。この系統の出発点となった論文には、TARVO代表が著者として加わっています。

CPUと「すかすかな作り」を選んだ理由は7番で説明しますが、ひとことで言えば、GPUを使っても待ち時間は減らないからです。

なお、計算を粗くして軽くする「量子化」という手法もよく挙げられます。ただし声質変換について、遅れと品質への影響を定量した公開文献は確認できません。効果は、プログラムの作り方と使う仕組みによって大きく変わります。

6. 仕組みそのものを作り替える

削るのではなく、途中の工程をなくしてしまう発想もあります。

  • 音声認識の工程をなくす:以前は「何と言っているか」をいったん認識する工程がありましたが、別のやり方に置き換えることで、ためる量を極端に減らせるようになりました
  • 学習のさせ方を変える:別のプログラムに作らせた学習用データを使い、途中の工程そのものを省いた例があります
  • 未来を予測してしまう:先を聞くかわりに、この先どうなるかを予測させる。待たずに、先を聞いたのと同じ効果を得ようという発想です

3つめで問題になるのが、予測が外れたときの挙動です。外れた予測は、不自然な抑揚につながります。抑揚は2番で書いたとおり、先を聞くことがいちばん効く部分でもある。つまり予測の精度が、そのまま「その人らしさ」の安定感を左右する構造です。ただし、その影響の大きさを数値で評価した公開文献は確認できません。

7. 動かす機械を変える

最後に、いちばん誤解されやすい方法です。

高性能なGPUを積んでも、待ち時間はまったく減りません。 音がたまるのを待つ時間も、先を聞く時間も、機械の速さとは無関係だからです。計算が一瞬で終わっても0.16秒の待ち時間は残る。それどころか、細かく区切って処理する場面では、GPUにデータを送り込む手間のほうが目立ってきます。

研究の世界で遅れを測るとき、むしろノートパソコン向けのCPU1つという条件が主流なのは、そのためです。GPUを積んでいないノートパソコンやスマートフォンでの動作を掲げた製品発表も出てきています。

どの順番で手をつけるか

効き方から考えると、次の順序になります。

  1. まず1番と2番(ためる量・先を聞く量)で、待ち時間がどこまで減らせるか見積もる
  2. 足りなければ3番と6番(作りそのものを変える)へ進む
  3. 4番と5番は計算時間側の話なので、そこが原因でなければ後回し
  4. 7番(機械を変える)は最後

そして、プログラム側をどれだけ削っても、その外側で時間を食われることがあります。全体の遅れに大きく影響する場合もあり、カタログの遅延と実際の遅れが違う理由 にまとめました。

選ぶ前に決めておくこと

どれを選ぶかは、目指す秒数と用途で変わります。そしてたいていは何かと引き換えになるため、「何を優先するか」が決まっていないと選べません。

目標を決めて、既存の方法で届くかを実際に測り、届かないならどこを作り替えるかを見極める。TARVOでは、こうした技術調査を受託で承っています。詳しくは AI受託開発 をご覧ください。

参考文献

  1. DualVC 2: Dynamic Masked Convolution for Unified Streaming and Non-Streaming Voice Conversion
  2. Wang et al. - ALO-VC: Any-to-any Low-latency One-shot Voice Conversion (Interspeech 2023)
  3. Tobing & Toda - Low-Latency Real-Time Non-Parallel Voice Conversion based on Cyclic Variational Autoencoder and Multiband WaveRNN
  4. Tobing, Wu, Hayashi, Kobayashi, Toda - Non-Parallel Voice Conversion with Cyclic Variational Autoencoder (Interspeech 2019)
LET'S START TOGETHER

Ready to
Design Your Voice?

法人向け受託開発から、コンシューマーアプリの導入相談まで。まずはお気軽にお問い合わせください。