当前位置: 首页 > news >正文

Mel Frequency Cepstral Coefficients (MFCCs)

wiki里说
在声音处理中,梅尔频率倒谱( MFC ) 是声音的短期功率谱的表示,基于非线性梅尔频率标度上的对数功率谱的线性余弦变换。
倒谱和MFC 之间的区别在于,在 MFC 中,频带在梅尔尺度上等距分布,这比正常频谱中使用的线性间隔频带更接近人类听觉系统的响应。这种频率扭曲可以更好地表示声音,例如,在可能会降低传输带宽的音频压缩中以及音频信号的存储要求。
梅尔频率倒谱系数( MFCC ) 是共同构成 MFC 的系数。它们源自音频剪辑的一种倒谱表示。

信号的梅尔频率倒谱系数 (MFCC) 是一小组特征(通常为 10-20),它们简明地描述了 spectral envelope 的​​整体形状。在MIR中,它常被用来描述音色。
本文参考了Gender identification of a speaker using MFCC and GMM论文中描述的MFCC把语音转换为参数方法
将一个语音信号转换为MFCC要以下几个步骤:

在这里插入图片描述

  1. 预加重滤波器 pre-emphasis filter 滤波

让采样后的信号通过一个滤波器,并调整高低频率的强度。浊音区域的频谱通过预加重进行补偿,预加重会放大高频区域并执行滤波。简单描述实现就是:
在这里插入图片描述
α是滤波器的系数,常为0.95-0.97
但是这是很多年前因为有限的计算资源迫使开发人员创建的方法。
对于信号消歧而言,较高的频率比较低的频率更为重要。
在古早的时间里,应用模拟预加重滤波器会更容易获得好结果,因此大家都用了预加重。
预加重的另一个好特性是它有助于处理录音中经常出现的 DC offset 直流偏移,因此它可以改进基于能量的语音活动检测。
而现代语音识别不需要预加重。预加重在后期通过 channel normalization(如倒谱均值归一化)进行补偿,因此它应该根本没有影响。

预加重的好处:

  • 平衡频谱
  • 避免 Fourier transform 操作期间的数值问题
  • 改善信号噪声比 Signal-to-Noise Ratio (SNR)
  1. framing , 汉明窗Hamming window处理

与所有语音分析方法一样,MFCC 方法也适用于语音具有固定声学特征的短部分。即进行分帧framing,一帧有N个采样点:
这些部分通常选择为 20-30 毫秒,沿信号偏移 10-15 毫秒。
在大多数情况下,对整个信号进行傅里叶变换没有意义,因为会随着时间的推移丢失信号的频率轮廓(时序信息?)。通过对这个短时间帧进行傅立叶变换,我们可以通过连接相邻帧来获得信号频率轮廓的良好近似(这句话没怎么理解这个良好近似)。每一帧都包含其前一帧的一部分。
语音处理中的典型帧大小范围为 20 到 40 毫秒,连续帧之间有 50% (+/-10%) 的重叠。
通常的设置是:
帧大小为 25 ms,frame_size = 0.025 和 10 ms stride(15ms overlap ),frame_stride = 0.01。
在语音应用中,汉明窗通常是首选。其公式为:
在这里插入图片描述
可以用np.hamming

  1. 频率频谱图

语音信号被划分成分析窗口,通过FFT从时域变换到频域。这种表示语音信号频率分布的符号称为幅度谱。
amplitude spectrum / magnitude spectrum
我们现在可以做一个 N- 对每一帧进行点FFT计算频谱,也称为短时傅立叶变换(STFT),其中 N通常为 256 或 512,NFFT = 512;然后使用以下公式计算功率谱
在这里插入图片描述
也就是对每一帧进行FFT变换

  1. Mel-Frequency Warping

为了将获得的振幅谱转换为 mel-scale,使用相对于 mel-scale 线性放置的滤波器组。该组由重叠 50% 的三角形带通滤波器组成。一般滤波系数取值在20~30之间。

  1. 创建mel filter bank

mel filter的公式:
在这里插入图片描述
滤波组的公式:

  1. 计算log mel spectrum

计算滤波器组和频率频谱图的内积,再进行log计算
有点不懂的是他算的公式是20 * np.log10(fbank),有点不太清楚这个公式是哪里来的。感觉用librosa库的会多一些

  1. 离散余弦变换 (DCT)的 liftering

主要作用是对滤波器组进行去相关操作,丢弃除了自己设定的num_ceps以外的值,这些值代表滤波器组系数的快速变化,而这些细节对自动语音识别 (ASR) 没有什么帮助,然后将lift与mfcc相乘计算外积,以弱化较高的 MFCC,据称可以改善噪声信号中的语音识别
cep_lifter 是 Cepstral liftering order
num_ceps 是 number of cepstral coefficients (C1-C12, omitting C0)
lift = 1 + (cep_lifter / 2.0) * np.sin(np.pi * np.arange(num_ceps) / cep_lifter)

相关文章:

Mel Frequency Cepstral Coefficients (MFCCs)

wiki里说 在声音处理中,梅尔频率倒谱( MFC ) 是声音的短期功率谱的表示,基于非线性梅尔频率标度上的对数功率谱的线性余弦变换。 倒谱和MFC 之间的区别在于,在 MFC 中,频带在梅尔尺度上等距分布,这比正常频谱中使用的线…...

第七讲---贪心(上课)

1.股票买卖 一、贪心 考虑一种方案,在每次上升的前一天购入股票,并在上升后的当天卖出的方案 if (w[i] > w[i - 1])res w[i] - w[i - 1];接下来证明该贪心思路得出的方案即是最优解。 (1)证明贪心解 ≥ 最优解: …...

计算机如何思考与图灵完备

图灵完备是针对一套数据操作规则而言的概念,数据操作规则可以是一门编程语言,也可以是计算机实现里面的指令集,比如C/C++是图图灵完备的,通用CPU也是图灵完备的,但是GPU却不一定是图灵完备的。说白了图灵完备定义了一套规则,当这套规则可以实现图灵迹模型里的全部功能时,…...

惠普LaserJet M1005 MFP报错b2

故障现象: 惠普LaserJet M1005 MFP开机后直接报b2错误; 检测维修: 故障大意是:机器的硬件可能出现点突变,此问题建议联系当地维修中心进行处理。...

网络协议(TCP/IP)

目录一、网络分层模型二、OSI模型三、网络传输原理四、TCP/IP1、TCP/IP 原理2、TCP 三次握手/四次挥手3、Http协议和TCP/IP的区别五、HTTP原理六、HTTPS原理七、CDN原理一、网络分层模型 互联网的本质就是一系列的网络协议,最早由ISO国际组织定义为7层网络参考模型…...

2023河南省第二届职业技能大赛郑州市选拔赛“网络安全” 项目比赛样题任务书

2023河南省第二届职业技能大赛郑州市选拔赛“网络安全” 项目比赛样题任务书2023河南省第二届职业技能大赛郑州市选拔赛“网络安全” 项目比赛样题任务书A模块基础设施设置/安全加固(200分)A-1:登录安全加固(Windows, Linux&#…...

6、流程控制

目录一、if二、switch三、for四、break与continue五、goto与Label一、if if使用:逻辑表达式成立,就会执行{}里的内容;逻辑表达式不需要加() if 5 > 9 {fmt.Println("5>9") }if句子中允许包含1个(仅1个)分号:在分…...

Linux中最基本常见命令总结

❤❤💛💛💚💚💙💙💜💜您的认可是对我最大的帮助💜💜💙💙💚💚💛💛❤❤ 🤎&…...

Python学习-----模块2.0(常用模块之时间模块-->time)

目录 前言: time简介 导入模块 1.时间戳 2.时间元组 (1)把时间戳转换为元组形式 (2)元组转换为时间戳输出 (3)把元组转换为格式化时间 (4)把时间戳转换为格式化时间…...

XXL-JOB分布式任务调度框架(二)-策略详解

文章目录1.引言2.任务详解2.1.执行器2.2.基础配置3.路由策略(第一个)-案例4.路由策略(最后一个)-案例5.轮询策略-案例6.随机选取7.轮询选取8.一致性hash9.最不经常使用 (LFU)10.最近最久未使用(LRU)11.故障转移12.忙碌转移13.分片广播任务14.父子任务15.…...

JAVA练习54-最小栈

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一、题目-最小栈 1.题目描述 2.思路与代码 2.1 思路 2.2 代码 总结 前言 提示:这里可以添加本文要记录的大概内容: 2月18日练习内容…...

Redis-哨兵模式以及集群

在开始这部分内容之前需要先说一下复制功能,因为这是Redis实现主从数据同步的实现方式。复制功能如果存在两台服务器的话,我们可以使用redis的复制功能,让一台服务器去同步另一台服务器的数据。现在我启动了两台redis服务器,一个端…...

过滤器和监听器

1、过滤器Filter 作用是防止SQL注入、参数过滤、防止页面攻击、空参数矫正、Token校验、Session验证、点击率统计等等; 使用Filter的步骤 新建类,实现Filter抽象类;重写init、doFilter、destroy方法;在SpringBoot入口中添加注解…...

Acwing 第 91 场周赛

Powered by:NEFU AB-IN B站直播录像! Link 文章目录Acwing 第 91 场周赛A AcWing 4861. 构造数列题意思路代码B AcWing 4862. 浇花题意思路代码C AcWing 4863. 构造新矩阵题意思路代码Acwing 第 91 场周赛 A AcWing 4861. 构造数列 题意 略 思路 将每个数的每一位…...

JavaEE|套接字编程之UDP数据报

文章目录一、DatagramSocket API构造方法常用方法二、DatagramPacket API构造方法常用方法E1:回显服务器的实现E2:带有业务逻辑的请求发送一、DatagramSocket API 在操作系统中,把socket对象当成了一个文件处理。等价于是文件描述符表上的一项。 普通的文件&#xf…...

如何使用Python创建一个自定义视频播放器

目录 1、安装vlc的64位版本。 2、安装python的vlc模块。 3、编写如下代码,包含了播放,暂停,停止、音量控制功能。 4、来看一看运行结果。 5、如果遇到播放不了的问题,解决方式如下: 这个例子使用VLC作为视频播放器…...

Elasticsearch进行优化-使用索引拆分(Split)和索引收缩(shrink )

一、索引拆分和收缩的场景 在Elasticsearch集群部署的初期我们可能评估不到位,导致分配的主分片数量太少,单分片的数据量太大,导致搜索时性能下降,这时我们可以使用Elasticsearch提供的Split功能对当前的分片进行拆分&#xff0c…...

数论 —— 高斯记号(Gauss mark)

定义 数学上,高斯记号(Gauss mark)是指对取整符号和取小符号的统称,用于数论等领域。 设 x∈Rx \in \textbf{R}x∈R,用 [x][x][x] 表示不超过 xxx 的最大整数。也可记作 [x][x][x]。设 x∈Rx \in \textbf{R}x∈R&…...

【随笔】程序员眼中的 CPU,“没有灵魂的躯体”

引言 先引用一段比较有意思的论述: 现实中每个人是由两部分构成,灵魂和躯体,灵魂依附于躯体游走于世间,现实中我们面对的每个人其实面对的是其灵魂而非肉体,肉体不过是表象而已。 灵魂本性乃一恶物,寄生于…...

算法的时间复杂度

算法在编写成可执行程序后,运行时需要消耗时间资源和空间(内存)资源,因此衡量一个算法的好坏,一般是从时间和空间两个维度来衡量的。 时间复杂度主要衡量一个算法运行的快慢,而空间复杂度主要衡量一个算法运…...

RestClient

什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级&#xff…...

挑战杯推荐项目

“人工智能”创意赛 - 智能艺术创作助手:借助大模型技术,开发能根据用户输入的主题、风格等要求,生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用,帮助艺术家和创意爱好者激发创意、提高创作效率。 ​ - 个性化梦境…...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

黑马Mybatis

Mybatis 表现层&#xff1a;页面展示 业务层&#xff1a;逻辑处理 持久层&#xff1a;持久数据化保存 在这里插入图片描述 Mybatis快速入门 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6501c2109c4442118ceb6014725e48e4.png //logback.xml <?xml ver…...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试

作者&#xff1a;Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位&#xff1a;中南大学地球科学与信息物理学院论文标题&#xff1a;BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接&#xff1a;https://arxiv.…...

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件&#xff0c;然后打开终端&#xff0c;进入下载文件夹&#xff0c;键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

2021-03-15 iview一些问题

1.iview 在使用tree组件时&#xff0c;发现没有set类的方法&#xff0c;只有get&#xff0c;那么要改变tree值&#xff0c;只能遍历treeData&#xff0c;递归修改treeData的checked&#xff0c;发现无法更改&#xff0c;原因在于check模式下&#xff0c;子元素的勾选状态跟父节…...

【Java_EE】Spring MVC

目录 Spring Web MVC ​编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 ​编辑参数重命名 RequestParam ​编辑​编辑传递集合 RequestParam 传递JSON数据 ​编辑RequestBody ​…...

mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包

文章目录 现象&#xff1a;mysql已经安装&#xff0c;但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时&#xff0c;可能是因为以下几个原因&#xff1a;1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...

tree 树组件大数据卡顿问题优化

问题背景 项目中有用到树组件用来做文件目录&#xff0c;但是由于这个树组件的节点越来越多&#xff0c;导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多&#xff0c;导致的浏览器卡顿&#xff0c;这里很明显就需要用到虚拟列表的技术&…...