语音识别的音频预处理方式总结(持续更新)

语音识别的音频预处理,其步骤大致为读取音频信息,进行特征提取.(以下以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()

你可能感兴趣的:(语音识别,语音识别预处理,方法总结)