python_speech_features文檔翻譯

最近學習語音情感識別,需要提取語音特徵,用到python_speech_features這個庫,順便把文檔翻譯一下,希望能幫到需要的人。英語水平不高,難免有錯,敬請指正

歡迎來到python_speech_features的文檔!

這個庫提供了一般的用於ASR(語音識別)的語音特徵,他包含了MFCCs(梅爾倒譜系數)和  filterbank energies(濾波器組能量?)。如果你還不知道什麼是MFCCs,並且想要更多的瞭解MFCC,這裏有一個教程:http://www.practicalcryptography.com/miscellaneous/machine-learning/guide-mel-frequency-cepstral-coefficients-mfccs/

你需要numpy和scipy來運行這個庫,這個項目的代碼保存在https://github.com/jameslyons/python_speech_features 

支持的特徵:

  • python_speech_features.mfcc() - 梅爾倒譜系數
  • python_speech_features.fbank() - 濾波器組能量(?)
  • python_speech_features.logfbank() - 對數濾波器組能量
  • python_speech_features.ssc() - 子帶頻譜質心特徵

使用MFCC特徵:

from python_speech_features import mfcc
from python_speech_features import logfbank
import scipy.io.wavfile as wav

(rate,sig) = wav.read("file.wav")
mfcc_feat = mfcc(sig,rate)
fbank_feat = logfbank(sig,rate)

print(fbank_feat[1:3,:])

從這裏你可以把特徵寫入一個文件

 

python_speech_features模塊提供的函數

 

python_speech_features.base.mfcc(signal, samplerate=16000, winlen=0.025, winstep=0.01, numcep=13, nfilt=26, nfft=512, lowfreq=0, highfreq=None, preemph=0.97, ceplifter=22, appendEnergy=True, winfunc=<function <lambda>>)

計算一個音頻信號的MFCC特徵

參數:

  • signal - 需要用來計算特徵的音頻信號,應該是一個N*1的數組
  • samplerate - 我們用來工作的信號的採樣率
  • winlen - 分析窗口的長度,按秒計,默認0.025s(25ms)
  • winstep - 連續窗口之間的步長,按秒計,默認0.01s(10ms)
  • numcep - 倒頻譜返回的數量,默認13
  • nfilt - 濾波器組的濾波器數量,默認26
  • nfft - FFT的大小,默認512
  • lowfreq - 梅爾濾波器的最低邊緣,單位赫茲,默認爲0
  • highfreq - 梅爾濾波器的最高邊緣,單位赫茲,默認爲採樣率/2
  • preemph - 應用預加重過濾器和預加重過濾器的係數,0表示沒有過濾器,默認0.97
  • ceplifter - 將升降器應用於最終的倒譜系數。 0沒有升降機。默認值爲22。
  • appendEnergy - 如果是true,則將第0個倒譜系數替換爲總幀能量的對數。
  • winfunc - 分析窗口應用於每個框架。 默認情況下不應用任何窗口。 你可以在這裏使用numpy窗口函數 例如:winfunc=numpy.hamming

 

返回:  一個大小爲numcep的numpy數組,包含着特徵,每一行都包含一個特徵向量。

 

python_speech_features.base.fbank(signal, samplerate=16000, winlen=0.025, winstep=0.01, nfilt=26, nfft=512, lowfreq=0, highfreq=None, preemph=0.97, winfunc=<function <lambda>>)

從一個音頻信號中計算梅爾濾波器能量特徵

參數:

  • signal - 需要用來計算特徵的音頻信號,應該是一個N*1的數組
  • samplerate - 我們用來工作的信號的採樣率
  • winlen - 分析窗口的長度,按秒計,默認0.025s(25ms)
  • winstep - 連續窗口之間的步長,按秒計,默認0.01s(10ms)
  • nfilt - 濾波器組的濾波器數量,默認26
  • nfft - FFT的大小,默認512
  • lowfreq - 梅爾濾波器的最低邊緣,單位赫茲,默認爲0
  • highfreq - 梅爾濾波器的最高邊緣,單位赫茲,默認爲採樣率/2
  • preemph - 應用預加重過濾器和預加重過濾器的係數,0表示沒有過濾器,默認0.97
  • winfunc - 分析窗口應用於每個框架。 默認情況下不應用任何窗口。 你可以在這裏使用numpy窗口函數 例如:winfunc=numpy.hamming

返回:2個值。第一個是一個包含着特徵的大小爲nfilt的numpy數組,每一行都有一個特徵向量。第二個返回值是每一幀的能量

python_speech_features.base.logfbank(signal, samplerate=16000, winlen=0.025, winstep=0.01, nfilt=26, nfft=512, lowfreq=0, highfreq=None, preemph=0.97)

從一個音頻信號中計算梅爾濾波器能量特徵的對數

參數:

  • signal - 需要用來計算特徵的音頻信號,應該是一個N*1的數組
  • samplerate - 我們用來工作的信號的採樣率
  • winlen - 分析窗口的長度,按秒計,默認0.025s(25ms)
  • winstep - 連續窗口之間的步長,按秒計,默認0.01s(10ms)
  • nfilt - 濾波器組的濾波器數量,默認26
  • nfft - FFT的大小,默認512
  • lowfreq - 梅爾濾波器的最低邊緣,單位赫茲,默認爲0
  • highfreq - 梅爾濾波器的最高邊緣,單位赫茲,默認爲採樣率/2
  • preemph - 應用預加重過濾器和預加重過濾器的係數,0表示沒有過濾器,默認0.97

 

返回: 一個包含特徵的大小爲nfilt的numpy數組,每一行都有一個特徵向量

 

python_speech_features.base.ssc(signal, samplerate=16000, winlen=0.025, winstep=0.01, nfilt=26, nfft=512, lowfreq=0, highfreq=None, preemph=0.97, winfunc=<function <lambda>>)

從一個音頻信號中計算子帶頻譜質心特徵

參數:

  • signal - 需要用來計算特徵的音頻信號,應該是一個N*1的數組
  • samplerate - 我們用來工作的信號的採樣率
  • winlen - 分析窗口的長度,按秒計,默認0.025s(25ms)
  • winstep - 連續窗口之間的步長,按秒計,默認0.01s(10ms)
  • nfilt - 濾波器組的濾波器數量,默認26
  • nfft - FFT的大小,默認512
  • lowfreq - 梅爾濾波器的最低邊緣,單位赫茲,默認爲0
  • highfreq - 梅爾濾波器的最高邊緣,單位赫茲,默認爲採樣率/2
  • preemph - 應用預加重過濾器和預加重過濾器的係數,0表示沒有過濾器,默認0.97
  • winfunc - 分析窗口應用於每個框架。 默認情況下不應用任何窗口。 你可以在這裏使用numpy窗口函數 例如:winfunc=numpy.hamming

返回:一個包含特徵的大小爲nfilt的numpy數組,每一行都有一個特徵向量

python_speech_features.base.hz2mel(hz)

把一個赫茲值轉換爲梅爾值

參數: hz - 一個單位爲Hz的值,他也可以是一個numpy數組,轉換按元素進行

返回: 一個單位爲Mels的值,如果輸入時矩陣,那麼返回的也是對應大小的矩陣

python_speech_features.base.mel2hz(mel)

把一個梅爾值轉化爲赫茲

參數: mel - 一個單位爲Mels的值,他也可以是一個numpy數組,轉換按元素進行

返回: 一個單位爲Herz的值,如果輸入時矩陣,那麼返回的也是對應大小的矩陣

python_speech_features.base.get_filterbanks(nfilt=20, nfft=512, samplerate=16000, lowfreq=0, highfreq=None)

計算一個梅爾濾波器組。過濾器存儲在行中,列對應於FFT箱。過濾器以大小爲nfilt *(nfft/2+1)的數組返回。

參數:

  • nfilt - 濾波器組的濾波器數量,默認20
  • nfft - FFT的大小,默認512
  • samplerate - 我們用來工作的信號的採樣率
  • lowfreq - 梅爾濾波器的最低邊緣,單位赫茲,默認爲0
  • highfreq - 梅爾濾波器的最高邊緣,單位赫茲,默認爲採樣率/2

返回: 一個包含有濾波器的大小爲nfilt *(nfft/2+1)的數組,每一行都有一個過濾器。

 

python_speech_features.base.lifter(cepstra, L=22)

將倒譜提升器應用於倒頻譜的矩陣。這具有增加高頻DCT係數的幅度的效果。

參數:

  • cepstra -- 梅爾倒譜矩陣,大小爲numframes*numcep
  • L - 提升器的係數,默認22,L<=0禁用

 

python_speech_features.base.delta(feat, N)

從特徵向量序列計算delta特徵。

參數:

  • feat - 一個大小爲特徵數量的numpy數組,每一行都有一個特徵向量
  • N - 對於每一幀,計算delta特徵根據前後N幀

返回:一個大小爲特徵數量的numpy數組,包含有delta特徵,每一行都有一個delta向量

 

sigproc模塊提供的函數

python_speech_features.sigproc.framesig(sig, frame_len, frame_step, winfunc=<function <lambda>>, stride_trick=True)

將信號框成重疊幀。

參數:

  • sig - 音頻信號幀
  • frame_len - 樣品中每一幀的長度
  • frame_step - 下一幀開始後前一幀開始後的樣本數。
  • winfunc - 分析窗口應用於每個框架。 默認情況下不應用任何窗口。
  • stride_trick - 使用步長技巧快速計算滾動窗口和窗口倍增

返回:一個幀的數組,大小是frame_len

python_speech_features.sigproc.deframesig(frames, siglen, frame_len, frame_step, winfunc=<function <lambda>>)

使用重疊添加過程撤消了frameig操作。

參數:

  • frames - frames的數組
  • siglen - 所需信號的長度,如果未知,則使用0。輸出將被截斷到siglen樣本。
  • frame_len - 樣品中每一幀的長度
  • frame_step - 下一幀開始後前一幀開始後的樣本數。
  • winfunc - 分析窗口應用於每個框架。 默認情況下不應用任何窗口。

返回: 一個1維信號

python_speech_features.sigproc.magspec(frames, NFFT)

計算幀中每個幀的幅度譜。如果幀是NxD矩陣,輸出將是Nx(NFFT/2+1)。

參數:

  • frames - frames的數組,每一行就是一幀
  • NFFT - 使用的FFT長度。如果NFFT>幀長度,幀就是零填充的。

返回:如果幀是N*D矩陣,輸出將是N*(nfft/2+1)。每一行都是相應幀的幅度譜。

 

python_speech_features.sigproc.powspec(frames, NFFT)

計算幀中每個幀的功率譜。如果幀是NXD矩陣,輸出將是NX(NFFT/2+1)。

參數:

  • frames - frames的數組,每一行就是一幀
  • NFFT - 使用的FFT長度。如果NFFT>幀長度,幀就是零填充的。

返回:如果幀是N*D矩陣,輸出將是N*(nfft/2+1)。每一行都是相應幀的功率譜。

 

python_speech_features.sigproc.logpowspec(frames, NFFT, norm=1)

計算幀中每個幀的對數功率譜。如果幀是NXD矩陣,輸出將是NX(NFFT/2+1)。

參數:

  • frames - frames的數組,每一行就是一幀
  • NFFT - 使用的FFT長度。如果NFFT>幀長度,幀就是零填充的。
  • norm - 如果範數=1,則對數功率譜被歸一化,使得最大值(跨越所有幀)爲0。

返回:如果幀是N*D矩陣,輸出將是N*(nfft/2+1)。每一行都是相應幀的對數功率譜。

python_speech_features.sigproc.preemphasis(signal, coeff=0.95)

對輸入信號進行預加重。

參數:

  • signal - 過濾器的信號
  • coeff - 預加重係數,0爲無,默認0.95

返回:濾波後的信號

 

 

 

 

 

 

 

 

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