使用python_speech_features提取音頻文件特征

1. 讀取wav文件

使用scipy.io.wavfile

import scipy.io.wavfile as wav
fs, signal = wav.read(filename)

fs是wav文件的采樣率,signal是wav文件的內(nèi)容,filename是要讀取的音頻文件的路徑。我們將signal繪制出來就是下圖這個樣子。


image.png

2. 使用python_speech_features提取特征

①M(fèi)FCC:

默認(rèn)提取的特征維度是13,通常的做法是將該特征進(jìn)行一階差分和二階差分,并將結(jié)果進(jìn)行合并。

from python_speech_features import *
import numpy as np
def get_mfcc(data, fs):
    wav_feature =  mfcc(data, fs)
    d_mfcc_feat = delta(wav_feature, 1)
    d_mfcc_feat2 = delta(wav_feature, 2)
    feature = np.hstack((wav_feature, d_mfcc_feat, d_mfcc_feat2))
    return feature

參數(shù)介紹:
內(nèi)容來源于 金澤夕
https://www.cnblogs.com/zhuimengzhe/p/10223510.html

mfcc:

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

delta:

python_speech_features.base.delta(feat, N)
  • feat - 一個大小為特征數(shù)量的numpy數(shù)組,每一行都有一個特征向量
  • N - 對于每一幀,計算delta特征根據(jù)前后N幀
  • 返回:一個大小為特征數(shù)量的numpy數(shù)組,包含有delta特征,每一行都有一個delta向量

②logfbank

def get_fbank(data, fs):
    wav_feature = logfbank(data, fs)
    return wav_feature

參數(shù)介紹:

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 - 需要用來計算特征的音頻信號,應(yīng)該是一個N*1的數(shù)組
  • samplerate - 我們用來工作的信號的采樣率
  • winlen - 分析窗口的長度,按秒計,默認(rèn)0.025s(25ms)
  • winstep - 連續(xù)窗口之間的步長,按秒計,默認(rèn)0.01s(10ms)
  • nfilt - 濾波器組的濾波器數(shù)量,默認(rèn)26
  • nfft - FFT的大小,默認(rèn)512
  • lowfreq - 梅爾濾波器的最低邊緣,單位赫茲,默認(rèn)為0
  • highfreq - 梅爾濾波器的最高邊緣,單位赫茲,默認(rèn)為采樣率/2
  • preemph - 應(yīng)用預(yù)加重過濾器和預(yù)加重過濾器的系數(shù),0表示沒有過濾器,默認(rèn)0.97
  • 返回: 一個包含特征的大小為nfilt的numpy數(shù)組,每一行都有一個特征向量
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容