オーディオを録音する必要があるアプリケーションがあります。この目的のために、pavucontrol
録音ソフトウェアのオーディオ入力をオーディオ出力用のモニタに設定しました。今私の問題は、ほとんどの場合、出力を聞きたくないということです。このためにmodprobe snd-aloop
。これはうまく機能しますが、時には録音中にライブオーディオストリームを聴きたい場合があります。つまり、常にサウンドアプリのオーディオ出力と録音アプリのオーディオ入力を変更する必要があります。これは本当に疲れています。また、これにより、録音アプリは特定のアプリだけでなく、私が聞くすべてを録音します。
私が見つけたこれ答えます。しかし、すべてのデバイスでサウンド出力をしたくないので、これは私が望むものではありません。ダミーループと私が選択した別の出力です。私のシステムはgnome3-shellを使用するArch Linuxです。私はこれが永久的なものを望んでいないので、すぐに変更できるソリューションが必要です。
ボーナスの質問:「リアルタイムリスニング」(アプリケーションのオーディオストリームに2番目のオーディオ出力を追加)を有効/無効にするショートカットがあればいいので、CLIコマンドが良いでしょう。
特に、次のオーディオパスを切り替えることができます。
[playback app] --> [dummy aloop] --> [monitor of aloop] --> [recording app]
そして
[playback app] --> [dummy aloop] --> [monitor of aloop] --> [recording app]
\-> [headphones] (simultanously)
答え1
まだPulseaudioをお使いの方は、ぜひご確認ください。Pulseaudioのモジュール、特にmodule-loopback
そしてmodule-null-sink
。私の経験でsnd-aloop
は、使用に少し苦しんでいますが、Pulseaudioは主にサウンドストリーミングに対処するため、Pulseaudioを使用する方がはるかに簡単です。
したがって、ユースケースが「ロードスピーカーを使用して他のコンテンツを処理し、時々アプリケーションを聞きながらバックグラウンドでアプリケーションの出力を録音する」場合は、適切に名前が付けられた空の受信機を作成して使用しますpavucontrol
(Pulseaudioはそれを覚えています)。 、monitor
録音するシンクのソース(必要に応じて録音アプリケーションのコマンドラインオプションを使用してPulseaudioアプリケーション名を設定します。)聞きたいときは、モニターソースとスピーカーレシーバーの間にループバック接続を設定します。または、このループバックを永久に作成し、必要に応じてミュート/ミュート解除します。
コマンドラインでpacmd
またはを使用して、これらすべてを試すことができます。pactl
同じコマンドを使用してショートカットをスクリプト化することもできます。 Pulseaudio起動スクリプトを使用して永久に作成します。
だから何か
pactl load-module module-null-sink sink_name=recsink
pactl load-module module-loopback source=recsink.monitor sink=your_loadspeaker_sink
pactl list short sinks
シンク名を表示するために使用されます。pactl help
そしてpacmd help
より多くの命令を受けてください。