Linux PluseAudio で マイクをスピーカーにつなぐ

概要

NeosVRをUbuntu 20.04上のSteam上で動作させた。 ほぼ問題なく動作するが、マイクの音声が読み込まれない。 スピーカーをマイクとして設定するとNeosVR上のインジゲーターが振れる。

マイク自体が壊れていない事は、マイクの音をAudacityで録音できる事で確認した。

LinuxのProton(Wine)で動作させているため、あまりマイク関連の設定項目はないので、 「LinuxのPulseAudio側でマイクとスピーカーを接続」して、 スピーカーをNeosVRに接続することにする。

環境

  • Ubuntu Studio 21.04
  • Jack ではなく PluseAudio を利用

手順

手動で下記を実行して動作を確認した。

$ pacmd load-module module-null-sink sink_name=null.mic sink_properties=device.description='Null_Mic'
$ pacmd load-module module-loopback source=alsa_input.pci-0000_00_1b.0.analog-stereo  sink=null.mic

~/.config/pulse/default.pa には下記を追記

# マイク
# http://itline.jp/~svx/diary/?date=20200421#p22
load-module module-null-sink sink_name=null.mic sink_properties=device.description='Null_Mic'
load-module module-loopback source=alsa_input.pci-0000_00_1b.0.analog-stereo sink=null.mic

意図

PulseAudioにはヌルデバイスと呼ばれる「最初は物理デバイスが何も紐付かないデバイス」を作れる。

$ pacmd load-module module-null-sink sink_name=null.mic sink_properties=device.description='Null_Mic'

上記を実行し、pavucontrolでオーディオ関連を確認すると、物理的なデバイスが紐付いていない下記の2つが追加されている。

更にループバックモジュールを使いながら、下記のように物理デバイスをスピーカーに紐付ける。

$ pacmd load-module module-loopback source=alsa_input.pci-0000_00_1b.0.analog-stereo  sink=null.mic

このようにすると「マイクからの入力をスピーカーに紐付ける」ということができる。

参考

PulseAudioでBGM付きリモート呑み会に