倒置环绕声道

倒置环绕声道

我在 Ubuntu 11.04 上遇到了环绕声问题。我设法通过 HDMI 播放声音,但声道颠倒了。例如,当 Pulse Audio 在中央扬声器上播放时,它会通过我的 LFE。声音偏好设置频道中包含的扬声器测试也出现了同样的情况。

在搜索有关此问题的主题时,我尝试通过更改通道映射设置来编辑 /etc/pulse/daemon.conf - 但无济于事。也许我没有正确使用它?

有什么办法可以交换这些频道并使我的 5.1 正常工作吗?

System specs :
Ubuntu 11.04
AsRock aion330
HDMI amp

提前致谢!


aplay -L给出结果:

default
    Playback/recording through the PulseAudio sound server
pulse
    Playback/recording through the PulseAudio sound server
front:CARD=NVidia,DEV=0
    HDA NVidia, VT1708S Analog
    Front speakers
surround40:CARD=NVidia,DEV=0
    HDA NVidia, VT1708S Analog
    4.0 Surround output to Front and Rear speakers
surround41:CARD=NVidia,DEV=0
    HDA NVidia, VT1708S Analog
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=NVidia,DEV=0
    HDA NVidia, VT1708S Analog
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=NVidia,DEV=0
    HDA NVidia, VT1708S Analog
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=NVidia,DEV=0
    HDA NVidia, VT1708S Analog
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=NVidia,DEV=0
    HDA NVidia, VT1708S Digital
    IEC958 (S/PDIF) Digital Audio Output
hdmi:CARD=NVidia,DEV=0
    HDA NVidia, HDMI 0
    HDMI Audio Output
dmix:CARD=NVidia,DEV=0
    HDA NVidia, VT1708S Analog
    Direct sample mixing device
dmix:CARD=NVidia,DEV=1
    HDA NVidia, VT1708S Digital
    Direct sample mixing device
dmix:CARD=NVidia,DEV=3
    HDA NVidia, HDMI 0
    Direct sample mixing device
dsnoop:CARD=NVidia,DEV=0
    HDA NVidia, VT1708S Analog
    Direct sample snooping device
dsnoop:CARD=NVidia,DEV=1
    HDA NVidia, VT1708S Digital
    Direct sample snooping device
dsnoop:CARD=NVidia,DEV=3
    HDA NVidia, HDMI 0
    Direct sample snooping device
hw:CARD=NVidia,DEV=0
    HDA NVidia, VT1708S Analog
    Direct hardware device without any conversions
hw:CARD=NVidia,DEV=1
    HDA NVidia, VT1708S Digital
    Direct hardware device without any conversions
hw:CARD=NVidia,DEV=3
    HDA NVidia, HDMI 0
    Direct hardware device without any conversions
plughw:CARD=NVidia,DEV=0
    HDA NVidia, VT1708S Analog
    Hardware device with all software conversions
plughw:CARD=NVidia,DEV=1
    HDA NVidia, VT1708S Digital
    Hardware device with all software conversions
plughw:CARD=NVidia,DEV=3
    HDA NVidia, HDMI 0
    Hardware device with all software conversions

gnome-volume-control 确实设置为数字环绕 5.1 HDMI 输出。不过,扬声器测试受到声道问题的影响。

答案1

当通道配置不正确时,要在 HDMI 5.1 声音中设置正确的映射,您应该在命令行中尝试以下命令

  1. pulseaudio -k
  2. gksu gedit /usr/share/pulseaudio/alsa-mixer/profile-sets/extra-hdmi.conf
  3. 找到该文件中的 HDMI 环绕部分。将错误的扬声器切换为通道映射并保存文件。
  4. 跑步speaker-test -c6 -twav
  5. 如果仍然不正确,请返回步骤1。

在带有 NVIDIA ION(zotac 主板)的 Ubuntu 12.04 上进行了测试。

答案2

如果不了解您当前的 ALSA 和 PulseAudio 设置,我们只能猜测这里可能出了什么问题。

要解决声音输出问题,请

  • 检查 ALSA 映射是否正确(通过aplay -L终端调用)
  • 确保您的硬件配置文件设置为 5.1。在 gnome-volume-control 中音频设置 -> 硬件
  • 尝试将混音设置更改为/etc/pulse/daemon.conf

    enable-remixing = yes也可以尝试no

    enable-lfe-remixing = no也可以尝试yes

通道映射daemon.conf仅在以下情况下有效:没有其他存在通道图(另请参阅pulseaudio 票号 #825)。

ALSA HDMI 声音输出可能是数字的,因此 - 与模拟通道不同 - 5.1 环绕输出的混合由所连接的硬件完成。

答案3

@Takkat :NVM 我找到了解决方案。

我尝试了你的建议,但没有成功...然后我搜索了有关显卡配置文件的更多信息。最后我查看了 pulseaudio 加载的预设文件,发现有一个从 nvidia.conf 加载的 Nvidia 配置文件。

我在这个 nvidia.conf 文件中发现了许多 hdmi 环绕 5.1 预设。

反转了一些频道(例如 lfe 和左前),保存了文件,关闭了 pulseaudio,效果很好。

谢谢您的帮助 :)

答案4

我可以像这样重新映射模拟卡的通道

cp /usr/share/pulseaudio/alsa-mixer/profile-sets/default.conf ~/.pulse/rotatedProfile.conf

我编辑了该文件,以便我的配置的通道图符合我的要求

[Mapping analog-surround-51]
device-strings = surround51:%f
channel-map = front-right,rear-right,front-left,rear-left,front-center,lfe
paths-output = analog-output analog-output-speaker analog-output-desktop-speaker   analog-output-lfe-on-mono
priority = 8
direction = output

然后我不得不强制 pulseaudio 手动加载 alsa 卡,而不是自动加载,并将配置文件设置为我刚刚创建的文件。我不知道是否有办法强制配置文件自动检测卡,或者强制只手动检测一张卡。我注释掉了并#load-module module-udev-detect添加了以下行到文件末尾#load-module module-detect/etc/pulse/default.pa

load-module module-alsa-card device_id=Intel profile_set=/home/silent/.pulse/rotatedProfile.conf

其中device_id可以是数字或字符串。您可以通过以下方式查看您的卡名和 ID:

cat /proc/asound/cards

作为参考,我的输出是这样的

  0 [Intel          ]: HDA-Intel - HDA Intel
                       HDA Intel at 0xf9ff8000 irq 44

所以device_id=0工作以及device_id=Intel

我见过有关数字 ID 在重启后更换位置的报告,因此如果您没有同名的不同卡,我会选择字符串表示。

编辑:在 13.04 中,修改extra-hdmi.conf而不是default.conf直接修改default.pa就可以了。另一方面,这存在在升级过程中被覆盖的风险(是吗?)。

相关内容