仮想マイク用のルーティングアプリケーション(pulseaudio)

仮想マイク用のルーティングアプリケーション(pulseaudio)

私の側でアプリケーションを聞くことができますが、私のアプリケーションのオーディオを仮想マイクロルーティングしようとしています。それではどうすればいいですか?

ベストアンサー1

PulseAudioにはオーディオがありますソース(音が出る場所、例:マイク)流し(例:スピーカーで接続する場所)源泉、オーディオを再生するアプリケーションは、流し。残念ながら、アプリケーションの出力(aシンク入力)はソースと見なされず、録音することはできませんが、それを解決する方法があります。

非常に簡単な設定では、「モニターソース」を使用して、現在聞いているすべてを録音できます。すべてのPulseAudioシンクは、pactl list short sourcesこのシンクの名前(名前はで終わる.monitor)を見つけるために実行できます。 PulseAudioを使用する他の録音プログラムparec --record --device $SOURCEがある場合は、録音が開始された後にpavucontrolGUIを使用してタブのソースを変更できます。Recording

特定のアプリケーションだけを録音したい場合は、もう少しトリッキーです。 PulseAudioには、これをサポートするいくつかの関連モジュールがmodule-null-sinkありますmodule-combine-sink

  • ヌルシンクモジュールは、何も接続されていないシンクを生成します。アプリケーション出力を接続すると、それ自体はあまり役に立ちませんが、すべてのシンクと同様に、録音できるモニターソースがあります。 、ここにアプリケーションを接続すると、すでに隔離録音ができますが、これ以上直接聞くことはできません。
  • 結合シンクモジュールは、受信したすべての入力を2つの異なるシンクに転送する新しいシンクを生成します。新しい結合シンクに送信することが両方のシンクに送信するのと同じであるという点で、名前は少し混乱しています。このシナリオでは、サウンドカードとヌルシンクを結合し、アプリケーション出力を新しい結合シンクに接続します。

次のようにこれらのシンクを作成できます(pactl list short sinks結合シンクで使用するシンク名を見つけるために使用)。

pactl load-module module-null-sink sink_name=nullsink
pactl load-module module-combine-sink sink_name=combine slaves=nullsink,alsa_output.pci-0000_00_1b.0.analog-stereo

ここで説明されているように、接続を変更して結合pavucontrolシンク(「同時出力...」)で再生するようにアプリケーションを設定し、ヌルシンクで録音するようにレコーダーを設定することが含まれます(「ヌル出力」)。

CLIを使用してこれらの接続を確立することもpactl可能ですが、より複雑になる可能性があります。

おすすめ記事