Saturday, June 7, 2008

CD唱片備份: WavPack編碼搭配EAC與foobar2000

零. 前言

你有很多的唱片收藏嗎?擔心唱片在播放、拿取的過程中,會刮磨、染塵?或著,當你將音樂備份到電腦中後,卻受夠了MP3或WMA這類破壞音質的
格式?本教學展示如何使用Exact Audio Copy(EAC)與foobar2000,搭配無損編碼WavPack,將CD唱片備份為:儲存整張唱片音訊資料的單一WavPack檔案,以及儲存唱片標題、曲目、音軌分段等資料的Cue Sheet,以利往後原音重現。

在正式開始之前,先釐清以下幾個問題:

0.1 為何要用EAC?CDex或foobar2000不就能抓音軌了嗎?

是的,有太多軟體可以抓音軌了,但是CD唱片普遍存在一個問題:讀取錯誤。雖然CD上的資訊不是0就是1,但依照CD光碟的標準規格,一般的資料(Data)光碟採用了具備錯誤修正碼(Error-Correcting Code,ECC)的Mode 1儲存資料,因為資料是不容許產生任何錯誤的,就算在讀取過程中發生了錯誤,也可以藉由錯誤修正碼,將正確資訊還原;而CD唱片與Video CD這一類媒體,則是採用沒有錯誤修正碼的Mode 2。因此,從壓片工廠出生的唱片,雖然可以確保其內容與原始的母片一模一樣,但在光碟機的讀取過程中,不能保證沒有任何錯誤產生,且不同的光碟機產生的錯誤,也不盡相同。這也是為何獨立的CD座機售價可以從數千元到數十萬元不等,錯誤率越低的機子,越能原音重現。

因此,EAC之所以被發展的重要目的,就是以最謹慎、最保險的方式抓取音軌資料。在讀取過程中,EAC會將任一區段的音訊重複讀取,確保每次所得的資訊皆為相同後,再繼續讀取下一個區段,且針對不同光碟機所具備的讀取偏移(reading offset),EAC亦能做出對應的修正。由讀取錯誤而產生的爆音、扭曲,基本上在EAC中是看不到的。

0.2 好吧,那為何又要動用foobar2000?

理論上只要經過適當的設定,EAC可以一次完成抓取音軌、轉檔的作業,但在此將WavPack轉檔的工作交給foobar2000,有以下理由:

  1. 我懶得設定EAC了。
  2. 搭配foobar2000可以讓我同時教更多的東西。(這不是兩者牴觸嗎XD)
  3. foobar2000的轉檔作業可以舉一反三,學了一個WavPack等於學了其他的。
0.3 那WavPack又是什麼?為何不用Cation234Pack或是YufaPack? (咦)

WavPack與FLACMonkey's Audio(APE)、True Audio(TTA)一樣,皆為無損(lossless)音樂壓縮格式,相對於破壞性(lossy)的MP3或WMA,在壓縮時不會丟掉任何原有的音頻資訊,如同zip檔案在解壓縮後可以得到與原始檔案完全相同的內容,故不會產生在破壞性格式中出現的扭曲、爆音,或音域縮減等怪異現象。唯一的缺點是,所得的成品檔案會比破壞性編碼來得大。若輸入未壓縮的Wave檔案,所得到的WavPack檔案大小約為原始的40%~70%左右,但換取來的,是更好的音質,與具備百分百還原成原始Wave檔案的能力。

至於為何選擇WavPack?這是由於:
  1. WavPack在各方面的表現相當平均,壓縮率雖然比APE略小,但編碼、解碼速度與FLAC不相上下,更比APE快上許多。
  2. APE並非免費、開放式的編碼,依舊受到專利權的牽制,WavPack與FLAC沒有這方面的限制。
  3. foobar2000需要安裝額外的解碼器才能播放APE與TTA,對於WavPack與FLAC則是原生支援。
  4. FLAC已經有很多人在用了,既然你來到本站,就學個新東西吧。
0.4 為何要備份成單一的WavPack檔案,而非按照各音軌切割成立檔案?

在硬碟中存放上千首的MP3當然很壯觀,但在一張唱片中,所有的音軌實際上是以頭尾相接的方式儲存的,由於我們的主要目的,是為了將整張唱片作封存,所以理論上,將所有的音軌一次抓取,是較為合理的,也較為準確。對於電腦硬碟來說,儲存一個大檔案,亦比儲存數個零碎的小檔案要來得健康。這麼做當然也有缺點,因為你無法將曲子獨立出來,且整個檔案必須跟著儲存音軌分段資訊的Cue Sheet檔案走,但對於以封存音樂為目的來說,這應該不成問題。

0.5 那麼,我的音樂在電腦上播放時,會比用座機播放來得好/差嗎?

這是個已經戰得天荒地老的問題了,座機派與電腦訊源派各有各的論述,況且音訊的傳遞不論以何者當音源,皆會產生無法避免的劣化,本文僅針對唱片備份為主,請各位不要再吵架了>///<

一. 準備工作


首先介紹本次教學的主角,是由已故指揮卡拉揚(Herbert von Karajan)指揮維也納愛樂,演奏德弗札克(Antonín Leopold Dvořák)的第九號「新世界」交響曲,副曲為史麥塔納(Bedřich Smetana)的莫爾道河:


1.1 foobar2000與WavPack編碼器

我假設你已經裝好foobar2000了,它的安裝沒什麼特別的,至於WavPack,請到官方下載頁,找尋WavPack Win32下載點,目前最新版本為4.41。WavPack的壓縮檔中,只有wavpack.exe用得著,把它放到foobar2000的程式根目錄下即可。

1.2 Exact Audio Copy

EAC目前最新版為0.99 prebeta 4,別抓到德文版的,那我就很糗啦。EAC的安裝過程稍嫌複雜,需要做些說明。首先是元件選擇:


  • 只要安裝EAC核心與AccurateRip就好,AccurateRip可以將你截取的音軌與網路上的資料做比對,CDRDAO是增強EAC的燒錄機支援度用的,FLAC編碼我們不用,eBay Icon則是EAC的贊助廣告,可有可無。
安裝完成並啟動後,設定精靈會自動跳出來,首先為光碟機選擇:


  • 雖然BenQ DW1670的揪錯能力比1640好得多,不過還是兩台都選了,BenQ BenQ國貨好。後面三台是我的虛擬光碟,不用理它。
EAC會帶著你設定所選的光碟機,並詢問你要求的是準確度還是速度:


  • 當然要求準確度,不然用EAC做什麼。
這時突然發現DW1670的規格資料已經在EAC的資料庫裡頭了,基本上如果你的光碟機是大廠的主流機種,那麼EAC可以直接辯視它的機會非常非常高。不過為求謹慎,我們還是選擇不要採用預設設定,而用手動的方式偵測光碟機的規格:


  • 在此暫時不對光碟機的功能特性做詳細說明,不過簡單來說,有Accurate stream功能的光碟機可以較準確的抓音軌,Audio cache沒有反而比較好,因為EAC會反覆讀取同一區段的音軌,光碟機若有音源快取的功能,那EAC在每次讀取時,還得命令光碟機清空緩衝區,以免每次讀取的資料都是上次的舊資料。
這時請放入一張沒有刮痕與灰塵的唱片到光碟機中,協助EAC偵測光碟機的特性。在偵測的期間內,請不要亂動電腦,讓EAC專心一點。幾分鐘後,結果就出來了:


  • 雖然測試結果與EAC的內部資料庫相同,不過親自確認還是比較安心些。
有兩台以上光碟機者,就依照以上步驟,繼續設定餘下的光碟機。接著會碰到編碼器的選擇,但我們不打算讓EAC做轉檔工作,所以選擇現在不要設定編碼器。

再來是freedb.org的設定,此功能可以讓EAC上網抓取光碟的曲目資料,省去手動輸入的麻煩,務必啟動,但必須提供你的eMail位址,才能正常登入freedb.org。

接著的Filename Configuration請自行決定,挑一個自己順眼的檔案命名方式即可。最後我們選擇beginner的設定,讓EAC替我們打點大部分的組態。往後有必要的話,可以自行將expert專家及設定打開。

此外有一個非常重要的設定必須手動開啟,在EAC的主視窗選擇你要設定的光碟機後,再選擇EAC->Drive Options,由Gap Detection頁面,將Detection Accuracy調整至Secure


  • 這麼重要的東西,真不明白為何預設為Inaccurate?
以上就是所有的準備工作,若覺得哪邊的設定不滿意,可以於EAC清單選擇EAC->Configuration Wizard,將整個設定過程再跑一次。

二. 音軌擷取

EAC在多次改版後,擷取音軌的流程已經變得很平易近人了,在放入唱片後,首先選擇Database->Get CD Information From->Remote freedb,以取得唱片資訊:

接著選擇Action->Test & Copy Image & Create CUE Sheet->Uncompressed,讓EAC先行測試,再抓取音軌:

在抓音軌的過程中請耐心等候,你會發現EAC的運作速度比其他同類型的軟體還要慢,且光碟機的讀取速度雖然不快,但運轉音量應該比平時要大得多,不過等待是值得的。擷取完畢後,若你發現EAC回報唱片的Quality非100%,也不用擔心,那表示EAC在抓音軌的過程中,很可能因為唱片上有些指紋、灰塵,或是光碟機自身的問題,讓EAC於某個區段多費力讀取了幾次,並不代表你的唱片本身有問題。若EAC回報你的唱片在AccurateRip中沒有相符的資料,也不必緊張,因為很多唱片不只發行了一個版次,且AccurateRip上的資料僅代表別人回報的結果。只要EAC回報「No errors reported」,那大可放心。

三. WavPack轉檔與成品

轉檔方式很容易,只要將EAC抓取的WAV檔案扔到foobar2000裡頭,在其上按滑鼠右鍵,選Convert->Convert to,再選擇WavPack,就可開始轉檔。
若想提高壓縮率,可按上圖的箭頭處,自行設定:
  • Compression Mode對於檔案大小的影響度比較大,Additional Processing雖然可以讓檔案再小一點點,可是會大幅增加壓縮檔案的時間,請自行斟酌。Hybrid Lossy Mode是WavPack最獨特的地方,不過既然我們要求的是音質,破壞性的壓縮功能就不理它了。
轉檔時間依照個人電腦配備而定,在我的雙核Opteron 165與2G Ram的環境下,平均花費時間可達到音樂長度的1/50左右,也就是50x。


  • 壓縮好的WavPack檔案,容量約為原始WAVE檔案的40%左右,對於無損格式來說,已經是很高的壓縮率了。
最後一個步驟,請用NotePad,或任何一個文字編輯器,打開由EAC產生的CUE Sheet,將「檔案名稱」的副檔名,由wav改成wv


  • 要改的是wav,不是後頭那個WAVE,別改錯了。
最後就可以把EAC擷取的WAV檔案刪掉了,留下的CUE Sheet與WavPack檔案是最後成品,這兩者務必放在同一個檔案夾/目錄下,才能播放。播放時只要將CUE Sheet扔到foobar2000中就行了。


  • 成品CUE+WavPack於foobar2000中播放,你可以發現WavPack檔案本身還提供了檔案指紋MD5碼,以利檔案整合度的檢查與偵錯。
四. 參考資料

沒有任何一種編碼格式是完美的,各類無損格式的比較,請參考Hydrogenaudio論壇的整理文件。關於EAC的說明,Hydrogenaudio當然也提供了詳細解說,想要更漂亮的使用EAC搭配WavPack編碼器一步完成抓音軌、轉檔者,亦可參考本文件

Play by FoxSaver®

No comments: