MFCC 特征提取

HTK以及My_htk数据链接: https://pan.baidu.com/s/1Ajo7d-odrRiAwmCB_CQTzQ 提取码:hqnv

一:文件准备
  1. HTK 和 HTK–samples
    下载 HTK 和 HTK–samples 两个压缩文件,保存至 F 盘根目录下。 下载地址:http://htk.eng.cam.ac.uk/download.shtml(注:HTK 官方 网站需要先注册,才能下载)
  2. Visual Studio
    安装 Visual Studio 软件, 我安装的是 VS2013
二: HTK 编译

1.创建 bin.win32 和运行 VS2013

进入到解压后的 HTK-3.4.1 文件夹下的 htk 文件夹中,在本目录下创 建一个名为 bin.win32 的文件夹,这个文件夹是用来存放 htk 生成的各个 exe 程序的。找到自己 VS 安装目录下 VC 的子目录下的 bin 文件夹,将该路径添加到 path 变量中。
在cmd中输入 :path=%path%;F:\VS2013\VC\BIN即可 ( 注意不要加入不必要的空格 ) , 添加完成后继续输入 path, 看看有没有添加成功 ( 末尾是否有刚添加的路径 ) , 如果添加成功 , 输入VCVARS32

在这里插入图片描述
2.进行编译

  1. 编译 HTKLib
    进入到HTKLib目录 :cd HTKLib, 在命令行里输入nmake/f htk_htklib_nt.mkf all 进行编译 , 输入后 ,DOS窗口会出现如下情况 ( 截取其中部分 ):
    在这里插入图片描述
  2. 编译 HTKTools
    在命令行中输入 cd…, 表示返回上一层目录 , 再输入 cd HTKTools, 进入HTKTools目录 , 输入nmake/f htk_htktools_nt.mkf all 编译该目录下的文件 。

在这里插入图片描述

  1. 编译 HLMLib
    输入cd…, 再输入cd HLMLib, 进入HLMLib目录 , 输入 :nmake/f htk_hlmlib_nt.mkf all 编译该目录下的文件 。

  2. 编译 HLMTools
    输入cd…, 再输入cd HLMTools, 进入HLMTools目录 , 输入 :nmake/f htk_hlmtools_nt.mkf all 编译该目录下的文件 。

3.编译验证

这时候我们已经编译完所有 exe 程序,我们打开 bin. win32 文件夹看 一下,如果如下图所示,则证明已经编译成功。
在这里插入图片描述
4.工具路径加入到 path
为了能在DOS命令行中使用我们编译生成的工具 , 要将生成的工具路径加入到 path中。 在cmd中输入path=%path%;F:\htk\bin.win32回车 , 再输入path 查看添加后的结果如下 :
【 特别提醒 】: 最好在同一个DOS窗口实现所有步骤 , 否则可能不成功 。 如果下次需要特征提取 , 需要将path=%path%;F:\htk\bin.win32 回车添加进去 。
在这里插入图片描述

三: HTK 工具箱的使用(将 WAV 生成 MFCC 文件)

1. htk 文件准备
需要准备如下两个文件(再同一文件夹下新建两个 txt 文件,把文件内 容写进去后,保存,再修改文件名即可):
在这里插入图片描述

  • hcopy.conf
    其中:hcopy.conf 文件是配置文件, 将下列内容粘贴进去即可,有可以 根据要求修改参数:
SOURCEFORMAT   = WAV  
TARGETKIND     = MFCC_0_D_A  
TARGETRATE     = 100000.0     ##10000 = 10000*100ns = 1ms
WINDOWSIZE     = 250000.0    
NUMCEPS        = 12
PREEMCOEF      = 0.97
NUMCHANS       = 27                  #定义美尔频谱的频道数量 
CEPLIFTER      = 22      #定义倒谱所用到的滤波器组内滤波器个数。

  • hcopy.scp
    第二个文件是输入输出文件:hcopy.scp (标明语音文件的地址和对应 输出 mfcc 文件的地址, 提前建好一个 mfcc 文件夹)。hcopy.scp 文件 内容如下:
    在这里插入图片描述
  • ubm
    ubm 文件里面就是需要提取特征的.wav 文件

2.mfcc 特征提取

在 DOS 窗口利用 HCopy 文件进行 mfcc 特征提取

命令:HCopy -A -D -C hcopy.conf -S hcopy.scp
我图片演示的是第二次 HTK 的用法,如果是第一次就可以在同一个 DOS 窗口下输入该命令
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
### 回答1: MFCC(Mel频率倒谱系数)特征提取是语音信号处理中常用的一种特征提取方法。它利用人耳对不同频率声音的感知特性,将频域上的能量分布转化为梅尔频率,然后使用倒谱分析的方法提取特征。MFCC提取了语音信号的频谱包络特征,具有良好的区分能力,适合于语音识别中的特征提取。 在Python中,可以使用第三方库librosa来进行MFCC特征提取。首先需要读取音频文件并进行预处理,例如去噪、去静音等。然后使用librosa提供的mfcc函数,对音频信号进行处理,得到MFCC特征矩阵。可以通过调整函数参数,如采样率、帧长、帧移、梅尔带宽等,来优化特征提取效果。 MFCC特征提取后,一般需要进行降维处理以减少特征维度、节省计算量。可以使用PCA(主成分分析)等方法对MFCC特征矩阵进行降维。 在语音识别中,MFCC特征提取是特征工程中非常重要的一部分。它可以提取语音信号的韵律、音色、共振等特征,为后续分类识别提供优良的特征向量,进而提高识别准确率。在实际应用中,可以将MFCC特征与深度学习等算法相结合,构建高效的语音识别系统。 ### 回答2: MFCC即梅尔频率倒谱系数,是语音信号处理中常用的一种特征提取方法。MFCC特征提取有助于降低音频信号的维度和复杂度,使其更易于处理。在Python中,可以使用Librosa库轻松地实现MFCC特征提取。 使用Librosa库进行MFCC特征提取的步骤如下: 1. 导入Librosa库。 ``` python import librosa ``` 2. 读取音频文件。 ``` python audio_data, sample_rate = librosa.load('audio_file.wav') ``` 这里的audio_file.wav是待处理的音频文件。 3. 计算MFCC系数。 ``` python mfccs = librosa.feature.mfcc(y=audio_data, sr=sample_rate, n_mfcc=13) ``` 这里的n_mfcc是要计算的MFCC系数个数,一般取13。 4. 对MFCC系数进行归一化处理。 ``` python mfccs_normalized = sklearn.preprocessing.scale(mfccs, axis=1) ``` 这里使用了sklearn库中的preprocessing模块进行归一化处理。 5. 可以将MFCC系数可视化。 ``` python import matplotlib.pyplot as plt plt.figure(figsize=(10, 4)) librosa.display.specshow(mfccs_normalized, sr=sample_rate, x_axis='time') plt.colorbar() plt.title('MFCC') plt.tight_layout() plt.show() ``` 以上步骤完成后,就可以得到一个包含MFCC系数的矩阵。这个矩阵可以用于音频信号分类、语音识别等任务。 总之,MFCC特征提取可以在语音信号处理中起到很好的作用。在Python中,使用Librosa库可以轻松实现MFCC特征提取,同时使用sklearn库中的preprocessing模块可以轻松实现归一化处理。 ### 回答3: MFCC(Mel频率倒谱系数)是一种在语音识别领域经常使用的特征提取方式,它能够将语音信号转化为一组数值特征,以便进行进一步的分析和处理。在python语音处理的库中,可以利用librosa库和python_speech_features库来进行MFCC特征提取。 利用librosa库进行MFCC特征提取 可以使用librosa库的mfcc()函数来实现MFCC特征提取。该函数需要传入语音信号与采样率,可以返回一个二维的矩阵,表示从语音信号中提取的MFCC特征。 下面是一个利用librosa库进行MFCC特征提取的例子: ``` import librosa import librosa.display import numpy as np import matplotlib.pyplot as plt # Load audio file y, sr = librosa.load('speech.wav') # Extract MFCC feature mfcc_feat = librosa.feature.mfcc(y=y, sr=sr, n_mfcc=13) # Plot MFCC feature plt.figure(figsize=(10, 4)) librosa.display.specshow(mfcc_feat, x_axis='time') plt.colorbar() plt.title('MFCC') plt.tight_layout() plt.show() ``` 在上面的例子中,“speech.wav”是要提取MFCC特征的语音文件名,将其加载为y和sr两个变量,其中y是语音信号,sr是采样率。使用librosa.feature.mfcc()函数,将语音信号和采样率作为参数传入,同时可以指定要提取的MFCC特征的个数。通过librosa.display.specshow()函数和plt.show()函数,可以将MFCC特征以图形化形式显示出来。 利用python_speech_features库进行MFCC特征提取 python_speech_features库也提供了MFCC特征提取的函数mfcc()。与librosa库类似,该函数需要传入语音信号及其采样率,可以返回一个二维的矩阵,表示从语音信号中提取的MFCC特征。 下面是一个利用python_speech_features库进行MFCC特征提取的例子: ``` from python_speech_features import mfcc import scipy.io.wavfile as wav import numpy as np import matplotlib.pyplot as plt # Load audio file rate, sig = wav.read('speech.wav') # Extract MFCC feature mfcc_feat = mfcc(sig, rate, numcep=13) # Plot MFCC feature plt.figure(figsize=(10, 4)) plt.imshow(np.transpose(mfcc_feat), origin='lower', aspect='auto') plt.colorbar() plt.title('MFCC') plt.tight_layout() plt.show() ``` 在上面的例子中,利用scipy.io.wavfile库的read()函数将语音文件“speech.wav”加载为一个由采样率rate和信号sig组成的元组,再将sig和rate作为参数传入python_speech_features库的mfcc()函数中,指定要提取的MFCC特征的个数。通过Numpy库的transpose()函数和matplotlib库的imshow()函数,将MFCC特征以图形化形式显示出来。 总结 MFCC是语音信号特征提取的常用方法之一,通过利用python的音频处理库,可以很方便地实现MFCC特征的提取。本文分别介绍了利用librosa库和python_speech_features库进行MFCC特征提取的方法,希望能对相关领域的学习者有所帮助。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

唐维康

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值