2017-07-03 73 views
0

我目前的想法是在C#或Python中編寫一個小型音頻轉換器(例如FLAC到MP3或m4a格式)應用程序,但是我的問題是我根本不知道音頻轉換是如何工作的。音頻轉換器如何工作?

經過研究,我聽說過模擬到數字/數字到模擬轉換器,但我想它會是數字到數字或類似的東西,不是嗎?

如果有人能夠精確地解釋它是如何工作的,將不勝感激。

謝謝。

回答

0

數字音頻被稱爲PCM,它是任何音頻處理系統的基本原始音頻格式...它的未壓縮...只是一系列整數,表示曲線的每個樣本的音頻曲線的高度(Y軸,其中時間是沿着這條曲線的X軸)

...這個PCM音頻使用一些編解碼器壓縮,然後捆綁在一個容器內,通常與視頻或元數據通道一起...所以將音頻從A轉換到B您首先需要了解容器規格以及壓縮音頻編解碼器,以便您可以將音頻A解壓縮爲PCM格式...然後執行相反的操作...將PCM壓縮到B的編解碼器,然後將其捆綁到B的容器中

在進一步探討這個之前,我建議你掌握WAVE音頻文件的藝術...... WAVE的美妙之處在於它只是一個44字節的頭部,後面是音頻曲線的未壓縮整數......編寫一些代碼來讀取WAVE然後解析頭文件(識別比特深度,採樣率,通道數量,字節順序),使您能夠遍歷每個樣本...通過將您的字節發送到輸出WAVE文件來證明其工作... diff輸入WAVE對輸出WAVE,因爲它們應該是相同的......一旦掌握了你準備冒險進入你的上述目標

現代音頻壓縮算法利用人們如何感知聲音丟棄信息的知識,這是不可分辨的(有損),而不是無損算法它保留了源的所有信息負載... opus(http://opus-codec.org/)是目前最受歡迎的編解碼器,其被專利所污染並且是開源的