希望能像Windows上foobar2K一樣能繞過系統混音輸出聲音,完全由外部的音效裝置處理音訊。
音樂錄音時,通常母源轉成CD後是以16bit 44100Hz 儲存,這是因為當初CD儲存空間有限,而犧牲一定的音質細節來縮減檔案大小。當然現在儲存的技術進步,有一小部份高音質檔案以24 ~32bit 96KHz 192KHz 格式販賣,不過一首歌可能就需要100MB以上的空間儲存。
一般來說內建音效僅支援到8bit~24bit 48000K~96000K。但常規來說購買的CD 44100K,音效卡並不支援這個頻率,而是經過系統重新取樣(Resample)後升頻成 48000K才輸出。
而高階音效裝置,具有高階演算法來重新取成48000K或更高,因此聲音就能更貼近自然。當然也避免系統資源消耗與電腦本身內部零件互相干擾的問題。
總之,找方法提升電腦播放的音質
上網查了資料,
1) Pulseaudio with Resample
簡單來說,利用 src-sinc-best-quality 高階演算法重新取樣音訊再輸出到裝置上。
但是這無法避免系統干擾又增加系統資源,並非我想要的。不過實作上確實有效,DAC確實能顯示24bit 96K,當作學習吧~
a)終端機中確認 目前裝置取樣率
pacmd list-sinks | grep sample
#sample spec: s16le 2ch 48000Hz
增加以下設定
resample-method = src-sinc-medium-quality
default-sample-format = s24le
default-sample-rate = 96000
c)關閉並重啟pulseaudio服務
pulseaudio -k
pulseaudio --start
d)終端機中確認 裝置取樣率
$ pacmd list-sinks | grep sample
#sample spec: s24le 2ch 96000Hz
http://r3dux.org/2013/12/how-to-enable-high-quality-audio-in-linux/
2)ALSA 改變輸出取樣率
中文說明沒興趣了解,大致上應該與1)類似手法
http://a8robot.blogspot.tw/2013/10/linuxwindowslubuntualsa.html
DeaDeef_ALSA_ouput_withoutresample
3)Without-resample and output
http://a8robot.blogspot.tw/2015/05/linux.html
該文章提到linux下音樂播放軟體,DeaBeeF。
本身就具有略過系統處理,直接輸出給音效裝置的設定。
![]() |
輸出裝置改為USB DAC 備註without any conversions |
![]() |
取消ALSA再取樣功能 (也許不需要) |
![]() |
1.EQ 個人不愛用EQ調整,移除 2.Resample 音效處理都交給DAC當然用不上,移除 |
設定完,DeaBeef分別以16bit 44.1KHz 與 24bit 96KHz的檔案播放,USB DAC 辨認正確。
最後聽感確實增加些許細節,至於音質好壞就因人而異拉,畢竟除了DAC還需要好耳機好喇叭,以及乾淨電流。
最近看上Sony MDR Z7平衡設計的耳罩,但目前的裝置都不支援平衡輸出,還是止步吧!
避免買新玩具無性生殖出其他玩伴XD
聽說 src-sinc-* 的演算法已經快要被拋棄了?
回覆刪除因為他們說 speex-fixed-10 有著不亞於 src-sinc-best-quality 的效果,又同時消耗較少的 CPU 資源,然後又多了個叫 soxr-vhq 的演算法
更正,他們是說 speex-float-10,至於 speex-fixed-10 怎樣就不清楚了
回覆刪除