特定のプロセス(A)と別のプロセス(B)の音声出力を聞きながら、Aの音声出力をBの音声入力にリダイレクトしようとしています。これは、音楽と友人の両方を聴きながら、Skypeで音楽を再生し、友人にあなたの声を聞かせることと同じです。
私はopenSUSEのチュートリアル(Google "Pulse Audioで使用するためのオーディオミキサーを探している(たぶん)")を試し、ビデオを数回見ました。以前、JACKを試してみましたが、ヘッドセットであるLogitech G35が認識されないことがわかりました。
私は音楽を演奏することができ、友人と一緒にそれを聞くことができますが、同時に声を送ることはできません。友達が聞くのは私の声か音楽のどちらかです。どうすれば音声を送信できますか?
私のセットアップのいくつかの写真(1つのヌル出力を使用):
再生タブ:
記録タブ:
何時間もいじくり回した後、ついに達成しました!
2つのNull出力を作成し、最初のループバックを2つ、2つ目のループバックを1つ作成しました。
pactl load-module module-null-sink sink_name=Virtual1
pactl load-module module-null-sink sink_name=Virtual2
pactl load-module module-loopback sink=Virtual1
pactl load-module module-loopback sink=Virtual1
pactl load-module module-loopback sink=Virtual2
次に、PulseAudio Volume Control(pavucontrol)を開きました
これらは私の設定です。表示される順に入力しました。数字は上から下に行きます。
記録タブ:
再生タブ:
「null出力」と混同しないように、次のように名前を指定します。
pactl load-module module-null-sink sink_name=Virtual1 sink_properties=device.description="NAME HERE (mic+music)"
pactl load-module module-null-sink sink_name=Virtual2 sink_properties=device.description="NAME HERE (only music)"
pactl load-module module-loopback sink=Virtual1
pactl load-module module-loopback sink=Virtual1
pactl load-module module-loopback sink=Virtual2
@MikWindによって提案された改善よりもさらに進んで、作成時にループバックデバイスのソースを構成することができます。
ついにすべての定数をセットアップするbashスクリプトを手に入れました。
#!/bin/bash
MICROPHONE="alsa_input.pci-0000_00_1b.0.analog-stereo"
SPEAKERS="alsa_output.pci-0000_00_1b.0.analog-stereo"
# Create the null sinks
# virtual1 gets your audio source (mplayer ...) only
# virtual2 gets virtual1 + micro
pactl load-module module-null-sink sink_name=virtual1 sink_properties=device.description="virtual1"
pactl load-module module-null-sink sink_name=virtual2 sink_properties=device.description="virtual2"
# Now create the loopback devices, all arguments are optional and can be configured with pavucontrol
pactl load-module module-loopback source=virtual1.monitor sink=$SPEAKERS
pactl load-module module-loopback source=virtual1.monitor sink=virtual2
pactl load-module module-loopback source=$MICROPHONE sink=virtual2
動作するように十分に理解するまで数時間苦労していたので、研究結果(スクリプト、ドキュメントリンク、説明)を git repo にまとめました。
私以外の誰にも役立つかどうかはわかりませんが、自分で調べたときにこの種のドキュメントを見つけてほしいので、同じようなことをしようとしている人にはお勧めしますご覧ください。