技術メモ:外部ソフトを使わず超低遅延ボイチェンルーティング(with Audient iD22)

ボイチェンなど、DAWを経由した音声処理で面倒なのが、処理した音声をPC内のソフトへどうやって入力するかという問題です。これにはDAWから出力を受け渡せる仮想オーディオデバイスが必要となります。
この方法はいくつかあって、

YAMAHA SYNCROOM Bridge VSTを使う(DAW内のVST経由で仮想音声デバイスへ出力) 
②ASIOを諦めてVB Bananaや仮想オーディオデバイス(VB Virtual Cableなど)を使う

ただ前者はそもそもブリッジ用のソフトでないため実用性や安定性が、後者ではASIOを諦めるために遅延がネックになります。
そこで第三の選択肢として、以前の記事でSynchronous Audio Routerというソフトを紹介しました。

これはカーネルドライバとして働き、仮想オーディオデバイスを自由に作成できる上、ASIOを含めたオーディオデバイスをDAW上で自由にルーティングでき、それでいて10ms以下の超低遅延という優れものです。
ただ唯一の弱点が、このソフトが署名されていない(unsigned)ドライバーということです。そのため動作させるには、Windowsをテストモードで立ち上げるという運用をせざるを得ません。

が、これが昨今のチート対策ツール(Easy Anti-Cheat)などに引っかかり、VRChatやMMOゲームなどが起動不能になってしまいます。テストモード自体は再起動すれば簡単にオン・オフできるのですが、これでは面倒が多いです。

そこで、手持ちのオーディオI/FであるAudient iD22のルーティング機能を使って、こうしたソフトウェアを使わず、直接iD22自体のデバイス入力としてボイチェン後の音声を入力できないか?というのをやってみました。

仮想デバイスではなくオーディオI/F(Input 1/2)を入力デバイスとする

理屈は簡単で、DAWで処理されてiD22に返ってきた音声を、iD22に再び入力として戻してやり、あたかもマイクから入力されてきた音声であるかのようにDiscordやOBSへ返すというものです。
ただ実際にこれをやるのが中々ややこしく、設定のメモとして今回の記事を書いた次第です。

具体的な経路は以下のようになります。

①入力元のマイク(実声)
 ↓
②オーディオI/F (iD22)
 ↓ASIOドライバ
③DAW
 ↓音声処理後、出力Ch.3へアウトプット
④iD22 ソフトウェアコンソール
 ↓出力Ch.3をDAW ThruでHWの出力端子へ
⑤パッチケーブル(出力端子3⇒マイク入力2へ)
 ↓Windowsミキサー上でモノラル化
⑥Input 1/2としてソフトへ入力

①~③は通常のDAWへの入力と変わらないので省略します。当然ですがASIOを使います。

③DAW④iD22 SWコンソールでは、まずDAWで処理後の音声の出力先をiD22のAnalogue 3ないしAnalogue 4に割り当てます。これでiD22側のDAW3 (or DAW4)に音声が返ります。

Cantabileでのデバイスの設定画面。Analogue3がターゲット
DAW3に音声が返ってきた


次に④iD22 SWコンソール⑤パッチケーブル(出力端子3⇒マイク入力2へ)。
Audient iD22は下記の画像のように出力端子に対して、どの入力を割り当てるかを設定できます。今回の場合、DAW3に来ている音声をそのまま出力したいので「DAW THRU」を選択。

MONO-3-DAU THRUと設定

この信号を、OUT 3LからMIC IN 2へ有線で繋いでやります。パッチケーブルというのは、こういうちょっとした間を結ぶための短いケーブルのことです。これでマイクにDAW処理後の音声が入力として入ってきます。



さて、ここからが問題。
iD22のデバイスドライバは、Input 1/2という形でマイク1/2の入力をステレオとしてまとめてしまいます。これではボイチェン前後の音声がステレオで聞こえるという奇っ怪な音声になってしまいます。

力技で解決するなら、入力が4系統ある上位機種iD44を買ってくる…というのが最適解ですが、さすがににポンと10万は出せません。

そこで、ひねり出した苦肉の策がこちらです。

Windowsのオーディオデバイス設定で、Input 1/2の1側の音量をゼロにします。

こうすると、音声がモノラル状態になります。そしてマイクというのは通常モノラル音声なので、この状態で入力されてもうまく処理してもらえます(Discord、OBSで確認済み)。
あとは使用するアプリケーションで、入力デバイスをInput 1/2にしてやればOKです。DAWから還流した処理済みの音声が、マイクから入力されたかのようにあちらには聞こえます。

素敵な声を再生中です

なお通常のマイク入力として使いたい場合は、逆に1を100%、2を0%にすればOKです。

DAW内でVSTを使わず、直接出力した場合のレイテンシは8ms

上側が元の音声、下側がDAW経由で再入力された音声

またDAW内でGraillonをかませた場合、遅延はおよそ30msでした。

上側が元の音声、下側がDAW経由で再入力された音声

このように、ほぼ遅延ゼロといえるレベルに収まっていることがわかります。
なおこの状態で歌うとなると、30msからもう一声、低遅延が欲しいと思いますが、iD22の場合、DAWからの戻り音声であるDAW3のフェーダーを上げてやると、これがモニター側(=ヘッドホン)にループバックできます。遅延は実測できませんが、おそらく20msには収まっているでしょう。自分の声をマイクを通して聞きながら歌うのと比べても、まったく違和感がないです。

iD22のSWコンソールは便利


ちなみに、この方法は別の応用もあります。ボイチェンを使ったTwitterスペースです。
④iD22 SWコンソール⑤パッチケーブルへ送った音声を、インターフェイスを通じてスマホに入れてやると、TwitterスペースRealityツイキャスなどスマホアプリでボイチェンを使って話すことができます。

安いインターフェイスととちょっと高いもの。

iPhoneで使うならこれが必須。

Type-Cのスマホだとこれ。

スマホへ音声を送ること自体は、Audient iD22でなくとも、DAWの音声を出力できる端子があるオーディオI/Fなら同じ仕組みで成立するはずです。


若干話題がそれましたが、こんな具合にソフトウェア環境に頼ることなく、8msと超低遅延のボイチェンのルーティングができました。
確約はできませんが、同じような入出力の機能があるオーディオI/F(入力最低2ch、DAWからの出力がルーティングできる出力1ch)なら同じことはできる…はずです。

iD22自体は安い買い物ではありませんが、スピーカー出力をワンボタンで切り替えたりでき、音楽鑑賞にも十分使えるクオリティのオーディオI/Fなので、とても良い買い物だったなと個人的には思っています。
使用感など気になる方がいらしたら気軽に聞いて下さい。

皆さんの参考になったら嬉しいです。

--------------------------------------------------------

--------------------------------------------------------
今回もお付き合いいただきありがとうございました。
引用RT、リプライ等でのコメントも喜んでお待ちしています。

Twitter: https://twitter.com/omoi0kane
Youtube: https://www.youtube.com/channel/UCpPeO0NenRLndISjkRgRXvA
Medium:https://omoi0kane.medium.com/
Instagram: https://www.instagram.com/omoi0kane/
Facebook: https://www.facebook.com/profile.php?id=100058134300434

この記事が気に入ったらサポートをしてみませんか?