waveform波形图(时域图)、spectrum(频谱图)、spectrogram(语谱图)、MFCC
人的气流(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语音信号可视化——时域、频域、语谱图、MFCC详细思路与计算、差分
基本语音信号处理操作入门 1. 数据获取 2. 语音信号可视化 2.1 时域特征 2.2 频域特征 2.3 语谱图 3. 倒谱分析 4. 梅尔系数 4.1 梅尔频率倒谱系数 4.2 Mel滤波器原理 ...
- 语谱图(四) Mel spectrogram 梅尔语谱图
1. 语谱图的产生 前文介绍了语谱图的产生 这里在简单小结如下, 信号预处理,预加重, 分帧, 加窗, 进行STFT 变换, 生成频谱图: 对单帧信号的频谱进行映射, (2,3 步骤如下图) 将映射后 ...
- CodeEditPro2.1基础使用——打开文件,查看波形图及语谱图
1.将其转换成单文件查看方式 单文件查看方式如下图所示 2.2.1打开PCM文件 step1 或者直接将PCM文件拖入这个软件窗口即可,将会出现以下窗口 step2:配置采样率,量化精度,声道 出现以 ...
- python绘制语谱图(详细注释)
用python 绘制语谱图 1.步骤: 1)导入相关模块 2)读入音频并获取音频参数 3)将音频转化为可处理形式(注意读入的是字符串格式,需要转换成int或short型) 代码如下: import ...
- 语谱图的实现与种类,与画图
1. 语谱图的矩阵 1.1 原始矩阵 首先原始矩阵,从上到下,依次为第0 行, 到最后一行: 1.2 语谱图矩阵 最终生成的语谱图矩阵数据, 从上到下,第0 行代表低频,最后一行代表高频: 1.3 矩 ...
- 语音信号处理(四):生成语音信号的语谱图
关于语谱图的简单介绍可以参考这篇文章 现代语音信号处理之语谱图(spectrogram) 下面对 ai d s t 这四个语音进行语谱图绘制 绘制代码如下 mkdir('***');%新建存放语谱图的 ...
- python实现绘制信号序列语谱图
python实现绘制信号序列语谱图 功能:绘制信号序列语谱图 代码: import numpy as np # 导入音频及绘图显示包 import librosa.display # 导入绘图工作的函 ...
- 语音信号处理-概念(一):时域信号(横轴:时间;纵轴:幅值)、频谱图(横轴:频率;纵轴:幅值)--傅里叶变换-->时频谱图(语谱图/声谱图)【横轴:时间;纵轴:频率;颜色深浅:幅值】
我们经常接触到与频谱相关的概念.本节对这些概念之间的区别进行简单的介绍. 一般来讲,将一段时域信号通过离散傅里叶变换后,将频率作为横轴.幅度作为纵轴,得到的图像称作 频谱.若将相位作为纵轴,则称为 相 ...
- python实现时频谱,语谱图,mel语谱倒谱等
python实现时频谱,语谱图,mel语谱倒谱等 可以和理论相结合学习:https://blog.csdn.net/qq_36002089/article/details/108378796 语音信号 ...
最新文章
- Node.js中文件上传与multer模块的应用
- Discuz X2论坛数据库MyISAM转InnoDB的脚本
- 皮尔·卡丹的管理思想精髓:从小做到大
- MFC让文档/视图结构程序支持滚动条
- [Linux]centOS7-1-1503-x86_64下安装VM-TOOLS
- eclipse查看jar包中class的中文注释乱码问题的解决
- MySQL中(delete、truncate、drop) 的区别
- Failed to bind properties under mybatis-plus.configuration.result-maps[0]
- 2017年7月9 号小计
- vnpy学习11_增加测试评估指标
- 雷军藏太深!除小米、迅雷外,还有这么多耳熟能详的企业?
- python中range和xrange的区别_ZH奶酪:Python中range和xrange的区别
- HDU 2955 Robberies(概率DP,01背包)题解
- 【jquery】fancybox 是一款优秀的 jquery 弹出层展示插件
- 怎么识别自己的眼型?眼型图片参照
- 虚拟机安装Linux(ubuntu)
- 大神偷偷收藏的7个自学网站,质量高且免费,请低调使用
- Qt屏幕的尺寸及屏幕分辨率
- 财富2019年世界500强企业爬虫(爬虫学习实践项目)
- 一、使用vue创建项目的详细步骤
热门文章
- xwiki的搭建及jetty升级
- 直接下载豆瓣fm的全部歌曲py脚本。(json操作)
- 三分钟教你怎么把EPUB转MOBI
- 小米电视能看普通的电视台吗?HDP直播和电视家带你解锁看剧新体验
- spine 导出纹理_如何将动画数据文件(json、二进制文件)导入制作spine动画文件...
- MAC JDK 卸载方法、环境配置
- Java毕设项目物流车辆规费管理系统的设计与实现(java+VUE+Mybatis+Maven+Mysql)
- c语言struct结构体类型有关typedef定义的本名和别名
- C语言递归实现数组求和
- php获取用户真实ip_开启CDN后,PHP获取用户真实IP的方法