2025年02月11日 pulseaudioによる合成マイク作成 [長年日記]
_ pulseaudio環境でヘッドフォンから再生されている音声とマイク入力を合成して録音するために、仮想の合成マイクを作ってみた。
_ 仮想の出力デバイス(VOUT)を作成し、そこへの出力を取り込むためのデバイス(VOUT.monitor)に名称(MONITOR.VOUT)を設定する
$ pacmd load-module module-null-sink sink_name=VOUT $ pacmd update-sink-proplist VOUT device.description=VOUT $ pacmd update-source-proplist VOUT.monitor device.description=MONITOR.VOUT
_ VOUTに出力するためのソースを確認する
$ pacmd list-sources|egrep name: name: <alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__HDMI3__sink.monitor> name: <alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__HDMI2__sink.monitor> name: <alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__HDMI1__sink.monitor> name: <alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__Headphones__sink.monitor> name: <alsa_input.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__Mic2__source> name: <alsa_input.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__Mic1__source>
_ VOUTにマイクの入力を接続する
$ pacmd load-module module-loopback source=alsa_input.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__Mic1__source sink=VOUT
_ VOUTにヘッドフォンの再生音声を接続する
$ pacmd load-module module-loopback source=alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__Headphones__sink.monitor sink=VOUT
_ 仮想のソース(VOUT.monitor)を確認する
$ pacmd list-sources|egrep name: name: <alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__HDMI3__sink.monitor> name: <alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__HDMI2__sink.monitor> name: <alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__HDMI1__sink.monitor> name: <alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__Headphones__sink.monitor> name: <alsa_input.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__Mic2__source> name: <alsa_input.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__Mic1__source> name: <VOUT.monitor>
_ ffmpegを使って録音してみる
$ ffmpeg -f pulse -i VOUT.monitor output.mp3
_ 仮想合成マイクを削除する
$ pacmd unload-module module-loopback $ pacmd unload-module module-null-sink
[ツッコミを入れる]