(图摄于阿姆斯特丹梵高博物馆)

在重读《解析深度学习:语音识别实践》中,发现有段文字跟我预想的并不太一样:

在我的印象中,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 Central​ww2.mathworks.cn

但是我还是不知道为啥13维度的MFCCC是24维的滤波器产生的。。。。。

(已经搞懂,贴一下楼下 @王赟 Maigo 的热门评论)

舍弃下标较高的几维,是在 DCT 之后才做的,所以跟只用 13 个滤波器不一样。它相当于是对「24 个滤波器内的对数能量」这个信号做了个低通滤波。舍弃下标较高的几维,是在 DCT 之后才做的,所以跟只用 13 个滤波器不一样。它相当于是对「24 个滤波器内的对数能量」这个信号做了个低通滤波。

librosa能量_librosa中mfcc函数的一点小问题相关推荐

  1. librosa能量_语音MFCC提取:librosa amp;amp; python_speech_feature(2019.12)

    最近在阅读语音方向的论文,其中有个被提及很多的语音信号特征MFCC(Mel-Frequency Cepstral Coefficients),找到了基于python的语音库librosa(versio ...

  2. librosa能量_librosa与python_speech_features

    在语音识别领域,比较常用的两个模块就是librosa和python_speech_features了. 最近也是在做音乐方向的项目,借此做一下笔记,并记录一些两者的差别.下面是两模块的官方文档 Lib ...

  3. librosa能量_librosa语音信号处理

    librosa是一个非常强大的python语音信号处理的第三方库,本文参考的是librosa的官方文档,本文主要总结了一些重要,对我来说非常常用的功能.学会librosa后再也不用用python去实现 ...

  4. librosa能量_librosa能量_librosa与python_speech_features

    在语音识别领域,比较常用的两个模块就是librosa和python_speech_features了. 最近也是在做音乐方向的项目,借此做一下笔记,并记录一些两者的差别.下面是两模块的官方文档LibR ...

  5. linux pause函数的一点小探索

    2019独角兽企业重金招聘Python工程师标准>>> 之前有人问我一个问题,如果做一个处理某种类型的事情的东西,让它长期运行不退出,应该怎么做?(这不就是任务队列处理器么) 不管三 ...

  6. 关于preg_match() / preg_replace()函数的一点小说明

    int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $ ...

  7. notion函数_【notion】关于进度管理-时间函数的一点小心得

    大家好,作为b站深海潜水选手近期入了notion这个丝滑般触感的软件,也看了几个b站里notion大佬的视频,结合了自己的需要把workspace整理了一下. 具体如何建立属于自己的workspace ...

  8. c++中文件应用的一点小变化

    留给自己看看,我的博客,我的成长-- #include "fstream" //#define fin cin //#define fout cout using namespac ...

  9. Sqlserver中DATEPART() 函数

    在Sqlserver数据库中,DATEPART() 函数用于返回日期/时间的单独部分,比如年.月.日.小时.分钟等等.DatePart()函数的语法为: DATEPART(datepart,date) ...

最新文章

  1. 2015中学计算机考试题,2017年初中信息技术考试试题及答案
  2. 【Android Gradle 插件】ProductFlavor 配置 ( applicationId 配置 | SdkVersion 相关配置 | version 应用版本配置 )
  3. linux自动删除30天前的日志文件
  4. 前端基础(一):js数据类型
  5. BUG总结——记一次sql查询未按照想要的次序返回
  6. valgrind 常见错误提示信息
  7. 申通快递机器人上岗_申通快速分拣机器人未来有70%人会失业
  8. c语言输出最大素数,for语句计算输出10000以内最大素数怎么搞最简单??各位大神们...
  9. Linux简单死锁程序,Linux 死锁例子
  10. 最新基于高德地图的android进阶开发(3)GPS地图定位
  11. linux怎样使用小米线刷工具,在linux上怎么样线刷小米手机
  12. 用计算机打出的乐谱,怎样在计算机内输入乐谱,并打印
  13. 北大青鸟c语言课后答案,北大青鸟C语言实现.ppt
  14. 控制寄存器(CR0,CR1,CR2,CR3)和CR4
  15. 漫游流量 android,人在国外 怎么设置小米手机国际漫游指定app使用流量?
  16. (附源码)计算机毕业设计ssm红色景点自驾游网站管理系统
  17. python小球弹弹弹_python3.6使用tkinter实现弹跳小球游戏
  18. oracle drop tablespace 恢复杀手锏
  19. 【原创】解决windows命令行运行程序必须输入.exe后缀的问题
  20. 本科计算机科学与技术毕业论文题目,(计算机科学与技术本科毕业论文选题.doc...

热门文章

  1. 【机器学习基础】(一) 爬山算法 ( Hill Climbing )与模拟退火(SA,Simulated Annealing)
  2. 【深度学习】DeepDream的实现
  3. 芋道源码的周八(2018.04.01)
  4. FastReport实现预览
  5. LTE(4G) - NR(5G) RRC和NAS的区别
  6. Git教程---Windows安装及命令使用(详细例子)
  7. 静力触探数据智能预处理(1)
  8. 11.Flink实时项目之支付宽表
  9. 积木盒子如何确保投资者安全
  10. 【转】新手必看-淘宝淘宝店铺宝贝上架时间的技巧