我在这个网站和其他网站上看到了这个问题的多个版本,但都没有太大帮助。我正在尝试设置我的 Turtle Beach Z60 耳机,以便它播放环绕声,但遇到了一些问题。
我已成功编辑,/etc/pulse/daemon.conf
以便default-sample-channels = 8
。然而,问题是当我尝试时,speaker-test -c 8
左侧、后左、右侧和后右的音量比前左、前中、前右和后中低得多。不仅如此,与通常在 Windows 上工作相比,扬声器的音质非常低。
最后,当我尝试选择声卡时alsamixer
出现错误
cannot load mixer controls: Invalid argument
。
我的/proc/asound/card1/stream0
文件是
Turtle Beach Turtle Beach Z60 游戏音频,USB-0000:00:14.0-1,全速:USB 音频
回放:
状态:停止
接口 2
替代集 1
格式:S16_LE
通道:2
端点:1 OUT(自适应)
费率:16000 接口 2 Altset 2
格式:S24_3LE
通道:2
端点:1 OUT(自适应)
价格:16000
捕获:
状态:停止
接口 1
替代集 1
格式:S16_LE
通道:2
端点:1 IN(自适应)
费率:16000 接口 1 Altset 2
格式:S24_3LE
通道:2
端点:1 IN(自适应)
价格:16000
任何帮助都将不胜感激。谢谢。
答案1
这是一篇旧帖子,但我希望它能帮助一些人。我花了很长时间摆弄这副耳机才得到正确的声音。我不是 alsa 或 pulse-audio 方面的专家。
以下内容是在 Fedora Linux 33 上完成的,但可能也适用于 Ubuntu 用户。
此耳机有一个用于语音聊天(低质量)的频道和一个用于普通音频的频道。插入此耳机只会使低质量声音可用于脉冲音频。这可以通过播放音频并转动 USB 线上控制器上的音量轮来验证。仅使用语音通道轮才能更改音量。
您可以看到样本量较低:
pactl list sinks
Sink #5
State: SUSPENDED
Name: alsa_output.usb-Turtle_Beach_Turtle_Beach_Z60_Game_Audio_000000000000-00.analog-stereo
Description: Turtle Beach Z60 Game Audio Analog Stereo
Driver: module-alsa-card.c
Sample Specification: s16le 2ch 16000Hz
如果我查看 /proc/asound/card0 中的不同流(我的耳机是 card0,你的可能有所不同)我可以看到 stream0 是 16000Hz 而 stream1 是适当的音质流:
[stephan@nyx ~]$ cat /proc/asound/card0/stream0
Turtle Beach Turtle Beach Z60 Game Audio at usb-0000:00:14.0-1, full speed : USB Audio
Playback:
Status: Stop
Interface 2
Altset 1
Format: S16_LE
Channels: 2
Endpoint: 1 OUT (ADAPTIVE)
Rates: 16000
Bits: 16
Channel map: FL FR
Interface 2
Altset 2
Format: S24_3LE
Channels: 2
Endpoint: 1 OUT (ADAPTIVE)
Rates: 16000
Bits: 24
Channel map: FL FR
Capture:
Status: Stop
Interface 1
Altset 1
Format: S16_LE
Channels: 2
Endpoint: 1 IN (ADAPTIVE)
Rates: 16000
Bits: 16
Channel map: FL FR
Interface 1
Altset 2
Format: S24_3LE
Channels: 2
Endpoint: 1 IN (ADAPTIVE)
Rates: 16000
Bits: 24
Channel map: FL FR
[stephan@nyx ~]$ cat /proc/asound/card0/stream1
Turtle Beach Turtle Beach Z60 Game Audio at usb-0000:00:14.0-1, full speed : USB Audio #1
Playback:
Status: Running
Interface = 4
Altset = 1
Packet Size = 192
Momentary freq = 44100 Hz (0x2c.199a)
Interface 4
Altset 1
Format: S16_LE
Channels: 2
Endpoint: 2 OUT (ADAPTIVE)
Rates: 8000, 11025, 16000, 22050, 24000, 32000, 44100, 48000
Bits: 16
Channel map: FL FR
Interface 4
Altset 2
Format: S24_3LE
Channels: 2
Endpoint: 2 OUT (ADAPTIVE)
Rates: 8000, 11025, 16000, 22050, 24000, 32000, 44100, 48000
Bits: 24
Channel map: FL FR
Interface 4
Altset 3
Format: S16_LE
Channels: 8
Endpoint: 2 OUT (ADAPTIVE)
Rates: 8000, 11025, 16000, 22050, 24000, 32000, 44100, 48000
Bits: 16
Channel map: FL FR FC LFE SL SR FLC FRC
这是个好消息,可能意味着没有驱动程序问题,但用户空间中的某些东西没有选择正确的输出流。
使用 aplay 命令,我发现我的卡有两个设备。我假设 stream1 位于第二个设备(设备 1)上,在 ALSA 中称为 hw:0,1
[stephan@nyx ~]$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Audio [Turtle Beach Z60 Game Audio], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: Audio [Turtle Beach Z60 Game Audio], device 1: USB Audio [USB Audio #1]
Subdevices: 0/1
Subdevice #0: subdevice #0
我通过使用此特定输出设备打开 VLC 来验证此设备上的质量。启动 VLC 并播放音频文件
vlc --aout alsa --alsa-audio-device hw:0,1
在确认声音质量符合要求后,我使用 ALSA 设备在 Pulse-audio 中创建了一个接收器
pactl load-module module-alsa-sink device=hw:0,1
在 GNOME 中,我现在可以看到一个名为“Turtle Beach Z60 Game Audio”的新音频设备。使用它作为输出设备,音质非常好。您可以通过转动 USB 线控制器上的音量滚轮来验证是否使用了正确的声道。它应该对普通音量滚轮而不是语音滚轮做出反应。
您可以通过将此行添加到 /etc/pulse/default.pa 来使对 pulse-audio 的更改永久生效
load-module module-alsa-sink device=hw:0,1
现在,在脉冲音频中列出接收器可以显示接收器的正确样本大小
Sink #6
State: RUNNING
Name: alsa_output.hw_0_1
Description: Turtle Beach Z60 Game Audio
Driver: module-alsa-sink.c
Sample Specification: s16le 2ch 44100Hz
Channel Map: front-left,front-right
请注意,它只显示两个声道,而不是环绕声。这可能是可以在某处进行的设置,但我对环绕声不感兴趣。这至少可以通过使用正确的声道来修复音质。
也许这个问题有更优雅的解决方案,但这对我来说有效。