librosa能量_librosa中mfcc函数的一点小问题
(图摄于阿姆斯特丹梵高博物馆)
在重读《解析深度学习:语音识别实践》中,发现有段文字跟我预想的并不太一样:
在我的印象中,mfcc的维度应该和梅尔滤波器组数是一样的:stft->mel
这个图(FBank与MFCC - sun___shy的博客 - CSDN博客)就能够说清楚,然后再过log(||)和DCT就是MFCC了。
def mfcc(y=None, sr=22050, S=None, n_mfcc=20, dct_type=2, norm='ortho', **kwargs):
if S is None:
S = power_to_db(melspectrogram(y=y, sr=sr, **kwargs))
return scipy.fftpack.dct(S, axis=0, type=dct_type, norm=norm)[:n_mfcc]
和它调用的子函数
def melspectrogram(y=None, sr=22050, S=None, n_fft=2048, hop_length=512,
power=2.0, **kwargs):
S, n_fft = _spectrogram(y=y, S=S, n_fft=n_fft, hop_length=hop_length,
power=power)
# Build a Mel filter
mel_basis = filters.mel(sr, n_fft, **kwargs)
return np.dot(mel_basis, S)
可以发现,在一般的处理中,如上图的,在stft->mel这一步中,就完成了降维,但是libroas在最后才完成降维,在log(||)和DCT中有很大一部分计算资源是浪费了。
贴一张测试图
关键是看了下Matalab file exchange上一个别人写的MFCC的函数,人家的就是先降维的。。。mfcc - File Exchange - MATLAB Centralww2.mathworks.cn
。
。
。
但是我还是不知道为啥13维度的MFCCC是24维的滤波器产生的。。。。。
(已经搞懂,贴一下楼下 @王赟 Maigo 的热门评论)
舍弃下标较高的几维,是在 DCT 之后才做的,所以跟只用 13 个滤波器不一样。它相当于是对「24 个滤波器内的对数能量」这个信号做了个低通滤波。舍弃下标较高的几维,是在 DCT 之后才做的,所以跟只用 13 个滤波器不一样。它相当于是对「24 个滤波器内的对数能量」这个信号做了个低通滤波。
librosa能量_librosa中mfcc函数的一点小问题相关推荐
- librosa能量_语音MFCC提取:librosa amp;amp; python_speech_feature(2019.12)
最近在阅读语音方向的论文,其中有个被提及很多的语音信号特征MFCC(Mel-Frequency Cepstral Coefficients),找到了基于python的语音库librosa(versio ...
- librosa能量_librosa与python_speech_features
在语音识别领域,比较常用的两个模块就是librosa和python_speech_features了. 最近也是在做音乐方向的项目,借此做一下笔记,并记录一些两者的差别.下面是两模块的官方文档 Lib ...
- librosa能量_librosa语音信号处理
librosa是一个非常强大的python语音信号处理的第三方库,本文参考的是librosa的官方文档,本文主要总结了一些重要,对我来说非常常用的功能.学会librosa后再也不用用python去实现 ...
- librosa能量_librosa能量_librosa与python_speech_features
在语音识别领域,比较常用的两个模块就是librosa和python_speech_features了. 最近也是在做音乐方向的项目,借此做一下笔记,并记录一些两者的差别.下面是两模块的官方文档LibR ...
- linux pause函数的一点小探索
2019独角兽企业重金招聘Python工程师标准>>> 之前有人问我一个问题,如果做一个处理某种类型的事情的东西,让它长期运行不退出,应该怎么做?(这不就是任务队列处理器么) 不管三 ...
- 关于preg_match() / preg_replace()函数的一点小说明
int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $ ...
- notion函数_【notion】关于进度管理-时间函数的一点小心得
大家好,作为b站深海潜水选手近期入了notion这个丝滑般触感的软件,也看了几个b站里notion大佬的视频,结合了自己的需要把workspace整理了一下. 具体如何建立属于自己的workspace ...
- c++中文件应用的一点小变化
留给自己看看,我的博客,我的成长-- #include "fstream" //#define fin cin //#define fout cout using namespac ...
- Sqlserver中DATEPART() 函数
在Sqlserver数据库中,DATEPART() 函数用于返回日期/时间的单独部分,比如年.月.日.小时.分钟等等.DatePart()函数的语法为: DATEPART(datepart,date) ...
最新文章
- 2015中学计算机考试题,2017年初中信息技术考试试题及答案
- 【Android Gradle 插件】ProductFlavor 配置 ( applicationId 配置 | SdkVersion 相关配置 | version 应用版本配置 )
- linux自动删除30天前的日志文件
- 前端基础(一):js数据类型
- BUG总结——记一次sql查询未按照想要的次序返回
- valgrind 常见错误提示信息
- 申通快递机器人上岗_申通快速分拣机器人未来有70%人会失业
- c语言输出最大素数,for语句计算输出10000以内最大素数怎么搞最简单??各位大神们...
- Linux简单死锁程序,Linux 死锁例子
- 最新基于高德地图的android进阶开发(3)GPS地图定位
- linux怎样使用小米线刷工具,在linux上怎么样线刷小米手机
- 用计算机打出的乐谱,怎样在计算机内输入乐谱,并打印
- 北大青鸟c语言课后答案,北大青鸟C语言实现.ppt
- 控制寄存器(CR0,CR1,CR2,CR3)和CR4
- 漫游流量 android,人在国外 怎么设置小米手机国际漫游指定app使用流量?
- (附源码)计算机毕业设计ssm红色景点自驾游网站管理系统
- python小球弹弹弹_python3.6使用tkinter实现弹跳小球游戏
- oracle drop tablespace 恢复杀手锏
- 【原创】解决windows命令行运行程序必须输入.exe后缀的问题
- 本科计算机科学与技术毕业论文题目,(计算机科学与技术本科毕业论文选题.doc...
热门文章
- 【机器学习基础】(一) 爬山算法 ( Hill Climbing )与模拟退火(SA,Simulated Annealing)
- 【深度学习】DeepDream的实现
- 芋道源码的周八(2018.04.01)
- FastReport实现预览
- LTE(4G) - NR(5G) RRC和NAS的区别
- Git教程---Windows安装及命令使用(详细例子)
- 静力触探数据智能预处理(1)
- 11.Flink实时项目之支付宽表
- 积木盒子如何确保投资者安全
- 【转】新手必看-淘宝淘宝店铺宝贝上架时间的技巧