【python】计算mel频率可能比你想象的要复杂一点

news/2024/5/2 11:13:37/文章来源:https://blog.csdn.net/mimiduck/article/details/126628678

Mel计算公式

计算mel频率可以直接套用公式,

公式如下,

m=2595log10(1+f700)m = 2595 log_{10}(1+ \frac{f} {700}) m=2595log10(1+700f)

所以实现上如下

import numpy as np
import librosadef mel_calculate(freq):return 2595 * np.log10(1+freq/700)for f in np.linspace(10,1000,num=10):my_mel = mel_calculate(f)mel = librosa.hz_to_mel(f)print(f"freq {f}, cal:{my_mel}, librosa:{mel}")

为了做结果上的验证,我使用了librosa来核对计算结果。
在这里插入图片描述
但是发现结果居然跟librosa的不一样,这是为什么呢?

查看librosa的官方文档,有关hz_to_mel的使用,其实是有一个参数

在这里插入图片描述
查寻源码发现,只有在htk=True的时候,才使用开头的公式。

下图是hz_to_mel源码部分中htk的判断
hz_to_mel源码部分

那么这个htk是什么含义呢?

什么是htk

在另外一个函数librosa.mel_frequencies的api介绍中,有关于htk的说明

By default, librosa replicates the behavior of the well-established MATLAB Auditory Toolbox of Slaney.
librosa默认使用slaney实现,这是在MATLAB Auditory Toolbox中的实现。
According to this default implementation, the conversion from Hertz to mel is linear below 1 kHz and logarithmic above 1 kHz.
在这种实现下,转换在1千赫以下是线性的,在1千赫以上是对数的
Another available implementation replicates the Hidden Markov Toolkit (HTK) :
另外一种实现来源Hidden Markov Toolkit ,即HTK

然后针对slaney和HTK,这里信号给了两个参考引用连接

Slaney, M. Auditory Toolbox: A MATLAB Toolbox for Auditory Modeling Work. Technical Report, version 2, Interval Research Corporation, 1998.
Young, S., Evermann, G., Gales, M., Hain, T., Kershaw, D., Liu, X., Moore, G., Odell, J., Ollason, D., Povey, D., Valtchev, V., & Woodland, P. The HTK book, version 3.4. Cambridge University, March 2009.

基本都是20年前的东西了。 但是相比而言,slaney是比HTK稍微新一些的了。

翻阅了一些材料,HTK是针对隐马尔可夫框架做的一个工具包,它有一个在线的htkbook 大部分的介绍也是基于ASR的。

还有一个是Auditory Toolbox,它里面应该就对应着Slaney的实现吧。(没有具体研究)

所以回到开头,如果要匹配到公式实现,所以在参数中需要指定htk=True。即mel = librosa.hz_to_mel(f,htk=True)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_3849.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

猿创征文|小而巧的API文档生成工具之smart-doc

文章目录smart-doc介绍smart-doc特性smart-doc的最佳搭档谁在使用smart-docsmart-doc的优缺点smart-doc和swagger区别比较smart-doc的使用姿势姿势一姿势二姿势三(公司内部推荐使用)总结smart-doc介绍 一个 java restful api 文档生成工具,不…

为了进大厂!吃透了各大厂最新 3000+Java 面试题,啃完面试肯定妥了!

在很多企业,都有 KPI 考核,然后在此基础上还会弄个“末位淘汰”( 或者叫“人员优化”)。互联网大厂残酷现状在此,无法避免,为了助力程序员朋友们跳槽面试、升职加薪、职业困境,提高自己的技术,逃脱掉“人员…

【翻译】A Closed-form Solution to Universal Style Transfer

通用风格迁移的闭式解决方案 文章目录Abstract1. Introduction2. Related Work3. 动机4. Method5. Results5.1. 定性结果5.2. 定量结果5.3. 更多结果5.4. 限制条件6. 结论Abstract 通用风格转换试图明确地将特征空间的损失降到最低,因此它不需要对任何预先定义的风…

牛视源码定制,抖音矩阵系统,别和谐啊、、、

抖音SEO内容如何制作? 现在网上有很多这种关于自己行业的一些数据分析的一些文章,大家可以去看一下。 所以看到这里,我们把做好抖音SEO需要的步骤其实也就四步,但是过程是需要不断的测试和优化。 四、SEO如何优化? …

配置本地Maven仓库——IDEA配置本地Maven源

Maven基础配置 现在大多数都是使用maven管理项目所需的资源文件,可是因为maven的远程仓库多数都很难下载,所以我们可以通过配置国内镜像,配置本地maven源。 1、下载maven maven下载链接 2、maven下载后是一个压缩包,直接解压即可…

利用HFSS-API设计指数渐变传输线

学个Antenna是以天线仿真和调试为主,理论原理为辅的干货天线技术专栏,包括天线入门知识以及各类天线的原理简介、仿真软件建模、设计、调试过程及思路。如有想看到的内容或技术问题,可以在文尾写下留言。 ​摘要: 上节学个Antenna…

纵横网络靶场 刷题记录

目录 Modbus协议 MMS协议分析 大工UDP协议 工控蜜罐日志分析 隐信道数据安全分析 工控安全取证 隐藏的黑客 Modbus协议 黑客通过外网进入一家工厂的控制网络,之后对工控网络中的操作员站系统进行了攻击,最终通过工控协议破坏了正常的业务。我们得…

Linux学习笔记

Linux安装在VM上 直接安装即可,或者打开VMX文件,挂载到VM上 Linux的目录结构 /代表根目录。~不同的用户,代表的目录不同。 超级管理员用户:root,终端中显示~,表示/root目录 普通用户:在hom…

手写一个泛型双向链表

前言 在当前大环境的背景下面试不问点算法都不算个合格的面试了(卷),而与算法紧密相关的数据结构也是经常问到的,像集合、链表、树、图、栈、堆、队列、矩阵 等等等等。 是不是感觉难度如下: 集合:有手就…

分布式缓存Hazelcast的部署及与SpringBoot整合使用

目录一、简介二、安装2.1 使用Docker形式部署2.2 客户端命令行2.3 Web管理页面三、与SpringBoot项目整合3.1 pom依赖3.2 配置类3.3 使用方式一、简介 官方文档:https://docs.hazelcast.com/hazelcast/latest/clients/java Github地址:https://github.com/hazelcast…

《MeInGame: Create a Game Character Face from a Single Portrait 》论文解读

一:论文干了件什么事 从单张图片生成一个游戏中的虚拟形象,且,论文的方法对光照强度,光照阴影遮挡等具有很好的鲁棒性,可以忠实还原肤色、妆容和皱纹等个性化细节。 摘要: 近年来,基于深度学习…

使用iptables动态映射Docker容器端口

0x0. 安装telnet telnet介绍:https://zh.wikipedia.org/wiki/Telnet 本文用于测试指定端口是否开放,命令如下: telnet [ip] [port]参数解释: ip:ip地址port:端口 如果指定端口开放则结果如下&#xff1a…

Libra论文阅读笔记-A unified congestion control framework for diverse application

目录一、Overview二、问题背景三、Libra方案overview四、Libra方案设计五、RL-based CCA算法总结论文题目:《A unified congestion control framework for diverse application preferences and network conditions》 CoNEXT’21 一、Overview 目前的拥塞控制算法(…

Python代码优化工具——memory_profiler

Python代码优化工具——memory_profiler一、工具介绍二、安装三、分析结果注解四、使用1、使用python命令进行分析(1)使用姿势1(2)示例1(3)该姿势的利弊1(4)使用姿势2(5&…

Python 程序员过中秋

Python 程序员过中秋 又是一年中秋至-----花好月圆夜,佳文当共鉴。Python PyQt5制作音乐播放界面 CSDN官方活动征文入口 文章目录1. 引言1.1 编写目的1.2 术语1.3 项目开发环境2. 业务概述3.PyQt5简单介绍3.1 手机上的Qt无处不在3.2 惊人的图形能力和性能3.3 Qt 5…

多线程编程(二):List组装

在日常工作中,难免遇到在循环体中组装List的场景,一般来说,不考虑多线程的话,实现起来非常简单。 比如,拟定一个场景,给定0-9999,共10000个数字,组装2个列表:奇数列表、…

Windows与网络基础-7-windows基本命令-目录文件操作

Windows基础命令 目录 一、目录和文件的应用操作 1.1 cd命令 1.2 dir命令 1.3 md或mkdir 1.4rd或rmdir 1.5 move 1.6 copy 1.7 Xcopy 1.8 Del或rease 目标: 掌握windwos系统文件及目录操作的一些命令 掌握windwos网络相关的命令 Window输入命令&#xff…

odoo15 联系人只看自己的设置注意点

今天设置crm模块权限时,联系人单加一个权限,不起作用 经反复设置,最后发现,最后一条无论如何设,不起作用。 class Partner(models.Model):_description = Contact_inherit = [format.address.mixin, avatar.mixin]_name = "res.partner"_order = "displa…

python神经网络编程 豆瓣,用python构建神经网络

python深度学习框架学哪个 Python深度学习生态系统在这几年中的演变实属惊艳。pylearn2,已经不再被积极地开发或者维护,大量的深度学习库开始接替它的位置。这些库每一个都各有千秋。 我们已经在indico的产品或者开发中使用了以下列表中的大部分的技术…

Django-(2)

今日内容概览 静态文件及相关配置请求方法request对象方法pycharm连接MySQLDjango谅解MySQLDjango ormorm语法orm外键关联 静态文件及相关配置 静态文件:html页面上使用的,不会进程改变的资源 第三方框架文件css文件js文件图片文件 针对静态文件资源…