Skip to main content
音声AI更新

ボイスチェンジャーの遅延はどこで生まれるのか

速いパソコンにすれば、ボイスチェンジャーの遅延は減るのか。リアルタイム声質変換で遅れが生まれる場所を待つ時間・計算時間・入出力の3つに分解し、カタログの公表値と実際の遅れが食い違う理由まで説明します。

画面に表示された音声波形
Photo: Egor Komarov / Pexels

速いパソコンに買い替えれば、ボイスチェンジャーの遅れは減るのか。答えは、遅れのどこが支配的かで変わります。ある方式の報告では、計算そのものより、処理に必要な音声がたまるのを待つ時間のほうが長くなっていました。

この記事で扱うのは、話している内容を保ったまま、声だけを別の人らしい声に変えるリアルタイム声質変換(AIボイスチェンジャー)です。マイクに声を入れてから変換された声が耳に届くまでの遅れを、遅延(レイテンシ)と呼びます。技術資料では「70ミリ秒」のようにミリ秒で書かれますが、この記事では秒に直します(1ミリ秒は1000分の1秒です)。

資料の公表値を見て十分だと判断したのに、実際に組んでみるともっと遅い、という食い違いも起きます。嘘が書かれているわけでも、組み方を間違えたわけでもなく、原因の中心は測っている範囲の違いです。「待つ時間と計算する時間は何が違うのか」「公表値と実際の遅れはなぜ食い違うのか」「公表値はどう比べて使えばよいのか」の順に見ていきます。

待つ時間と計算する時間は、何が違うのか?

声を変えるプログラムは、マイクに入ってきた音をいったんためてから処理します。ある程度の長さがそろわないと、どう変換するかの判断ができないためです。ある研究(X-VC)は、この方式内の遅延を、判断に必要な音声を待つ時間と計算時間の合計として定義しています[1]。待つ時間はプログラムの構造で決まり、計算時間は機械の速さと作り方で決まります。

DualVC 2という方式では、特定の条件で測った内訳が報告されています[2]。

何にかかった時間か 長さ
音がたまるのを待っていた時間 約0.16秒
実際に計算していた時間 約0.03秒
変換処理内の合計 約0.19秒

この例では、遅れの8割以上が待ち時間でした。同じ音のため方・同じ構成のままなら、この待ち時間はパソコンを速くしても減りません。

ただし、計算がリアルタイムに追いつかない環境では、速い機械が動作の成立条件になることもあります。計算の軽い方式では0.02秒未満の報告もあります[3]。だから買い替えの前に確かめるのは、自分の環境で待ちと計算のどちらが支配的か、です。

待ち時間をどう削れるか、削ると何と引き換えになるかは 声質変換の遅延を減らす7つの方法 に記載しています。

公表値と、実際に使ったときの遅れはなぜ食い違うのか?

原因の中心は、測っている範囲の違いです。研究の論文が「遅延◯◯秒」と書くとき、よくあるのは、声を変えるプログラムが音を受け取ってから結果を返すまでの時間です。内訳は前節の待つ時間と計算時間で、以下ではこの2つを合わせて「アルゴリズム遅延」と呼びます。

ところが、マイクに向かって話してから変換された声が耳に届くまでに、音はもっと多くの場所を通ります。

  1. パソコンが音を受け取るまで。OSが音を少しためてからソフトに渡します
  2. 音を分析する。声の高さや響きを調べるために、少し先まで聞く待ちが生まれます
  3. 声を変える。中心の処理で、前節で見た待ち時間の多くはこの変換処理に含まれます
  4. 音を組み立て直す。分析した情報から、実際に聞こえる音を作ります
  5. スピーカーから鳴るまで。出力側にも、入力側とは別のため込みがあります

1番と5番の入口と出口を含むかどうかは、資料によって異なります。今回引用した中でも、X-VCは変換処理内の遅延を定義して測り[1]、入出力と分析まで含めて測ったと明記した研究もあります[5]。マイクからスピーカーまでを通しで測った時間は、区別してラウンドトリップ遅延(往復遅延)と呼ばれます。利用者が体感するのはこちらです。だから確かめるべきなのは、速いか遅いかではなく、どこからどこまでを測った値なのかです。

公表値の外側にある入口と出口では、機器とプログラムの間で、音が途切れないように一定量をいったんためます。この一時的な置き場所をオーディオバッファと呼びます。ためる量を増やすと音は途切れにくくなり、そのぶん遅れます。Windowsの公式資料から読み取れる点は3つあります[4]。

1つめは、ため込みが入口と出口の両方にあることです。マイクから受け取る経路と、スピーカーへ出す経路は、別々に時間を使います。

2つめは、初期設定のままでも、それなりの量をためていることです。Windows 10以降の一部の音声処理方式では、初期設定で約0.01秒ごとに音を処理します。ただしこれは片方向の遅延そのものではなく、実際にはドライバ(マイクやスピーカーを制御するソフト)や機器の処理時間も関わります。短くするには、低遅延向けの仕組みを明示的に使う必要があります。

3つめは、ためる量を減らせば済むという話ではないことです。量を極端に減らすと、パソコンは短い間隔で何度も処理を実行し、そのぶん電池の減りが早くなります。スマートフォンやノートパソコンで動かす企画なら、遅れと電池もちが直接の引き換えになります。

経路には、別の処理も挟まります。エコーを消す機能(エコーキャンセル)や雑音を抑える機能(ノイズ抑制)を通していれば、その処理時間ぶんが加わります。会議ソフトや配信ソフトを経由するなら、それぞれが内部に持っている待ち時間も乗ります。

そして、入口と出口で使える最小のため込み量は、オーディオドライバと、その先の機器に左右されます。プログラムは、その対応範囲の中から使う量を選ぶことになります。Windowsの資料も、どこまで短くできるかはドライバ側の対応によると説明しています[4]。同じ変換プログラムを載せても、どの機器をどう設定して使うかで体感が変わるのはこのためです。

公表値はどう比べて、どう使えばよいのか?

研究の公表値には、約0.02秒[3]や約0.19秒[2]といった報告があります。10倍近い開きに見えますが、測ったパソコンも、変換のやり方も、測定の範囲もバラバラです。たとえば約0.02秒の方式には、変換先の声が1種類に決まっているという条件が付いています。変換先を複数の声から選べる方式とは、前提そのものが違います。

サービスの公表値にも、範囲の確認は要ります。ある音声AIサービスは、短い入力なら処理はおよそ0.075秒だと公表しています[6]。同じ資料には、この0.075秒が通信の時間を除いた値であることも書かれています。実際に音が返るまでの時間はほぼ必ずこれより長くなり、かなり長くなることもある、と明記されています。数字と、その数字が含まない範囲をセットで示している例です。

ここまで見たとおり、値は測る区間・機器・設定・通り道に挟まる処理によって変わります。条件がそろっていない公表値を並べても、どれが速いかは比べられません。

公表されている数字を自分の見積もりに使ってよいかは、次の5点で確認します。

  1. その数字は、パソコンの入口と出口を含んでいるか
  2. 入口と出口の両方を考えに入れたか(ため込みは両側にあります)
  3. 設定は初期状態のままか
  4. 経路に他の処理が挟まっていないか(エコーキャンセル・ノイズ抑制・会議ソフト・配信ソフト)
  5. 動かす機器とOSを決めたか(使える最小のため込み量は機器とドライバで変わります)

使う機器と設定を先に決めると、比較と実測の前提がそろいます。ただし、公表値だけから体感の遅延は確定できません。最終判断は、実際の構成でマイクからスピーカーまでを通しで測ることになります。

なお、許容できる遅延は用途によって大きく異なります。用途ごとの目安は ボイスチェンジャーの遅延は何秒まで許されるのか に、自分の変換後の声を聞きながら話す難しさは ボイスチェンジャーの遅延を縮めても、自分の声は消えない に記載しています。

まとめ

ボイスチェンジャーの遅延は、判断に必要な音を待つ時間、計算する時間、そして入口と出口の入出力に分かれます。待ち時間はプログラムの構造で決まるため、パソコンを速くしても減るとは限りません。公表値は測っている範囲が資料ごとに違い、入口と出口を含まない値も多いため、体感の遅れとは食い違います。買い替えや比較の前に、自分の構成で待ち・計算・入出力のどこで時間を使っているかを実測する。それが対策選びの出発点です。TARVOでは、こうした技術調査を受託で承っています。詳しくは AI受託開発 をご覧ください。

よくある質問

ボイスチェンジャーの遅延はどこで生まれますか?

判断に必要な音がたまるのを待つ時間、計算する時間、そしてマイクとスピーカー側の入出力で生まれます。ある方式の実測では、計算が約0.03秒に対して待ち時間が約0.16秒と、遅れの8割以上が待ち時間でした。

速いパソコンにすればボイスチェンジャーの遅延は減りますか?

減るとは限りません。同じ構成のままなら、音がたまるのを待つ時間はパソコンを速くしても減りません。ただし、計算がリアルタイムに追いつかない環境では、速い機械が動作の成立条件になることもあります。先に、待ちと計算のどちらが支配的かを実測します。

カタログの遅延値と実際に使ったときの遅れが違うのはなぜですか?

原因の中心は、測っている範囲の違いです。公表値には、プログラム内部の時間だけを測り、マイクの入口とスピーカーの出口のため込み(オーディオバッファ)や、エコーキャンセルなどの処理時間を含まないものがあります。体感に対応するのは、マイクからスピーカーまでを通しで測ったラウンドトリップ遅延です。

参考文献

  1. X-VC: Zero-shot Streaming Voice Conversion in Codec Space
  2. DualVC 2: Dynamic Masked Convolution for Unified Streaming and Non-Streaming Voice Conversion
  3. LLVC - Low-latency Real-time Voice Conversion on CPU
  4. Microsoft - Low Latency Audio (Windows Drivers)
  5. Tobing & Toda - Low-Latency Real-Time Non-Parallel Voice Conversion based on Cyclic Variational Autoencoder and Multiband WaveRNN
  6. ElevenLabs - Understanding latency
LET'S START TOGETHER

Ready to
Design Your Voice?

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