RISC-V MCU中文社区

【分享】 基于E203的语音识别项目特征提取部分MFCC

发表于 全国大学生集成电路创新创业大赛 2022-05-19 17:42:20
0
211
1

大家好,我们是CICC1118无限流小分队,本帖将介绍我们的语音识别项目特征提取部分MFCC

在语音识别领域,最常用到的语音特征就是梅尔倒谱系数(Mel-scale Frequency Cepstral Coefficients,简称MFCC)。根据人耳听觉机理的研究发现,人耳对不同频率的声波有不同的听觉敏感度。从200Hz5000Hz的语音信号对语音的清晰度影响不大。两个响度不等的声音作用于人耳时,则响度较高的频率成分的存在会影响到对响度较低的频率成分的感受,使其变得不易察觉,这种现象称为掩蔽效应。

由于频率较低的声音在内耳蜗基底膜上行波传递的距离(速度)大于频率较高的声音,故一般来说,低音容易掩蔽高音,而高音掩蔽低音较困难。在低频处的声音掩蔽的临界带宽较高频要小。所以,人们从低频到高频这一段频带内按临界带宽的大小由密到疏安排一组带通滤波器,对输入信号进行滤波。将每个带通滤波器输出的信号能量作为信号的基本特征,对此特征经过进一步处理后就可以作为语音的输入特征。

MFCC是在Mel标度频率域提取出来的倒谱参数,Mel标度描述了人耳频率的非线性特性,它与频率的关系可用下式近似表示:


MFCC的基本流程如下:

预加重 分帧 加窗 FFT Mel滤波器组 对数运算 DCT

1)        预加重: 将语音信号通过一个高通滤波器,提升高频部分,使号的频谱变得平坦,保持在低频到高频的整个频带中,能用同样的信噪比求频谱。同时,也是为了消除发生过程中声带和嘴唇的效应,来补偿语音信号受到发音系统所抑制的高频部分,也为了突出高频的共振峰。

2)        分帧:先将N个采样点集合成一个观测单位,称为帧。预加重后,我们需要将信号分成短时帧。通过在这个短时间帧内进行傅里叶变换,我们可以通过连接相邻帧来获得信号的频率轮廓的良好近似。

3)        加窗: 将每一帧乘以汉明窗,以增加帧左端和右端的连续性。

4)        FFT: 由于信号在时域上的变换通常很难看出信号的特性,所以通常将它转换为频域上的能量分布来观察,不同的能量分布,就能代表不同语音的特性。所以在乘上汉明窗后,每帧还必须再经过快速傅里叶变换以得到在频谱上的能量分布。

5)        Mel滤波: 将能量谱通过一组Mel尺度的三角形滤波器组,采用的滤波器为三角滤波器。对频谱进行平滑化,并消除谐波的作用,突显原先语音的共振峰。

6)        对数运算:计算每个滤波器组输出的对数能量

7)        DCT:经离散余弦变换(DCT)得到MFCC系数

本项目中,数据流首先从麦克风输入MFCC模块,以进行音频信号的特征化提取,MFCC模块挂载到外围总线模块上,通过ICB协议将特征值传输进CPU_TOP顶层模块的DTCM中。


喜欢1
用户评论
CzDayDayUp

CzDayDayUp 实名认证

懒的都不写签名

积分
问答
粉丝
关注
  • RV-STAR 开发板
  • RISC-V处理器设计系列课程
  • 培养RISC-V大学土壤 共建RISC-V教育生态
RV-STAR 开发板