Narazaka::Blog

奈良阪という人のなにか

VRChatで低遅延ボイチェンする方法3種まとめ

低遅延でモニタリングできるボイチェンの方法が色々あるっぽいのでまとめました。

特に仮想音声デバイスを使ってボイチェンを噛ましたWASAPI排他モードの記事が見つからなかったのでそこ重点的に書きました。

分かりづらいとか間違ってるとかあったら言ってください。

モニタリングの重要性と遅延対策

ボイチェンをするに当たって自分のボイチェン声を聞きながらするのはとても重要です。

ボイチェンは特に慣れないうちはノイズ(ガビる という)も発生しやすく、調整によってはかなり聞きづらくもなります。

客観的に聞きやすいこと、そして自分の思う声になっていることを常に確認することで、意識的に頑張らなくても自然とボイチェンに適した理想的な発声に最適化していくことができます。

しかしリアルタイムでボイチェンを使う場合、てきとうに設定すると無視できない遅延が発生します。モニタリングに遅延があるととても喋りづらくなります。なぜなら人間はボイチェンを使わない普段の発話でも実は自分の声を聞くことで発話を補正しているから……っぽいです。

以下ではそんなモニタリングを低遅延で快適に行える(はずの)方法を紹介します。

ハードウェアボイチェン

マグロナちゃんを見て知りました。

遅延は限りなく0ですが、一般にデメリットも多いためオススメ度としてはいまいち。

メリット

  • 遅延がゼロ
    • モニタリングでしゃべりやすく、カラオケも余裕
  • ごく普通のマイクと同じように使えてややこしさがない

デメリット

  • ハードウェアが結構高い(2万円を超える)
  • ソフトウェアより難しい
    • 油断するとすぐガビるケロる
    • いつも綺麗に聞こえるようにするには声の調整が不可欠
  • ボイチェンそのもの以外の調整がしにくい
    • ノイズ低減やイコライザとかで声の整形をこだわる場合、ソフトで組むとそれの遅延がかかるため、0遅延を頑張るならハードで揃える富豪力がないと不向きかも。
  • HMD付属のマイクが使えない
    • USBでPCに直接入るタイプのマイクは使えない

用意するもの

  • ボイチェンにつなげるマイク
    • 普通のピンジャックにつなぐやつでもよい
    • USB接続のやつは不可

方法

  1. VT-4を接続する
  2. 入力デバイスをVT-4にする

基本超簡単。すぐ使えると思います(ただし喉の訓練が必要)。

ソフトウェア+全てASIOで組む

オニャンコポンnaca_nyanが言ってたので知りました。

お金はややかかりますが、最終形としておすすめなパターン。

メリット

  • コンマ秒以下の低遅延に出来る。
    • 音合わせにシビアなカラオケもいけるレベル
      • VRChatとかだとそもそも動画と遅延があるので素で人が聞くにはもちろんしんどいけど
  • 汎用性拡張性が高い
    • 声の調整も追加ハードウェア無しにVSTプラグインで自由自在に出来る

デメリット

  • ハードウェアがやや高い(1万円~)
  • HMD付属のマイクが使えない
    • USBでPCに直接入るタイプのマイクは使えない
  • ハードウェアボイチェンに比べると設定が煩雑

用意するもの

ASIO対応オーディオインターフェース(どれかひとつ)

  • オーディオインターフェース全てがASIO対応しているわけではない(めっちゃ安いやつとか)
  • ASIO対応していたとしても動作仕様的にこの方法には使えない場合もある(たとえばVT-4でこの方法も試すのは元の声のモニタリングが返ってきてしまい無理)
  • 定番
    • Revelator io24 / io44は別途仮想オーディオデバイスを用意しなくても音声ルーティングが出来る優れもの
      • このルーティング機能は後述のお高いBabyface Proというやつと同じようなもので、この価格帯で使えるのは大変得らしい。
      • ただしPC起動時に設定が適用されない場合があるらしい?
        • Universal Controlで設定をシーンに保存しておく→設定から「すべてをリセット」→シーンをリコールする操作が起動時に必要になるかも。
    • Steinberg UR22C はそもそもASIOという規格を作った会社のやつ
    • Focusrite Scarlett Solo や MOTU M2 というのもいいらしい
    • Babyface Proというやつはお高いがよくおすすめされる
      • なんでも同社が売っているうん十万の上位機種と同じ部品が使われていて同等のプロレベル音質が得られるらしい。
      • 別途仮想オーディオデバイスを用意しなくても音声ルーティングもできる
    • なおよく知られているAG-03は配信環境用としては便利で定番ではあるが(厳密には「ミキサー」として売られているのもあり)オーディオインターフェースとして見たときに重視される音質の性能は他のやつのほうが良いとのこと

ボイチェンにつなげるマイク

  • USB接続のやつは不可
  • 普通のピンジャックにつなぐやつ(ミニプラグ)でもつなげるかも
    • オーディオインターフェースはだいたい「標準プラグ」(1/4インチ、6.3mm、6.35mmとも)と呼ばれる端子規格だが、変換端子を噛ますことよく使われている「ミニプラグ」(3.5mm)でつなげたりできます。
    • ただしモノラル(2極)、ステレオ(3極)、ステレオ+マイク付き(4極 CTIAまたはOMTP)の別などがあるので気をつけて
    • なおプロ用でないやつはおそらく「アンバランス接続」になります。
  • ヘッドセットに近づけるタイプの場合ノイズを低減する「バランス接続」という方式のものだと良いらしい (参考: バランス接続がノイズに強いわけ|サウンドハウス
    • バランス接続は平衡、アンバランス接続は不平衡とも呼ばれます。
    • XLRケーブル(キャノンケーブル)のものを使うと良い?(ただしXLRでもアンバランスの場合もある)(参考: TRS・TSケーブルの違い
  • 筆者はAT810F(notバランス接続 ヘッドセットに近づけすぎると多少ノイズが入る ホワイトノイズもある)

仮想オーディオデバイス(どちらかひとつ)

syncroom.yamaha.com vb-audio.com

(Revelator io24 / io44やBabyface Pro等ルーティング機能内蔵のオーディオインターフェースでは不要です)

  • SYNCROOM
    • 元々リモートの音楽セッション(同時演奏)のためのソフトなので、鬼のように低遅延に気を配っているらしい。
    • 本記事では紹介しないがボイチェンをしながらリモート演奏と合わせて歌って配信なども可能らしい?
    • 設定は少なくシンプル
    • ただしCPUビジーとかになったりすると遅延が蓄積していくので定期的にリセット(設定ボタンを押すなど)する必要があるかも知れない
  • Voicemeeter Banana
    • 多機能なオーディオミキサーソフト
    • 設定は複雑だが後述のWASAPIの方法にも使えるなど出来ることが多い

ボイスチェンジャー

ソフトによって癖が異なるので、まずは自分の声と合う物を探して色々試してみるのが良いです。

なお下記の他にもあると思いますが、とりあえず有名どころ?を……。

方法

オーディオデバイスの設定

Revelator io24 / io44の場合

製品の説明書の通りPreSonusのアカウントなどを作り、PCからオーディオインターフェースを操作するためにソフト(Universal Control)をインストールします。

SYNCROOMの場合

syncroom.yamaha.com

インストール色々設定が出てきますが、全部デフォルトでいいはずです。ログインを求められますがTwitter連携とかで済ませましょう。

SYNCROOMは本来音楽をリモートで同時演奏するためのソフトなので色々設定があるのですが、今回はVSTモードというのを使うので初期設定はほとんど使わないです。

Voicemeeter Bananaの場合

vb-audio.com

基本そのままインストールするだけのはずです。

途中仮想オーディオデバイスをインストールする段があり、許可が必要かもです。

ボイスチェンジャーの設定

VSTプラグイン+Revelator io24 / io44 の場合

こちらの記事を下記の改変をして適用します。

qiita.com

・「メニューバーから File -> Preferences」でAudioタブに行き、Revelator ASIOデバイスを選ぶ

・「Syncroom (VRChatとかに声を流す)」の節を適用しない

VSTプラグイン+SYNCROOMの場合

こちらの記事を参照。

qiita.com

ただし「メニューバーから File -> Preferences」 はこんな感じになります。

記事にもありますが、Elementを開いたときに一時的に音が聞こえなくなるのは正常な動作なので、焦らずにPreferencesを変更しましょう。

VSTプラグイン+Voicemeeter Bananaの場合

Voicemeeter Bananaはこちらの記事でWDMではなくASIOを選ぶ感じです。

vocareateproject.hatenablog.jp

そしてボイチェン側はElementベースでこちらの記事を下記の改変をして適用します。

qiita.com

・「メニューバーから File -> Preferences」を以下のようにVoiceMeeterのASIOデバイスを選ぶ

・「Syncroom (VRChatとかに声を流す)」の節を適用しない

単体で動作するボイチェンの場合

出力のモードをASIOにして、SYNCROOM、Voicemeeterのデバイスを選ぶ(RevelatorならVirtual Output等)。

ソフトウェア+WASAPI排他モードと仮想ASIOで組む

みにさんが言ってたので知りました。

煩雑さがすごいが一応完全無料で構築可能です。オーディオインターフェース買うまでのつなぎなどに。

メリット

  • コンマ秒程度の低遅延に出来る。
    • カラオケは怪しいかも
  • 汎用性拡張性が高い
    • 声の調整も追加ハードウェア無しにVSTプラグインで自由自在に出来る
  • 完全に無料で構築できる
  • HMD付属のマイクも使える

デメリット

  • WASAPI排他モードはWindowsの標準的なオーディオ挙動と異なるため混乱しやすい
  • 遅延は少ないとは言えあり、用途が限られる(歌とかは厳しそう)
  • 入力デバイスも所定のものにしなければならないなど、設定が最も煩雑。

用意するもの

方法

WASAPI排他モードは、あるアプリケーションによってWASAPI排他モード指定で音声デバイスが確保されると、他のデバイスではその音声デバイスを扱うことが出来なくなると言う特徴を持っています。

そのデバイスの音のMIXをWindowsが制御せずに、入出力の口だけ用意してそれ専用のアプリケーションに全て任せる的なモードの模様です。

なのでデバイスに出力される全てのマイクやアプリケーションの音を音声ルーティングが凄いアプリVoicemeeter Bananaで扱う必要があります。

参考: Voicemeeter Bananaの複雑な入出力をまとめた記事 labo.pls-ys.com

今回は最終的に音声のルーティングが以下の図のようになるよう設定します。

再生デバイス

「既定のデバイス」と「既定の通信デバイス」を「VoiceMeeter Input」に

録音デバイス

「既定のデバイス」と「既定の通信デバイス」を「VoiceMeeter Output」に

Voicemeeter BananaのHARDWARE OUT

WDM」つきのヘッドホンやイヤホンデバイスに設定する

Voicemeeter BananaのHARDWARE INPUT 1

WDM」つきのマイクデバイスに設定する

Voicemeeter Bananaのルーティング

  • HARDWARE INPUT 1がボイチェン後マイク音
  • Voicemeeter VAIOがVRChatやDiscordから出た音
  • Voicemeeter AUXが予備用
  • A1がヘッドホン・イヤホンで聞こえる音声(ボイチェンモニタリング・VRChatやDiscordの音声など)
  • B1がVRChatやDiscordへ出す音声

です。ゆえに

  • HARDWARE INPUT 1→A1, B1
  • Voicemeeter VAIO→A1
  • Voicemeeter AUX→A1,B1

と出るよう設定します。

Voicemeeter Bananaのシステム設定

System Setting / Optionsを開き……

  • PATCH INSERTのin1 Left, in1 Rightをオンにします。
  • WDM Input Exclusive ModeはYesにすると突如マイク音声が止まる不具合が出る可能性があるらしいですが、Yesにしたほうが遅延が少なくなる可能性があります。ここは環境によると思われるためやりながら検証して下さい。

ボイスチェンジャーの設定

ASIO対応のものを使います。

バイスタイプを「ASIO」にして、デバイスとして「Voicemeeter Insert Virtual ASIO」を選択します。(各ソフトの具体例は大きい図を参照)

このときノイズが入る場合は「Reset Device」したり、Voicemeeterを立ち上げ直したりして下さい。

VRChat等のマイク設定

VRChatやDiscordの入力デバイスを「デフォルト」にするか、「Voicemeeter Output」にしてください。

Discord等の出力設定

「デフォルト」にするか、「Voicemeeter Input」にしてください。