1. ループバックモジュールのロード

1. ループバックモジュールのロード

私はUSBヘッドセットを使用して2台のコンピュータで作業しています。 Linux以外のコンピュータの出力をLinuxコンピュータのライン入力(青いオーディオジャック)に接続し、PulseAudioを使用して信号をLinuxコンピュータのヘッドフォン出力にミックスして、両方を聞きたいです。

オーディオハードウェア図

pavucontrolは、「Line In」(選択)、「フロントマイク」、「リアマイク」などのポートを選択できる「内蔵オーディオアナログステレオ」入力デバイスを示しています。 Linux以外のコンピュータでオーディオの再生に反応するデバイスのボリュームメーターを表示できます。

内蔵オーディオシミュレーションステレオ

PulseAudioにこのオーディオ信号を選択した出力デバイスで再生させるにはどうすればよいですか?

答え1

1. ループバックモジュールのロード

pacmd load-module module-loopback latency_msec=5

再生および録音デバイスを作成します。

2. pavucontrolでデバイスを設定する

pavucontrolでは記録タブで「ループバック」デバイスを設定します。~からライン入力信号を受信する機器の入力機器です。

録画設定

内部に遊ぶタブで「ループバック」デバイスを設定します。存在するライン入力信号を聞きたいデバイスの出力デバイスです。

再生設定

3. トラブルシューティング

オーディオ信号に問題がある場合は、モジュールを取り外してpacmd unload-module module-loopbackより高いlatency_msec=値で再試行してください。

補足説明

最新の中級コンピュータは、次のオプションを使用して待ち時間を簡単に管理できますlatency_msec=1

pacmd load-module module-loopback latency_msec=1

この答えは次のとおりです。このフォーラムの投稿。ありがとうございます!

答え2

で述べたように優先回答

pacmd load-module module-loopback latency_msec=5

再生および録音デバイスを作成する必要がありますが、すべての場合に機能しないようです。この場合、試してみることができます

pactl load-module module-loopback latency_msec=5

pactlを使用して同様のパラメータを確認してください。

私にとってはpacmdでは動作しませんが、pactlでは動作します。

注:これら2つのオプションは、PipewireではなくPulse Audioでのみ機能します。

答え3

私はここで非常に似た状況にあります! PC 2台、Linuxコンピュータ(マイメインコンピュータ)およびWindowsコンピュータ。双方向オーディオ接続を自動化するための素晴らしい設定があり、LinuxシステムとPulseaudioと一緒にヘッドフォンを使用すると、Windowsシステムの音を聞き、Linux経由でマイクに話すことができ、Windowsシステムに戻ります。マイクがオン。

明らかに、これはマシン間に1本のAUXケーブルを必要とせず、2本のAUXケーブルを必要とします。しかし、一度それを見つけた後、それは魅力のように動作しました。同じ作業に興味のある人が簡単に使用できるように、ここでスクリプトを共有します。これを機能させるには、お使いのコンピュータの2つの特定のオーディオリスナー名を見つけてスクリプト変数に入力するだけです(私とは異なる場合)。

#!/usr/bin/env bash

# 2-way audio connection - Slaves 2nd device audio through this device:
# - Directs AUX in to default speakers (connect 2nd device -> AUX).
# - Directs Mic to AUX out (connect AUX out -> 2nd device AUX in).
# 
# Then sleeps forever. Stops audio redirection when killed.
# 
# Requires:
# sudo apt-get install pactl
# 
# Manual Process:
# 1) pavucontrol > Configuration > Built-in Audio > Analog Stereo Duplex
# 2) Find - look for "analog-stereo" (no frills) in both commands:
#    pacmd list-sources | grep name:
#    pacmd list-sinks | grep name:
# 3) Select - enter found name or ID in this command:
#    pactl load-module module-loopback source=$auxinsource source_dont_move=1 sink=$defaultsink
# 4) pavucontrol > Input > Built-in Analog Stereo > Line in (plugged in)
# 5) pavucontrol > Playback > Loopback from Built-in Analog Stereo > SELECT_SPEAKERS
# 6) pavucontrol > Output > Built-in Analog Stereo > Line Out (plugged in)
# 7) pavucontrol > Recording > Loopback to Built-in Analog Stereo > SELECT_HEADSET_MIC
#
# BREAKPOINT:
# read -n 1 -s -r -p 'BREAKPOINT'

auxinsource='alsa_input.pci-0000_00_1f.3.analog-stereo'                                                 # Get name of AUX in (Replace these with yours!)
micsink='alsa_output.pci-0000_00_1f.3.analog-stereo'                                                    # Get name of AUX out (Replace these with yours!)

set -e

printf '\n 1) Connect Audio IN (Win->)...'
defaultsink=$(pactl get-default-sink)                                                                   # Get name of currently selected speakers
modulein=$(pactl load-module module-loopback source=$auxinsource source_dont_move=1 sink=$defaultsink)  # Locked from manual selection in GUI, will not jump around
#modulein=$(pactl load-module module-loopback source=$auxinsource sink=$defaultsink)                    # Unlocked for manual selection in GUI, but may jump around
#echo ' ' $defaultsink ' connected!'                                                                    # Debug output
echo ' connected!'


printf '\n 2) Connect Audio OUT (<-Mic)...'
modulemic=$(pactl load-module module-loopback latency_msec=10 source_dont_move=1 sink=$micsink)         # Locked from manual selection in GUI, will not jump around
#modulemic=$(pactl load-module module-loopback latency_msec=10 sink=$micsink)                           # Unlocked for manual selection in GUI, but may jump around
#echo ' ' $micsink ' connected!'                                                                        # Debug output
echo ' connected!'


printf '\n CTRL+C to stop'                                                                              # Flavor text.


function cleanup
{
  pactl unload-module $modulemic
  if [ ! -z ${modulein+x} ]; then
    pactl unload-module $modulein
  else
    echo
  fi
}

trap cleanup EXIT

sleep infinity

この設定に関するステップバイステップのトラブルシューティング手順(オプション)については、以下を参照してください。

#!/usr/bin/env bash

# Troubleshooting steps for audioconnect
#
# Requires:
# sudo apt-get install pactl
# 
# BREAKPOINT:
# read -n 1 -s -r -p 'BREAKPOINT'


printf ' 1) pavucontrol > Configuration > Built-in Audio > Analog Stereo Duplex'
read -n 1 -s -r -p ''
echo ': OK'
printf ' 2) pavucontrol > Input > Built-in Analog Stereo > Line in (plugged in)'
read -n 1 -s -r -p ''
echo ': OK'
printf ' 3) pavucontrol > Playback > Loopback from Built-in Analog Stereo > SELECT_SPEAKERS'
read -n 1 -s -r -p ''
echo ': OK'
printf ' 4) pavucontrol > Output > Built-in Analog Stereo > Line Out (plugged in)'
read -n 1 -s -r -p ''
echo ': OK'
printf ' 5) pavucontrol > Recording > Loopback to Built-in Analog Stereo > SELECT_MIC'
read -n 1 -s -r -p ''
echo ': OK'

関連情報