音頻文件wav轉gsm

sox guide.wav -r 8000 -c 1 guide.gsm

SoX [ general options ] [ format options ] infile1 [ [ format options ] infile2 ... ] [ format options ] outfile [ effect [ effect options ] ... ]

解釋:
1). 輸入文件可以爲多個,至少爲一個,輸出文件爲一個,上述[]表示的都是可選項。

2). SoX後跟的首先是general options(可選),指的是整個exe運行過程中的配置信息,如-h表示打印版本和用法信息,-V則把轉換過程的信息也一併打印出來。

3). 對輸入文件來說,format options可選。大部分音頻文件在文件頭部分都有格式信息,這時就不需要format options,但是有一些沒有文件頭、直接存儲音頻數據的文件則需要指明其格式,這時候就必須要求有format options。

4). 輸出文件如果省略format options,則格式信息跟輸入文件一樣,如果要改變格式,則必須指明format options。

5). 轉換過程中還可以給輸出文件加一些音頻效果,就是最後的effect選項,我們一般用不着,這裏不細說了。

6). format options指的是如下幾項:
  ① -t filetype:從文件名後綴可以得到一部分類型信息,但有的後綴名同時涵蓋好幾種類型或從文件頭不能真正確定文件類型,則需要-t來指明。
  ② -r rate:採樣率,當輸入輸出文件指明的採樣率不一樣時,則進行升降採樣率的操作,有好幾種升降採樣率的方法,在effect中可以指明,不設置effect即採用默認方法。
  ③ -v volume:音量,即幅度信息。大於1.0增加音量,小於1.0減小音量,負值則改變音頻數據的相位。
  ④ -s/-u/-U/-A/-a/-i/-g/-f:音頻編碼方式,分別爲:有符號線性、無符號線性、u率、A率、ADPCM、IMA_ADPCM、GSM、浮點數。
  ⑤ -b/-w/-l/-d:量化位數,分別爲:8bit、16bit、32bit、64bit。
  ⑥ -c channels:聲道數。
  ⑦ -x:需要進行字節序調整,調整基元以量化位數爲準。
  ⑧ -e:放在最後一個輸入文件之後,作爲輸出文件的參數,但其後不用寫輸出文件,這樣所有操作都直接作用於輸入文件。注意,此時無輸出文件,同時輸出文件的參數也只能有-e,不能有其他的,但是還是可以有effect項。

SoX的應用格式就是這樣,下一篇我會給出一些例子以加深理解。

 

 

這裏給出一些SoX用法的一些例子,加深理解。 首先給出一條建議,給所有的SoX調用加上-V這個general option,這樣轉換的內部信息會顯示出來。

1). SoX根據文件後綴判斷文件類型,比如將Apple的AIFF格式轉換爲Microsoft的WAV格式,直接寫出對應的文件名即可:
sox filename.aiff filename.wav

2). 一般我們要進行採樣率和量化位數的轉換,例如我們要把一個11.025K採樣、16bit的WAV文件轉化爲8K採樣、8bit的WAV文件,則寫成下式:
sox infile.wav -r 8000 -b outputfile.wav

3). 如果輸入文件爲RAW格式,則需指定輸入文件的format options,如將一個單聲道、8K採樣、8bit無符號PCM數據轉化爲WAV格式,則可以這樣寫:
sox -r 8000 -u -b -c 1 filename.raw filename.wav

4). 當把一個PCM編碼文件轉換爲U律或者A律,可能會出現一些雜音或者破音,此時可以將輸出的幅度降低一些,用到的是-v這個選項:
sox infile.wav -U -v .8 outputfile.wav

5). 如果需要將11.025K轉換爲8K,但是在轉換之前加一個截止頻率爲3.7K的低通濾波器,則可以這麼寫(中間的|表示管道,前後用-分別代表輸出文件和輸入文件):

sox infile.wav -t raw -s -w -c 1 - lowpass 3700 | sox -t raw -r 11025 -s -w -c 1 - -r 8000 -U -b -c 1 outputfile.wav

6). 如果你對某種文件格式不清楚,想把它轉化爲認識的格式如WAV,則可以將輸入文件格式設爲auto,讓sox自己去判斷:
sox -V -t auto filename.snd filename.wav

7). 將sox用於批處理,可以這樣寫:
FOR %X IN (*.RAW) DO sox -r 11025 -w -s -t raw $X $X.wav

最 後交待一下sox的內部處理機制:sox處理一般壓縮格式如U律、A律、ADPCM或者GSM,首先將文件讀入,然後解壓縮爲32bit的有符號數,然後 再轉換爲所需要的格式。在解壓縮輸入文件時必然引入噪聲,這個噪聲又被壓縮,傳遞到輸出文件中,所以如果要對輸出文件加很多effect的話,則一般是先 生成一個PCM格式的中間文件,然後對中間文件加所有的effects,最後再輸出成所需的壓縮格式,這樣引入噪聲最小。

參考:http://blog.chinaunix.net/uid-10697776-id-2935616.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章