Linux系统下(Ubuntu16.04LTS)音频采样率设置方法

问题描述

项目需要,在Ubuntu16.04LTS系统上配置一块外挂的USB声卡(MiniStreamer),用起来发现输入音频的采样率被莫名其妙修改了,而且怎么样也改不动!输入1Khz正弦波的单音,实测输出为918hz。

问题分析

简单计算很明显是因为48k的采样率被系统自动转用默认的44.1k采样率重采样了。结论是系统配置肯定出了问题。

原理解析:

  • 音频的数据流(以录音过程为例)如下所示: 音源 -> 声卡 -> ALSA -> Pulse Audio -> 音频App -> 扬声器输出
  •  其中音源和扬声器输出是通道,无需考虑。 声卡的配置在硬件上就已经决定了(24bit/48k采样率),手动无法配置。问题的关键点就在于ALSA/Pulse Audio和App的配置要匹配了。任何一环的配置不一样,声音就变味了 :)
  • 进一步分析,ALSA的默认采样率就是48K(检查方法请自行Google)。 音频App一般都有明显的采样率设置可供选择,只要你注意了,就不会搞错。显然,问题出在了Pulse Audio一环

解决方案:

打开Pulse Audio的配置文件并修改

sudo gedit /etc/pulse/daemon.conf

可以看到里面有这么一句话:

;default-sample-rate = 44100

“;”代表该句话已经被注释了,不起作用,我们可以修改默认采样率为48k来解决问题,改为:

default-sample-rate = 48000

保存并退出。 然后重新配置资源,重启即可

killall pulseaudio
pulseaudio -k
reboot

至此,完整解决了采样率不对的问题。

相关参考链接

直接参考源 https://askubuntu.com/questions/138611/how-to-change-audio-bit-depth-and-sampling-rate

直接参考源 https://ubuntuforums.org/showthread.php?t=989456

ubuntu官网声卡问题汇总 https://help.ubuntu.com/community/SoundTroubleshootingProcedure

你可能感兴趣的:(音频开发)