Linux系統下(Ubuntu16.04LTS)音訊取樣率設定方法
阿新 • • 發佈:2018-12-12
問題描述:
專案需要,在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
至此,完整解決了取樣率不對的問題。