Linux下Pulse Audio的音质处理
我有一个Sony PHA-1的便携耳放,而这玩意同时也是一个外置声卡,它大部分时间是用来外接到我的笔记本上以便我听歌的时候免去被笔记本里那烦人的电流声的干扰,实际上它也做的很好,而且DAC模式下直插Linux也可以被识别为独立声卡,然后我就没有去在意过,今天无聊翻说明,看到了PHA-1在MAC OSX下使用的一个解释。
虽然是日语的不过也看明白了,识别后人家还需要调整一下96Hz频率,这个选项在我用PHA-1外接Surface Pro 3的时候也知道在那里,那么Linux下有么……
找了下手册还真有,最近没用ALSA,大多都是PulseAudio的。
pacmd list-sinks | grep sample
查看当前声卡设备的频率,当然大部分默认都是sample spec: s16le 2ch 41000Hz的值,所以需要修改。
sudo vim /etc/pulse/daemon.conf
首先注释掉现有的包括 resample-method = speex-float-1之类的语句
手动添加
resample-method = src-sinc-medium-quality
default-sample-format = s24le
default-sample-rate = 96000
s241e指的就是24bit,96000自然就是96Hz了,具体数值视声卡而定,比如Sony PHA-1支持24bit 96Hz就可以这么设置,而我家里的华硕老虎卡支持24bit 192Hz,那么就可以将第二个改成192000了。
pulseaudio -k
pulseaudio --start
重启pulseaudio生效
这里要提及的是resample-method中的src-sinc-medium-quality不是最高设置,最高的是src-sinc-best-quality,不过启用后你会发现不但CPU占用飙升:
而且还有破音,根据Archlinux的相关wiki还有pulseaudio的文档来看,src-sinc-best-quality还是有很多问题,老老实实用src-sinc-medium-quality好了……
那么声音有变化吗?最近在撸PSV完全没怎么听……当然这个最好还是得配合HiRes的音频资源才有效啊……
当然这种情况下如果你遇到问题,可以将配置改回去就是了……
重点就是resample-method的方式,比如medium下会在某些声音里破音什么的,那就改成speex-float-5好了,从0-10分别代表音频质量的坏到好,10的档次我相信你的机器承受不了。
最后我使用的配置:
resample-method = speex-float-5
default-sample-format = s24le
default-sample-rate = 96000
最后说明一下,如果你在使用蓝牙耳机的时候出现了破音现象,那么可能就与这个配置有关,可以考虑把 Speex-float-5 的采样方式更换为 soxr-vhq ,即可解决问题。