Skip to main content
voice-ai

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

速いパソコンにすれば、ボイスチェンジャーの遅延は減るのか。リアルタイム声質変換で遅れが生まれる場所を、専門知識がなくても読める形で分解して説明します。

速いパソコンにすれば、遅延は減るのか。答えは「ほぼ減らない」です。

リアルタイム声質変換(音声変換、Voice Conversion; VC)の遅延は、計算の速さでは決まらない部分が大きいためです。この記事では、どこで時間が消えているのかを分解して説明します。

「うちの企画でボイスチェンジャーを使えないか調べておいて」と言われて調べ始めると、たいてい同じところでつまずきます。試したら声が遅れて返ってくる。カタログには「超低遅延」と書いてあるが、それが自分たちの用途で足りるのかわからない。

順番に見ていきます。

まず、どれくらいの「遅れ」の話をしているのか

単位の話を先にさせてください。この分野ではミリ秒という単位を使います。1ミリ秒は1000分の1秒。100ミリ秒なら0.1秒、200ミリ秒なら0.2秒です。

0.2秒。ほとんど一瞬ですよね。でも人と人がやりとりする場面では、これくらいの遅れでも「話しにくい」と感じられることが研究でわかっています。ほんの0.1秒、0.2秒が効いてくる。ここがこの問題の厄介なところです。

なお、この遅れは専門的には遅延(レイテンシ)と呼ばれます。この記事では、説明の中では「遅れ」、用語として示すときは「遅延」を使います。

なぜ、速いパソコンにしても遅れるのか

冒頭の質問に戻ります。なぜ「ほぼ減らない」のか。

「計算が速いこと」と「遅れないこと」は、別のことだからです。

料理でたとえます。調理時間が3分の料理があるとして、材料が全部そろうまでに20分待つとしたら、注文から完成までは23分。ここでコンロを強力なものに買い替えても、23分が22分になるだけです。待ち時間のほうが、ずっと長いから。

声を変える処理でも、同じことが起きています。声を変えるプログラムは、マイクに入ってきた音を少しずつ「ためて」から処理する。ある程度の長さがそろわないと、変換の判断ができないんです。バス停で、決まった人数が集まるまでバスが出発しないようなものだと思ってください。

実際に測られた例をお見せします。ある研究で報告された数字です。

何にかかった時間か 長さ
音がたまるのを待っていた時間 約0.16秒
実際に計算していた時間 約0.03秒
合計(体感する遅れ) 約0.19秒

計算そのものは0.03秒で終わっている。なのに、その前に0.16秒も待っている。遅れ全体の8割以上が待ち時間なんです。

ここが肝心なところで、この待ち時間はパソコンを速くしても減りません。仮に計算が一瞬で終わるようになったとしても、0.16秒はそのまま残る。だから「高性能なパソコンを買えば解決する」という期待は、たいてい外れます。

遅れには2種類ある

つまり遅れは、性質の違う2つに分けられます。研究の世界でも、この2つはきちんと区別して扱われています。

  • 待つことで生まれる遅れ — 判断に必要な音がそろうまで待つ時間。機械を速くしても減りません。減らすにはプログラムの作り方そのものを変えるしかない
  • 計算にかかる遅れ — 実際に処理をしている時間。こちらは速い機械や効率のいい作り方で短くできます

待ち時間が原因なのに高性能なパソコンを買っても、体感は変わりません。どちらが原因なのかで、打つべき手が変わります。

声が返ってくるまでに、何が起きているか

マイクに向かって話してから、変換された声が耳に届くまで、音はいくつもの場所を通ります。それぞれで少しずつ時間を使っている。

  1. パソコンが音を受け取るまで — マイクの音がソフトに渡るまでに、パソコン全体を動かす基本ソフト(OS)が音を少しためる時間があります。どれくらいためるかは初期設定で決まっていて、企画側が意識しないうちに乗ってきます
  2. 音を分析する — 声の高さや響きを調べます。ここでも「少し先まで聞かないと判断できない」ため、わずかな待ちが生まれます
  3. 声を変える — 中心となる処理。さきほどの「ためて待つ」時間の多くは、ここに含まれます
  4. 音を組み立て直す — 分析した情報から、実際に聞こえる音を作ります
  5. スピーカーから鳴るまで — ここでも、受け取るときと同じだけの待ち時間をもう一度払います

5番は見落とされがちです。入口と出口で2回かかるため、片方だけ数えると半分しか見積もれません。

どこをどう削れるかは 声質変換の遅延を減らす7つの方法 にまとめました。

実際、どれくらい遅れるものなのか

研究として公表されている数字を見ると、速いもので約0.02秒、遅いもので約0.19秒。10倍近い開きがあります。

ただ、この数字を並べて比べることはできません。測ったパソコンも、変換のやり方も、音の細かさもバラバラだからです。たとえば最速の記録を出した方式は「変換先の声が1種類に決まっている」という条件付きで、いろいろな声に変えられる方式とは前提がまるで違う。

しかも研究の数字には、さきほどの1番と5番——音を受け取る時間とスピーカーから鳴るまでの時間——が入っていません。実際に使えば必ずこれより遅くなります。カタログの数字にも同じことが言えます。くわしくは カタログの遅延と実際の遅れが違う理由 をご覧ください。

で、何秒を目指せばいいのか

ここまでは「遅れがどう生まれるか」の話でした。では何秒以内なら大丈夫なのか。

これは用途によってまったく違います。自分の声を自分で聞きながら話す場合は0.005〜0.006秒でも厳しく、相手と会話する場合は経路全体で0.15秒未満が目安、0.4秒を超えると会話として成り立たない。同じ「リアルタイム」でも、要求水準は80倍ほど違うんです。

用途ごとの目安は ボイスチェンジャーの遅延は何秒まで許されるのか に整理しました。それと、自分の変換後の声を自分で聞く使い方には、遅れとは別の難しさもあります。そちらは 変換した自分の声を聞きながら話すと、なぜ違和感があるのか に書きました。

まとめ

  • 「計算が速い」ことと「遅れない」ことは別。待ち時間のほうが大きいことが多い
  • だから高性能なパソコンを買っても、体感が変わらないことがある
  • 遅れは入口と出口で2回かかる
  • 何秒を目指すべきかは用途で決まり、その幅は80倍ほどある

順番も効いてきます。先に「用途」と「目標の秒数」を決めてから、やり方を選ぶ。 待つことで生まれる遅れはプログラムの作り方に組み込まれているため、順番が逆になると、後から削るのが難しくなります。

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

参考文献

  1. X-VC - Algorithmic latency の定式化
  2. DualVC 2: Dynamic Masked Convolution for Unified Streaming and Non-Streaming Voice Conversion
  3. LLVC - Low-latency Real-time Voice Conversion on CPU
LET'S START TOGETHER

Ready to
Design Your Voice?

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