人的气流(excitation)通过声道到嘴唇产生声音。唇齿舌的形状决定了发出怎样的声音,这个形状通过频谱图中的包络中显示出来。而MFCCs就是一种准确描述这个包络的一种特征。

一、waveform波形图(时域图)

示例1

示例2

波形的横轴是时间,纵轴是振幅。当横轴的分辨率不高时,语音的波形呈现一个个三角形。这些三角形的轮廓称为波形的包络(envelopoe)包络的大小代表了声音的响度

二、spectrum(频谱图)

我们对上图的语音切片成帧(frame),对每帧进行短时傅里叶变换(short-time Fourier Transform),得到每帧语音的频谱

示例1

示例2

频谱表示频率与能量的关系。频谱图有三种,其中对数振幅谱中各谱线的振幅都作了对数计算,所以其纵坐标的单位是dB(分贝)。这个变换的目的是使那些振幅较低的成分相对高振幅成分得以拉高,以便观察掩盖在低幅噪声中的周期信号。

三、spectrogram(语谱图)

接下来,我们每帧的频谱图做一定变换后拼接起来。我们先将其中一帧语音的频谱通过坐标表示出来,现在我们将下方左图的频谱旋转90度。得到中间的图。然后用颜色表示强度,把这些幅度映射到一个灰度级表示,0表示黑,255表示白色。幅度值越大,相应的区域越黑。这样就得到了最右边的图(用颜色的深浅代替波形的大小)。那为什么要这样呢?为的是增加时间这个维度,这样就可以显示一段语音而不是一帧语音的频谱,而且可以直观的看到静态和动态的信息。

这样我们会得到一个随着时间变化的频谱图,这个就是描述语音信号的spectrogram声谱图。

四、倒谱分析(Cepstrum Analysis)

下面是一个语音的频谱图。峰值就表示语音的主要频率成分,我们把这些峰值称为共振峰(formants),而共振峰就是携带了声音的辨识属性(就是个人身份证一样)。所以它特别重要。用它就可以识别不同的声音

我们不仅要提取共振峰的位置,还要它们转变的过程。所以我们提取的是频谱的包络(Spectral Envelope)。这包络就是一条连接这些共振峰点的平滑曲线

我们可以这么理解,原始的频谱由两部分组成:包络和频谱的细节。这里用到的是对数频谱,所以单位是dB。 这里的包络即是李琳山教授提到的,决定不同phemones的formant structure。而频谱的细节则是excitation(气流)导致的毛。那现在我们需要把这两部分分离开,这样我们就可以得到包络了。

那怎么把他们分离开呢?也就是,怎么在给定log X[k]的基础上,求得log H[k] 和 log E[k]以满足log X[k] = log H[k] + log E[k]呢?为了达到这个目标,我们需要在频谱上做傅里叶变换就相当于逆傅里叶变换Inverse FFT (IFFT)。

我们先取对数把包络(formant strcuture) G(w)和细节(excitation) U(w)的乘法转为加法,再做DFT。我们发现包络U(w)集中在低频部分,G(w)集中在高频部分。于是我们得以将包络U(w)分离出来。

那现在总结下倒谱(cepstrum)分析,它实际上是这样一个过程:

1)将原语音信号经过傅里叶变换得到频谱:X[k]=H[k]E[k];

只考虑幅度就是:|X[k] |=|H[k]||E[k] |;

2)我们在两边取对数:log||X[k] ||= log ||H[k] ||+ log ||E[k] ||。

3)再在两边取逆傅里叶变换得到:x[k]=h[k]+e[k]。

五、梅尔频率倒谱系数(Mel Frequency Cepstrum Coefficient, MFCC)

对于人类听觉感知的实验表明,人类听觉的感知只聚焦在某些特定的区域,而不是整个频谱包络。Mel频率分析就是基于人类听觉感知实验的。实验观测发现人耳就像一个滤波器组一样,它只关注某些特定的频率分量(人的听觉对频率是有选择性的)。也就说,它只让某些频率的信号通过,而压根就直接无视它不想感知的某些频率信号。但是这些滤波器在频率坐标轴上却不是统一分布的,在低频区域有很多的滤波器,他们分布比较密集,但在高频区域,滤波器的数目就变得比较少,分布很稀疏。人耳更愿意听低频的信号。
   梅尔频率倒谱系数(Mel Frequency Cepstrum Coefficient, MFCC)考虑到了人类的听觉特征,先将线性频谱映射到基于听觉感知的Mel非线性频谱中,然后转换到倒谱上

我们将频谱通过一组Mel滤波器就得到Mel频谱。公式表述就是:log X[k] = log (Mel-Spectrum)。这时候我们在log X[k]上进行倒谱分析:

1)取对数:log X[k] = log H[k] + log E[k]。

2)进行逆变换:x[k] = h[k] + e[k]。

在Mel频谱上面获得的倒谱系数h[k]就称为Mel频率倒谱系数,简称MFCC。

参考链接:

语音信号处理之(四)梅尔频率倒谱系数(MFCC)_zouxy09的博客-CSDN博客

不同元音辅音在声音频谱的表现是什么样子? - 王赟 Maigo的回答 - 知乎 https://www.zhihu.com/question/27126800/answer/35376174

waveform波形图(时域图)、spectrum(频谱图)、spectrogram(语谱图)、MFCC相关推荐

  1. 【语音信号处理】1语音信号可视化——时域、频域、语谱图、MFCC详细思路与计算、差分

    基本语音信号处理操作入门 1. 数据获取 2. 语音信号可视化 2.1 时域特征 2.2 频域特征 2.3 语谱图 3. 倒谱分析 4. 梅尔系数 4.1 梅尔频率倒谱系数 4.2 Mel滤波器原理 ...

  2. 语谱图(四) Mel spectrogram 梅尔语谱图

    1. 语谱图的产生 前文介绍了语谱图的产生 这里在简单小结如下, 信号预处理,预加重, 分帧, 加窗, 进行STFT 变换, 生成频谱图: 对单帧信号的频谱进行映射, (2,3 步骤如下图) 将映射后 ...

  3. CodeEditPro2.1基础使用——打开文件,查看波形图及语谱图

    1.将其转换成单文件查看方式 单文件查看方式如下图所示 2.2.1打开PCM文件 step1 或者直接将PCM文件拖入这个软件窗口即可,将会出现以下窗口 step2:配置采样率,量化精度,声道 出现以 ...

  4. python绘制语谱图(详细注释)

    用python 绘制语谱图 1.步骤: 1)导入相关模块 2)读入音频并获取音频参数  3)将音频转化为可处理形式(注意读入的是字符串格式,需要转换成int或short型) 代码如下: import ...

  5. 语谱图的实现与种类,与画图

    1. 语谱图的矩阵 1.1 原始矩阵 首先原始矩阵,从上到下,依次为第0 行, 到最后一行: 1.2 语谱图矩阵 最终生成的语谱图矩阵数据, 从上到下,第0 行代表低频,最后一行代表高频: 1.3 矩 ...

  6. 语音信号处理(四):生成语音信号的语谱图

    关于语谱图的简单介绍可以参考这篇文章 现代语音信号处理之语谱图(spectrogram) 下面对 ai d s t 这四个语音进行语谱图绘制 绘制代码如下 mkdir('***');%新建存放语谱图的 ...

  7. python实现绘制信号序列语谱图

    python实现绘制信号序列语谱图 功能:绘制信号序列语谱图 代码: import numpy as np # 导入音频及绘图显示包 import librosa.display # 导入绘图工作的函 ...

  8. 语音信号处理-概念(一):时域信号(横轴:时间;纵轴:幅值)、频谱图(横轴:频率;纵轴:幅值)--傅里叶变换-->时频谱图(语谱图/声谱图)【横轴:时间;纵轴:频率;颜色深浅:幅值】

    我们经常接触到与频谱相关的概念.本节对这些概念之间的区别进行简单的介绍. 一般来讲,将一段时域信号通过离散傅里叶变换后,将频率作为横轴.幅度作为纵轴,得到的图像称作 频谱.若将相位作为纵轴,则称为 相 ...

  9. python实现时频谱,语谱图,mel语谱倒谱等

    python实现时频谱,语谱图,mel语谱倒谱等 可以和理论相结合学习:https://blog.csdn.net/qq_36002089/article/details/108378796 语音信号 ...

最新文章

  1. Node.js中文件上传与multer模块的应用
  2. Discuz X2论坛数据库MyISAM转InnoDB的脚本
  3. 皮尔·卡丹的管理思想精髓:从小做到大
  4. MFC让文档/视图结构程序支持滚动条
  5. [Linux]centOS7-1-1503-x86_64下安装VM-TOOLS
  6. eclipse查看jar包中class的中文注释乱码问题的解决
  7. MySQL中(delete、truncate、drop) 的区别
  8. Failed to bind properties under mybatis-plus.configuration.result-maps[0]
  9. 2017年7月9 号小计
  10. vnpy学习11_增加测试评估指标
  11. 雷军藏太深!除小米、迅雷外,还有这么多耳熟能详的企业?
  12. python中range和xrange的区别_ZH奶酪:Python中range和xrange的区别
  13. HDU 2955 Robberies(概率DP,01背包)题解
  14. 【jquery】fancybox 是一款优秀的 jquery 弹出层展示插件
  15. 怎么识别自己的眼型?眼型图片参照
  16. 虚拟机安装Linux(ubuntu)
  17. 大神偷偷收藏的7个自学网站,质量高且免费,请低调使用
  18. Qt屏幕的尺寸及屏幕分辨率
  19. 财富2019年世界500强企业爬虫(爬虫学习实践项目)
  20. 一、使用vue创建项目的详细步骤

热门文章

  1. xwiki的搭建及jetty升级
  2. 直接下载豆瓣fm的全部歌曲py脚本。(json操作)
  3. 三分钟教你怎么把EPUB转MOBI
  4. 小米电视能看普通的电视台吗?HDP直播和电视家带你解锁看剧新体验
  5. spine 导出纹理_如何将动画数据文件(json、二进制文件)导入制作spine动画文件...
  6. MAC JDK 卸载方法、环境配置
  7. Java毕设项目物流车辆规费管理系统的设计与实现(java+VUE+Mybatis+Maven+Mysql)
  8. c语言struct结构体类型有关typedef定义的本名和别名
  9. C语言递归实现数组求和
  10. php获取用户真实ip_开启CDN后,PHP获取用户真实IP的方法