Was this page helpful?

MOH 音樂檔格式(MP3 v.s WAV)

    MOH(Music on Hold) 應該選用哪種格式?
    雖然在 Trixbox/Elastix/PBXinaFlash 幾個常用 IP PBX 套件,預設安裝狀態 MOH 就已經支援 mp3 的音樂檔格式,不過就家用而言,因為線上通話數及分機數都不多,反之,若使用在公司,由於系統在播放 mp3 音樂檔時需要對其作解碼工作,當分機數很多時,系統可能疲於應付這個工作,以致系統可能會有當機的風險,所以建議為了使系統更長時間的穩定運作,將所有 MOH 的音樂檔都改成 WAV 格式,以A.Lang實測結果,同樣長度的 MP3 轉成 WAV 後,其檔案大小與從話筒聽到的音質都沒有感覺有差異。

    如何將 MP3 轉成 WAV 檔

    必要的軟體工具:
    - sox 轉錄 wav 檔(已內建在 Trixbox/Elastix 等發行版內)
    - lame 或 mpg123 將 MP3 轉成 WAV (需自行安裝,安裝教學請搜尋站內文章)

    Step.1 將 MP3 轉成 WAV

     With lame)

    shell>lame --decode old.mp3 new.wav
    

    With mpg123)

    shell>mpg123 -w new.wav old.mp3
    Step.2 將 WAV 轉錄成 Asterisk 專用語音格式

    專用語音檔格式:16 bits 8khz 單音

    轉錄指令

    shell>sox old.wav -r 8000 -c 1 -w -s new_8khz.wav resample
    

    輸出檔 new_8khz.wav 就是 Asterisk 可使用的語音檔

    TIPs

    * 如果出現錯誤 sox: invalid option -- w,將指令改成
    sox old.wav -r 8000 -c 1 -s new_8khz.wav

    * 即使檔案格式是 8 bit ,也能轉換成 16 bit。

    大量批次轉檔

    如果有多個 MP3 檔要作批次轉換,請自行寫 script 即可,以下連結有參考的範例。

    在 Shell 模式完成)

    // 將 *.wav 更名為 *.orig
    for fname in $(ls *.wav);do echo -n "mv $fname ->"; echo $(echo $fname |sed 's/.wav/.orig/'); mv $fname $(echo $fname|sed 's/.wav/.orig/');done 
    
    // 將 *.orig.wav 轉檔為 *.wav
    for fname in $(ls *.orig);do echo "-> sox $fname -r 8000 -c 1 -w -s $(echo $fname|sed 's/.orig/.wav/') resample"; sox $fname -r 8000 -c 1 -w -s $(echo $fname|sed 's/.orig/.wav/') resample; done
    
    // 刪除 *.orig
    rm -f *.orig
    

    Digium 官方提供線上的語音檔格式轉換

    http://www.digium.com/en/products/iv...-converter.php

    顯示語音檔的詳細資訊

    file 指令

    $ file MSG_01.wav
    MSG_01.wav: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, mono 8000 Hz
    

    sox 指令

    $ sox -V MSG_01.wav -n
    sox: SoX v14.2.0
    sox formats: detected file format type `wav'
    
    Input File     : 'MSG_01.wav'
    Channels       : 1
    Sample Rate    : 8000
    Precision      : 16-bit
    Duration       : 00:00:09.15 = 73211 samples ~ 686.353 CDDA sectors
    Sample Encoding: 16-bit Signed Integer PCM
    Endian Type    : little
    Reverse Nibbles: no
    Reverse Bits   : no
    
    
    Output File    : '' (null)
    Channels       : 1
    Sample Rate    : 8000
    Precision      : 16-bit
    Duration       : 00:00:09.15 = 73211 samples ~ 686.353 CDDA sectors
    
    sox sox: effects chain: input      8000Hz 1 channels 16 bits (multi)
    sox sox: effects chain: output     8000Hz 1 channels 16 bits (multi)
    
    Was this page helpful?
    標籤 (Edit tags)
    • No tags
    您必須 登入 才能發佈評論。
    Powered by MindTouch Core