在pulseaudio中设置不同的每设备采样率?

在pulseaudio中设置不同的每设备采样率?

我的音频设备

  • 输入:Logitech C310 网络摄像头麦克风 (16kHz)
  • 输出:高保真播放(A2DP Sink)模式下的索尼 MBH20 蓝牙耳机 (44.1kHz)

我的问题

使用默认的 PulseAudio 设置,蓝牙耳机听起来很棒,但通过网络摄像头麦克风进行的录音音调很高且速度加快,就像阿尔文和花栗鼠的录音一样。

如果我配置 PulseAudio 将采样率设置为 16kHz,

# /etc/pulse/daemon.conf

default-sample-rate = 16000

然后网络摄像头工作正常,但耳机的音质严重下降。

我的问题

  • 有没有办法只配置单个源的采样率?
  • pacmd list-sources错误地将网络摄像头麦克风的采样率报告为 48kHz ( sample spec: s16le 1ch 48000Hz)。这可能是问题所在吗?如果是这样,有什么方法可以手动更改示例规格吗?如果不是,这是否属于应该向pulseaudio 维护人员报告的错误?
  • 或者这个问题还有我没有看到的其他解决方法吗?

答案1

你可以尝试设置

   default-sample-rate = 44100
   alternate-sample-rate = 16000

和/或

   avoid-resampling = yes

如果您的pulseaudio版本> = 11。

在 Pulseaudio 13 中可能有更多选项,请参阅这里

我认为最好就这个问题编写一个错误报告并将其链接到评论中。

答案2

本机声卡字率应与默认采样率相匹配,否则将出现观察到的频带限制。

答案3

我在使用 Logitech Webcam 9000 时遇到同样的问题(摄像头麦克风发出高音调的声音)。在阅读了 Stackexchange 上的许多讨论后,ALSA手册,ALSA 替代手册,ALSA指南 我得到了解决方案。

查找我的相机 ALSA 名称 (U0x46d0x809) 或索引 (2)

$ cat /proc/asound/cards
 0 [HDMI           ]: HDA-Intel - HDA ATI HDMI
                      HDA ATI HDMI at 0xfce60000 irq 73
 1 [Generic        ]: HDA-Intel - HD-Audio Generic
                      HD-Audio Generic at 0xfcb00000 irq 75
 2 [U0x46d0x809    ]: USB-Audio - USB Device 0x46d:0x809
                      USB Device 0x46d:0x809 at usb-0000:2d:00.3-3, high speed

为 ALSA ~/.asoundrc 创建配置

      pcm.usb
      {
          type hw
          card U0x46d0x809
      }

      pcm.!default
      {
          type asym
          capture.pcm
          {
              type plug
              slave.pcm "usb"
              rate 16000
          }
      }

我仍然没有进行长时间的现实生活测试(Skype、obs 等...),但大胆地录制并在 Skype 中测试通话听起来不错。

我仍然不完全理解 ALSA 配置

UPD:这没有帮助。现在看起来像是重启后的第一个 Skype 通话,接下来很正常。 (需要检查)

答案4

看来我在发表自己的文章之前没有找到这篇文章。

我发现您还没有找到解决方案(很多年后),因为没有标记答案。

我尝试通过网络摄像头设置示例格式 16le 进行录制(速率没有变化),并且得到了完美的结果。

如果您找到解决方案,请将其写在这篇文章中:),然后我将删除我的帖子。

我的帖子是这里

相关内容