语音特征参数MFCC提取过程详解

news2024/10/6 8:33:20

一、MFCC概述

  在语音识别(SpeechRecognition)和话者识别(SpeakerRecognition)方面,最常用到的语音特征就是梅尔倒谱系数(Mel-scaleFrequency Cepstral Coefficients,简称MFCC)。根据人耳听觉机理的研究发现,人耳对不同频率的声波有不同的听觉敏感度。从200Hz到5000Hz的语音信号对语音的清晰度影响对大。两个响度不等的声音作用于人耳时,则响度较高的频率成分的存在会影响到对响度较低的频率成分的感受,使其变得不易察觉,这种现象称为掩蔽效应。由于频率较低的声音在内耳蜗基底膜上行波传递的距离大于频率较高的声音,故一般来说,低音容易掩蔽高音,而高音掩蔽低音较困难。在低频处的声音掩蔽的临界带宽较高频要小。所以,人们从低频到高频这一段频带内按临界带宽的大小由密到疏安排一组带通滤波器,对输入信号进行滤波。将每个带通滤波器输出的信号能量作为信号的基本特征,对此特征经过进一步处理后就可以作为语音的输入特征。由于这种特征不依赖于信号的性质,对输入信号不做任何的假设和限制,又利用了听觉模型的研究成果。因此,这种参数比基于声道模型的LPCC相比具有更好的鲁邦性(所谓“鲁棒性”,是指控制系统在一定(结构,大小)的参数摄动下,维持其它某些性能的特性。),更符合人耳的听觉特性,而且当信噪比降低时仍然具有较好的识别性能。

  梅尔倒谱系数(Mel-scale Frequency Cepstral Coefficients,简称MFCC)是在Mel标度频率域提取出来的倒谱参数,Mel标度描述了人耳频率的非线性特性,它与频率的关系可用下式近似表示:
在这里插入图片描述
式中f为频率,单位为Hz。下图展示了Mel频率与线性频率的关系:
在这里插入图片描述

二、语音特征参数MFCC提取过程

基本流程:
在这里插入图片描述

1.预加重

预加重处理其实是将语音信号通过一个高通滤波器:
在这里插入图片描述
  (1)式中的值介于0.9-1.0之间,我们通常取0.97。预加重的目的是提升高频部分,使信号的频谱变得平坦,保持在低频到高频的整个频带中,能用同样的信噪比求频谱。同时,也是为了消除发生过程中声带和嘴唇的效应,来补偿语音信号受到发音系统所抑制的高频部分,也为了突出高频的共振峰。

2.分帧

  先将N个采样点集合成一个观测单位,称为帧。通常情况下N的值为256或512,涵盖的时间约为20~30ms左右。为了避免相邻两帧的变化过大,因此会让两相邻帧之间有一段重叠区域,此重叠区域包含了M个取样点,通常M的值约为N的1/2或1/3。通常语音识别所采用语音信号的采样频率为8KHz或16KHz,以8KHz来说,若帧长度为256个采样点,则对应的时间长度是256/8000 *1000=32ms。

3.加窗(Hamming Window)

  将每一帧乘以汉明窗,以增加帧左端和右端的连续性。假设分帧后的信号为S(n), n=0,1,…,N-1, N为帧的大小,那么乘上汉明窗后,W(n)形式如下:
在这里插入图片描述
不同的a值会产生不同的汉明窗,一般情况下a取0.46

4.快速傅里叶变换

  由于信号在时域上的变换通常很难看出信号的特性,所以通常将它转换为频域上的能量分布来观察,不同的能量分布,就能代表不同语音的特性。所以在乘上汉明窗后,每帧还必须再经过快速傅里叶变换以得到在频谱上的能量分布。对分帧加窗后的各帧信号进行快速傅里叶变换得到各帧的频谱。并对语音信号的频谱取模平方得到语音信号的功率谱。设语音信号的DFT为:
在这里插入图片描述
式中x(n)为输入的语音信号,N表示傅里叶变换的点数。

5.三角带通滤波器

  将能量谱通过一组Mel尺度的三角形滤波器组,定义一个有M个滤波器的滤波器组(滤波器的个数和临界带的个数相近),采用的滤波器为三角滤波器,中心频率为 。M通常取22-26。各f(m)之间的间隔随着m值的减小而缩小,随着m值的增大而增宽,如图所示:
在这里插入图片描述
三角滤波器的频率响应定义为:

(4)
式中:
三角带通滤波器有两个主要目的:
  对频谱进行平滑化,并消除谐波的作用,突显原先语音的共振峰。(因此一段语音的音调或音高,是不会呈现在MFCC 参数内,换句话说,以MFCC 为特征的语音辨识系统,并不会受到输入语音的音调不同而有所影响)此外,还可以降低运算量。

6.计算每个滤波器组输出的对数能量为

(5)

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

在这里插入图片描述
  将上述的对数能量带入离散余弦变换,求出L阶的Mel-scale Cepstrum参数。L阶指MFCC系数阶数,通常取12-16。这里M是三角滤波器个数。

8.对数能量

  此外,一帧的音量(即能量),也是语音的重要特征,而且非常容易计算。因此,通常再加上一帧的对数能量(定义:一帧内信号的平方和,再取以10为底的对数值,再乘以10)使得每一帧基本的语音特征就多了一维,包括一个对数能量和剩下的倒频谱参数。

注:若要加入其它语音特征以测试识别率,也可以在此阶段加入,这些常用的其它语音特征包含音高、过零率以及共振峰等。

9.动态查分参数的提取(包括一阶差分和二阶差分)

  标准的倒谱参数MFCC只反映了语音参数的静态特性,语音的动态特性可以用这些静态特征的差分谱来描述。实验证明:把动、静态特征结合起来才能有效提高系统的识别性能。差分参数的计算可以采用下面的公式:
(7)
  式中,dt表示第t个一阶差分;Ct表示第t个倒谱系数;Q表示倒谱系数的阶数;K表示一阶导数的时间差,可取1或2。将上式中结果再代入就可以得到二阶差分的参数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/443666.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

IntelliJ IDEA全新发布v2023.1——全面增强UI体验和性能!

IntelliJ IDEA,是java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。 I…

javaSwingrsa和aes混合加密文件传输系统

RSA和AES加密混合文件传输系统 环境要求: 1、java1.8 2、socket 3、mysql 4、io流 5、swing 登录界面 客户端登录: 1.用户注册的账号保存到数据库中,用户的密码经过md5后保存到数据库中。 2.用户输入正确的账号和密码可以进入 “ …

Gulp 打包压缩 js 文件到指定目录详细流程(修改文件名与后缀)

主篇 前端 Gulp 详细介绍与案例使用。 打包 index.js 测试内容 js 包内容文件: // 测试属性 export const dzmName dzm export const dzmAge 18// 测试方法 export function dzmFunc (name, age) {return 名字:${name},年龄:${…

Chat的提问工程师,要上线了你慌不慌?

一、什么是Prompt? (1)Prompt的概念 我们在使用GPT的时候,给GPT发送的消息就是Prompt. 例如,当我们问ChatGPT"WPS是什么软件?"时: 其中,"WPS是什么软件?"这句话就是Prompt. (2)为什么要学习Prompt? Prompt是我们和GPT交流的方式,我们需要让GPT了解…

微信小程序从零开始经验贴(含详细资料及链接)

背景: 从事微信小程序开发近3年,现在几乎能独当一面,对后台程序也有一定研究。      我学习的基础是c编程经验,对前端、后端没有太多涉及。微信小程序相关资料都是自己找的,然后在项目中看别人的代码,摸着石头过河…

什么是单例模式?

文章目录 01 | 什么是单例模式?02 | 实现懒汉式饿汉式 03 | 总结 每一次实验课都要把上一节课的实验报告打印出来,交作业,这个时候的打印店总是很多人,这时候打印机就那么几台,粥少僧多的情况下,打印机怎么…

动态路由的原理与配置

一.动态路由介绍 1.动态路由选择 指路由器使用路由选择协议来获悉网络并更新路由选择表。 2.路由协议分类 3.管理距离介绍 管理距离(AD)用于判断从邻接路由器收到的路由选择信息的可信度,它是 0-255的整数,0 表示可信度最大&#…

Android9 Settings源码导入Android Studio查看并调试

Android9 Settings源码导入Android Studio查看并调试 本次调试在已编译的工程下 1. 导入packages/app/settings 不要直接导入这个模块,导入上一级app目录 在选择时选择Settings相关所有目录,如下 如下这里的sdk配置是我已经添加的,后面可…

用了这几个方法,Facebook广告转化真上去了!

随着全球电商市值的猛涨,Facebook广告的价值再次被放大。然而,在Facebook上的广告资源竞争日益激烈的情况下,即使你有最好的广告策略和投放预算,如果你的广告创意不能吸引潜在客户的注意,那么你的广告投放也可能失败。…

at单一次任务,crontab周期性任务 rhce(21)

目录 1.atd和crond两个任务管理程序的区别 2.指定在2023/08/26 09:00将时间写入testmail.txt文件中 3.指定在每天凌晨4:00将该时间点之前的系统日志信息备份到个目录下(/var/log/messages),备份后日志文件名显示格式logfileYY-MM-DD HH-MM…

08-java之io流基础

io流学习流程 说白了,本节的目的就是对 文件增删改查,先说一下学习顺序吧 定位文件 File类可以定位文件:可以进行删除文件内容,读取文件本身信息等操作,但是不能读写文件内容 字符集 想要读取文件中的数据&#xff0…

Nginx+Tomcat负载均衡、动静分离

1.Tomcat多实例部署 Tomcat的多实例部署简单的讲就是基于端口的虚拟主机设置 步骤一:安装jdk (1)关闭防火墙和selinux,防止其对安装过程的干扰 (2)将准备好的软件包拖入/opt目录下,进行安装 #某rpm包尚未…

【HCIP】BGP实验(联邦,路由反射器,手工汇总)

目录 需求: Ⅰ、IP规划 Ⅱ、配置IP与做通IGP(用的ospf) Ⅲ、开启BGP协议 Ⅳ、AS1、AS3的10...环回互相通讯 Ⅴ、对路由表进行汇总 Ⅵ、回望需求 需求: 1.AS1存在两个环回,一个地址为192.168.1.0/24该地址不能在任何协议中宣告 AS3存在两…

马斯克的Starship,除了“大”还有什么呢?

‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 种种迹象表明,由ChatGPT引发的算力军备竞赛已经悄然而至了。 终于,到了检验人类最大火箭发射的时候了。 2023年4月17日,SpaceX将其大型深空火箭Starship发射升空,发射地点为Sp…

CANoe使用记录(三):CANoe发送报文设置

目录 1、概述 2、报文发送 2.1、interactive generators(交互生成器) 2.2、重命名发送报文 2.3、增加报文 2.4、触发方式 2.5、从DBC导入报文 2.6、设置信号值 1、概述 很大一部分时候,在控制零部件时候,需要发送报文到下…

辉煌优配|军工板块逆市上涨,16只概念股已披露一季度业绩预喜

今日,军工股逆市上涨。 4月21日,A股三大股指低开低走,半导体、AI使用、信创工业、软件等科技属性概念领跌,国防军工、食品饮料和电力设备等板块上涨。 工业互联网中心工业规模超1.2万亿元 据央视新闻报道,本年是《工业…

玩转ChatGPT:论文翻译润色

一、写在前面 首先还是让小Chat推销下自己: 嘿!你是否在写论文的过程中感到头疼,无从下手?你是否在担心自己的语言表达不够专业、不够流畅,影响了论文的质量?不要担心,ChatGPT的润色服务可以帮…

JavaScript的基础语法学习

文章目录 一、JavaScript let 和 const二、JavaScript JSON三、javascript:void(0) 含义四、JavaScript 异步编程总结 一、JavaScript let 和 const let 声明的变量只在 let 命令所在的代码块内有效。 const 声明一个只读的常量,一旦声明,常量的值就不…

React Native 组件基础

基于组件的架构模式,或许是现在重展示、重交互应用的最好选择 拆组件要准守一个原则,单一责任原则。 这也是 React 官方倡导的原则,这个原则的意思是每个组件都应该只有一个单一的功能,并且这个组件和其他组件没有相互依赖。当然…

Zookeeper数据模型与Watch机制

数据模型 ZooKeeper 中的数据模型是一种树形结构,非常像电脑中的文件系统,有一个根文件夹,下面还有很多子文件夹。ZooKeeper 的数据模型也具有一个固定的根节点(/),我们可以在根节点下创建子节点&#xff0…