質問
新しいマイクのパルスオーディオ構成に問題があります。 ALSAはこのデバイスを完全に処理しますが、デフォルトのPulseAudioモジュールには音がありません。
テスト
次のテストでは、基本構成に問題があると思われる部分を説明したいと思います。下部の設定の詳細を参照してください。
- AlSAおよびPulse Audioに対応するデバイスとソース名を定義します。
DEV_ALSA_DEF=hw:2,1
DEV_PULS_DEF=alsa_input.usb-Generic_USB_Audio-00.iec958-stereo
- カードとソースのすべてのチャンネルのミュートを解除し、音量を上げます。
amixer -c2 set Mic,0 0
amixer -c2 set Mic,0 100%
amixer -c2 set Mic,1 0
amixer -c2 set Mic,1 100%
pacmd set-source-mute $DEV_PULS_DEF 0
pacmd set-source-volume $DEV_PULS_DEF 65536
- ALSAとPulse Audioが推奨するAPIを使用して受信音を録音します。
arecord -f dat -r 48000 -D $DEV_ALSA_DEF -d 10 out_alsa_def.wav
timeout 10 pacat -r --channels=2 --file-format=wav --device $DEV_PULS_DEF out_puls_def.wav
分析する
pavucontrol
Pulse Audioサービスが正しく機能していることを確認するために、再起動後と起動後にこのコードをテストしました。その結果、out_alsa_def.wav
正確で明確な記録でありながら、同時にout_puls_def.wav
完全に静かで/空いて/空虚です。私の最初の質問:Pulse AudioをALSAチャンネルに接続できないのはなぜですか?。
解決策
ALSAカードで作成された新しいソースを使用してソリューションを見つけることができました。
テスト
$DEV_PULS_DEF
「クローン」は、カードに対応するパルスオーディオソースモジュールを「手動で」ロードすることによって生成されます$DEV_ALSA_DEF
。
pacmd load-module module-alsa-source device=$DEV_ALSA_DEF
DEV_PULS_MAN=alsa_input.hw_2_1
- ソースのミュートを解除して音量を上げます。
pacmd set-source-mute $DEV_PULS_MAN 0
pacmd set-source-volume $DEV_PULS_MAN 65536
- 着信音を録音します。
timeout 10 pacat -r --channels=2 --file-format=wav --device $DEV_PULS_MAN out_puls_man.wav
分析する
今回は、出力ファイルがout_puls_man.wav
完全に文書化されました。私の結論は、「手動で」ロードされたソースはALSA用のチャネルを取得しますが、デフォルトの生成ソースにはアクセスできないことです。私にとって、これは自動パルスオーディオ構成の一部が誤動作していることを意味します。 2番目の質問:ソースコードを手動でロードする方が成功したのはなぜですか?
しかし…
これ文書使用しないことをお勧めし、可能であればお勧めしますmodule-alsa-source
。module-udev-detect
しかし、$ pacmd load-module module-udev-detect
問題は解決されませんでした。 3番目の質問:推奨ツールのみを使用してこの問題を正しく解決するにはどうすればよいですか。
設定
マイク
問題のマイクは、USB-C経由で接続された新しいHP E27d G4の内蔵ウェブカメラの一部です。マイクはステレオで、デジタルステレオ(IEC958)入力プロファイルを使用します。ビデオ転送はすぐに機能します。
システム
$ inxi -SA
System:
Host: rivendell Kernel: 6.1.80-1-MANJARO
arch: x86_64 bits: 64
Desktop: i3 v: 4.23
Distro: Manjaro Linux
Audio:
Device-1: Intel Cannon Lake PCH cAVS
driver: snd_hda_intel
Device-2: NVIDIA driver: snd_hda_intel
Device-3: HP USB Audio
driver: hid-generic,snd-usb-audio,usbhid
type: USB
API: ALSA v: k6.1.80-1-MANJARO
status: kernel-api
Server-1: PulseAudio v: 17.0
status: active
オーディオ設定
スクリプトの実行後に生成されます。
$ aplay -l
**** List of PLAYBACK Hardware Devices ****
[some more output]
card 2: Audio [USB Audio], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
$ amixer -c2
Simple mixer control 'PCM',0
Capabilities: pswitch pswitch-joined
Playback channels: Mono
Mono: Playback [on]
Simple mixer control 'Mic',0
Capabilities: cvolume cswitch cswitch-joined
Capture channels: Front Left - Front Right
Limits: Capture 0 - 47
Front Left: Capture 47 [100%] [0.00dB] [on]
Front Right: Capture 47 [100%] [0.00dB] [on]
Simple mixer control 'Mic',1
Capabilities: cvolume cswitch cswitch-joined
Capture channels: Front Left - Front Right
Limits: Capture 0 - 47
Front Left: Capture 47 [100%] [0.00dB] [on]
Front Right: Capture 47 [100%] [0.00dB] [on]
$ pacmd list-sources
5 source(s) available.
[some more output]
index: 1
name: <alsa_input.usb-Generic_USB_Audio-00.iec958-stereo>
driver: <module-alsa-card.c>
flags: HARDWARE DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
state: SUSPENDED
suspend cause: IDLE
priority: 9047
volume: front-left: 65536 / 100% / 0.00 dB, front-right: 65536 / 100% / 0.00 dB
balance 0.00
base volume: 65536 / 100% / 0.00 dB
volume steps: 65537
muted: no
current latency: 0.00 ms
max rewind: 0 KiB
sample spec: s16le 2ch 48000Hz
channel map: front-left,front-right
Stereo
used by: 0
linked by: 0
configured latency: 0.00 ms; range is 0.50 .. 2000.00 ms
card: 1 <alsa_card.usb-Generic_USB_Audio-00>
module: 7
properties:
alsa.resolution_bits = "16"
device.api = "alsa"
device.class = "sound"
alsa.class = "generic"
alsa.subclass = "generic-mix"
alsa.name = "USB Audio"
alsa.id = "USB Audio"
alsa.subdevice = "0"
alsa.subdevice_name = "subdevice #0"
alsa.device = "0"
alsa.card = "2"
alsa.card_name = "USB Audio"
alsa.long_card_name = "Generic USB Audio at usb-0000:00:14.0-4.4, high speed"
alsa.driver_name = "snd_usb_audio"
device.bus_path = "pci-0000:00:14.0-usb-0:4.4:1.0"
sysfs.path = "/devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4.4/1-4.4:1.0/sound/card2"
udev.id = "usb-Generic_USB_Audio-00"
device.bus = "usb"
device.vendor.id = "03f0"
device.vendor.name = "HP, Inc"
device.product.id = "086d"
device.product.name = "USB Audio"
device.serial = "Generic_USB_Audio"
device.string = "iec958:2"
device.buffering.buffer_size = "384000"
device.buffering.fragment_size = "192000"
device.access_mode = "mmap+timer"
device.profile.name = "iec958-stereo"
device.profile.description = "Digital Stereo (IEC958)"
device.description = "USB Audio Digital Stereo (IEC958)"
module-udev-detect.discovered = "1"
device.icon_name = "audio-card-usb"
ports:
iec958-stereo-input: Digital Input (S/PDIF) (priority 0, latency offset 0 usec, available: unknown)
properties:
active port: <iec958-stereo-input>
[some more output]
index: 4
name: <alsa_input.hw_2_1>
driver: <module-alsa-source.c>
flags: HARDWARE DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
state: SUSPENDED
suspend cause: IDLE
priority: 9040
volume: front-left: 65536 / 100% / 0.00 dB, front-right: 65536 / 100% / 0.00 dB
balance 0.00
base volume: 65536 / 100% / 0.00 dB
volume steps: 65537
muted: no
current latency: 0.00 ms
max rewind: 0 KiB
sample spec: s16le 2ch 48000Hz
channel map: front-left,front-right
Stereo
used by: 0
linked by: 0
configured latency: 0.00 ms; range is 0.50 .. 2000.00 ms
module: 25
properties:
alsa.resolution_bits = "16"
device.api = "alsa"
device.class = "sound"
alsa.class = "generic"
alsa.subclass = "generic-mix"
alsa.name = "USB Audio #1"
alsa.id = "USB Audio"
alsa.subdevice = "0"
alsa.subdevice_name = "subdevice #0"
alsa.device = "1"
alsa.card = "2"
alsa.card_name = "USB Audio"
alsa.long_card_name = "Generic USB Audio at usb-0000:00:14.0-4.4, high speed"
alsa.driver_name = "snd_usb_audio"
device.bus_path = "pci-0000:00:14.0-usb-0:4.4:1.0"
sysfs.path = "/devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4.4/1-4.4:1.0/sound/card2"
udev.id = "usb-Generic_USB_Audio-00"
device.bus = "usb"
device.vendor.id = "03f0"
device.vendor.name = "HP, Inc"
device.product.id = "086d"
device.product.name = "USB Audio"
device.serial = "Generic_USB_Audio"
device.string = "hw:2,1"
device.buffering.buffer_size = "384000"
device.buffering.fragment_size = "192000"
device.access_mode = "mmap+timer"
device.description = "USB Audio"
device.icon_name = "audio-input-microphone-usb"
$ pactl list cards
[some more output]
Card #1
Name: alsa_card.usb-Generic_USB_Audio-00
Driver: module-alsa-card.c
Owner Module: 7
Properties:
alsa.card = "2"
alsa.card_name = "USB Audio"
alsa.long_card_name = "Generic USB Audio at usb-0000:00:14.0-4.4, high speed"
alsa.driver_name = "snd_usb_audio"
device.bus_path = "pci-0000:00:14.0-usb-0:4.4:1.0"
sysfs.path = "/devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4.4/1-4.4:1.0/sound/card2"
udev.id = "usb-Generic_USB_Audio-00"
device.bus = "usb"
device.vendor.id = "03f0"
device.vendor.name = "HP, Inc"
device.product.id = "086d"
device.product.name = "USB Audio"
device.serial = "Generic_USB_Audio"
device.string = "2"
device.description = "USB Audio"
module-udev-detect.discovered = "1"
device.icon_name = "audio-card-usb"
Profiles:
input:analog-stereo: Analog Stereo Input (sinks: 0, sources: 1, priority: 65, available: no)
input:iec958-stereo: Digital Stereo (IEC958) Input (sinks: 0, sources: 1, priority: 32823, available: yes)
output:analog-stereo: Analog Stereo Output (sinks: 1, sources: 0, priority: 39268, available: yes)
output:analog-stereo+input:analog-stereo: Analog Stereo Duplex (sinks: 1, sources: 1, priority: 6565, available: yes)
output:analog-stereo+input:iec958-stereo: Analog Stereo Output + Digital Stereo (IEC958) Input (sinks: 1, sources: 1, priority: 39323, available: yes)
output:iec958-stereo: Digital Stereo (IEC958) Output (sinks: 1, sources: 0, priority: 38268, available: yes)
output:iec958-stereo+input:analog-stereo: Digital Stereo (IEC958) Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 5565, available: yes)
output:iec958-stereo+input:iec958-stereo: Digital Stereo Duplex (IEC958) (sinks: 1, sources: 1, priority: 38323, available: yes)
output:iec958-ac3-surround-51: Digital Surround 5.1 (IEC958/AC3) Output (sinks: 1, sources: 0, priority: 300, available: yes)
output:iec958-ac3-surround-51+input:analog-stereo: Digital Surround 5.1 (IEC958/AC3) Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 365, available: no)
output:iec958-ac3-surround-51+input:iec958-stereo: Digital Surround 5.1 (IEC958/AC3) Output + Digital Stereo (IEC958) Input (sinks: 1, sources: 1, priority: 33123, available: yes)
off: Off (sinks: 0, sources: 0, priority: 0, available: yes)
Active Profile: input:iec958-stereo
Ports:
analog-input-mic: Microphone (type: Mic, priority: 8700, latency offset: 0 usec, not available)
Properties:
device.icon_name = "audio-input-microphone"
Part of profile(s): input:analog-stereo, output:analog-stereo+input:analog-stereo, output:iec958-stereo+input:analog-stereo, output:iec958-ac3-surround-51+input:analog-stereo
iec958-stereo-input: Digital Input (S/PDIF) (type: SPDIF, priority: 0, latency offset: 0 usec, availability unknown)
Part of profile(s): input:iec958-stereo, output:analog-stereo+input:iec958-stereo, output:iec958-stereo+input:iec958-stereo, output:iec958-ac3-surround-51+input:iec958-stereo
analog-output-headphones: Headphones (type: Headphones, priority: 9900, latency offset: 0 usec, available)
Properties:
device.icon_name = "audio-headphones"
Part of profile(s): output:analog-stereo, output:analog-stereo+input:analog-stereo, output:analog-stereo+input:iec958-stereo
iec958-stereo-output: Digital Output (S/PDIF) (type: SPDIF, priority: 0, latency offset: 0 usec, availability unknown)
Part of profile(s): output:iec958-stereo, output:iec958-stereo+input:analog-stereo, output:iec958-stereo+input:iec958-stereo
[some more output]
失敗の方法
$ pacmd load-module module-udev-detect
$ systemctl --user restart pulseaudio.service
そして$ systemctl --user restart pulseaudio.socket
$ pacmd load-module module-remap-source master=$DEV_PULS_DEF
$ ffmpeg -f pulse -i $DEV_PULS_DEF output.wav
$ pamac reinstall pulseaudio
そしてpamac build pulseaudio
pavucontrol
(目に見える振幅なし)