音声認識の音声前処理方式まとめ(継続更新)


音声認識の音声の前処理は、音声情報を略読み取る特徴抽出を行う.(以下、mfccフィーチャーの前処理を例に挙げる.)
一、pythonが持参したwaveモジュールとmatplotlibを用いて音声情報の読み取りとスペクトル図の描画を行い、python_を用いるspeech_Featuresはmfcc特徴の抽出を行う.
import matplotlib.pyplot as plt
from python_speech_features import mfcc
import numpy as np
##      
f=wave.open('xxx.wav'.'r')
##      
para=f.getparams()
nchannels,samplewidth,framerate,,nframes=para[:4]
strData=f.readframes(nframes)
waveData=np.fromstring(strData,dtype=np.short)
waveData=np.reshape(waveData,[nframes,nchannels]).T
##     
spectrum,freqs,ts,fig=plt.specgram(waveData[0],Fs,window,sides,pad_to,NFFT,detrend)
plt.ylabel('frequency')
plt.xlabel('Time')
plt.title('Spectrum')
plt.show()
##            
mfcc =mfcc(spectrum,samplerate=framerate)

二、scipy音声処理ツールとpython_を使用するspeech_Featuresによる音声情報の読み取りおよびmfcc特徴抽出
import scipy.io.wavfile as wav
from python_speech_features import mfcc
##      
fs,audio=wav.read('xxx','r')
##            
mfcc=mfcc(audio,samplerate=fs)
##              

三、librosaによる音声処理
import librosa
import librosa.display  ##       AttributeError: module 'librosa' has no attribute 'display'
import matplotlib.pyplot as plt
##      
waveData,sr=librosa.load('xxx',sr=None)
##            
mfcc=librosa.feature.mfcc(y=waveData, sr=sr, n_mfcc=40)
###  librosa     specshow()     
plt.figure()
librosa.display.specshow(mfcc, sr=sr,x_axis='time',y_axis='mel')
plt.title('Waveform')
plt.show()