librosa能量_librosa与python_speech_features

在语音识别领域,比较常用的两个模块就是librosa和python_speech_features了。

最近也是在做音乐方向的项目,借此做一下笔记,并记录一些两者的差别。下面是两模块的官方文档

LibROSA - librosa 0.6.3 documentation​librosa.github.ioWelcome to python_speech_features’s documentation!​python-speech-features.readthedocs.io

直接对比两文档就可以看出librosa功能十分强大,涉及到了音频的特征提取、谱图分解、谱图显示、顺序建模、创建音频等功能,而python_speech_features只涉及了音频特征提取。就特征提取的实现方法和种类来看,两者也有所不同。

python_speech_features的特征

支持的特征:

  • python_speech_features.mfcc() - 梅尔倒谱系数
  • python_speech_features.fbank() - 滤波器组能量
  • python_speech_features.logfbank() - 对数滤波器组能量
  • python_speech_features.ssc() - 子带频谱质心特征

提取mfcc、logfbank特征的方法

from python_speech_features import mfcc
from python_speech_features import logfbank
import scipy.io.wavfile as wav(rate,sig) = wav.read("file.wav")  # 返回信号的采样率以及信号数组ndarray
mfcc_feat = mfcc(sig,rate)  # 返回一个二维ndarray数组
fbank_feat = logfbank(sig,rate) # 返回一个二维ndarray数组print(fbank_feat[1:3,:])

python_speech_features的比较好用的地方就是自带预加重参数,只需要设定preemph的值,就可以对语音信号进行预加重,增强高频信号。

python_speech_features模块提供的函数

python_speech_features.base.mfcc(signal, samplerate=16000, winlen=0.025, winstep=0.01, numcep=13, nfilt=26, nfft=512, lowfreq=0, highfreq=None, preemph=0.97, ceplifter=22, appendEnergy=True, winfunc=<function <lambda>>)

计算一个音频信号的MFCC特征

返回: 一个大小为numcep的numpy数组,包含着特征,每一行都包含一个特征向量。

参数:

signal - 需要用来计算特征的音频信号,应该是一个N*1的数组

samplerate - 我们用来工作的信号的采样率

winlen - 分析窗口的长度,按秒计,默认0.025s(25ms)

winstep - 连续窗口之间的步长,按秒计,默认0.01s(10ms)

numcep - 倒频谱返回的数量,默认13

nfilt - 滤波器组的滤波器数量,默认26

nfft - FFT的大小,默认512

lowfreq - 梅尔滤波器的最低边缘,单位赫兹,默认为0

highfreq - 梅尔滤波器的最高边缘,单位赫兹,默认为采样率/2

preemph - 应用预加重过滤器和预加重过滤器的系数,0表示没有过滤器,默认0.97

ceplifter - 将升降器应用于最终的倒谱系数。 0没有升降机。默认值为22。

appendEnergy - 如果是true,则将第0个倒谱系数替换为总帧能量的对数。

winfunc - 分析窗口应用于每个框架。 默认情况下不应用任何窗口。 你可以在这里使用numpy窗口函数 例如:winfunc=numpy.hamming

python_speech_features.base.fbank(signal, samplerate=16000, winlen=0.025, winstep=0.01, nfilt=26, nfft=512, lowfreq=0, highfreq=None, preemph=0.97, winfunc=<function <lambda>>)

从一个音频信号中计算梅尔滤波器能量特征

返回:2个值。第一个是一个包含着特征的大小为nfilt的numpy数组,每一行都有一个特征向量。第二个返回值是每一帧的能量

python_speech_features.base.logfbank(signal, samplerate=16000, winlen=0.025, winstep=0.01, nfilt=26, nfft=512, lowfreq=0, highfreq=None, preemph=0.97)

从一个音频信号中计算梅尔滤波器能量特征的对数

返回: 一个包含特征的大小为nfilt的numpy数组,每一行都有一个特征向量

python_speech_features.base.ssc(signal, samplerate=16000, winlen=0.025, winstep=0.01, nfilt=26, nfft=512, lowfreq=0, highfreq=None, preemph=0.97, winfunc=<function <lambda>>)

从一个音频信号中计算子带频谱质心特征

返回:一个包含特征的大小为nfilt的numpy数组,每一行都有一个特征向量

librosa的特征提取

librosa的可以提取的特征种类十分丰富

a2b54c25c4e8119d7210e76112ee2114.png

篇幅原因不多介绍

librosa.features.mfcc(y=None,sr=22050,S=None,n_mfcc=20,dct_type=2,norm='ortho',**kwargs)

y, sr = librosa.load('test.wav',offset=30, duration=5)
librosa.feature.mfcc(y=y, sr=sr, n_mfcc=40) # 返回shape=(n_mfcc, timestep)的二维矩阵

librosa.feature.spectral_centroid(y=None,sr=22050,S=None,n_fft=2048,hop_length=512,freq=None)
计算频谱质心

>>> y, sr = librosa.load('test.wav')
>>> cent = librosa.feature.spectral_centroid(y=y, sr=sr)
>>> cent
array([[ 4382.894,   626.588, ...,  5037.07 ,  5413.398]])

蓝调音乐的频谱质心在频谱偏中心的位置,金属音乐在靠后的位置

librosa.feature.zero_crossing_rate(y,frame_length=2048,hop_length=512,center=True,**kwargs)

计算过零率

>>> y, sr = librosa.load('test.wav')
>>> librosa.feature.zero_crossing_rate(y)
array([[ 0.134,  0.139, ...,  0.387,  0.322]])

相对于python_speech_features来说,librosa没有预加重的处理。或者说librosa提供自定义预加重功能。

预加重的一般传递函数为

差分方程实现预加重的方程为

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

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

相关文章

java Unicode转码

1 //中文转UNICODE2 public static String chinaToUnicode(String str) {3 String result "";4 for (int i 0; i < str.length(); i) {5 int chr1 (char) str.charAt(i);6 if (chr1 > 19968 && ch…

oracle-备份工具exp-imp

虽然是按照用户的方式导出的&#xff0c;但导入之前&#xff0c;还是必须要有相同的用户存在&#xff0c;删除用户以后&#xff0c;是无法进行导入的 --重新创建回zlm用户 SQL> create user zlm identified by zlm; 尽管zlm用户的默认表空间是USERS&#xff0c;但是用imp导入…

继承String?

不能继承&#xff0c;因为 public final class String extends Objectimplements Serializable, Comparable<String>, CharSequence final修饰的类是不能被继承的转载于:https://www.cnblogs.com/crane-practice/p/3666006.html

python中字典数据的特点_Python数据类型(字典)

Python 字典(Dictionary) 字典是另一种可变容器模型&#xff0c;且可存储任意类型对象。 字典的每个键值(key>value)对用冒号(:)分割&#xff0c;每个对之间用逗号(,)分割&#xff0c;整个字典包括在花括号({})中 ,格式如下所示&#xff1a; d {key1: value1, key2: value2}…

第5章 Python 数字图像处理(DIP) - 图像复原与重建10 - 空间滤波 - 统计排序滤波器 - 中值、最大值、最小值、中点、修正阿尔法均值滤波器

标题统计排序滤波器中值、最大值、最小值、中点 滤波器修正阿尔法均值滤波器统计排序滤波器 中值、最大值、最小值、中点 滤波器 f^(x,y)median{g(r,c)}(5.27)\hat{f}(x, y) \text{median} \{g(r,c)\} \tag{5.27}f^​(x,y)median{g(r,c)}(5.27) f^(x,y))max{g(r,c)}(5.28)\ha…

如何设置坐标原点值_氨气检测仪电化学原理及报警值如何设置

氨气体检测仪检定规程&#xff1a;一般氨气体检测仪检定规程主要是针对技术参数设定的一些标准&#xff0c;具体包含有规程的名称和范围、仪器示值误差、充分性标准差、响应时间、稳定性、报警功能、流量控制器、检定项目表、检定操作有数值误差、重复性、响应时间、稳定性等。…

统计信息及相关说明

统计信息&#xff1a;0 recursive calls20434 db block gets 317970511 consistent gets 0 physical reads 3759764 redo size 382 bytes sent via SQL*Net to client 1061 bytes received via SQL*Net from client 3 SQL*Ne…

Android横竖屏切换的生命周期

关于Android手机横竖屏切换时Activity的生命周期问题&#xff0c;网上有很多相似的文章&#xff0c;大多数都是说明在竖屏切换横屏时Activity会重启一次&#xff0c;而在横屏切换竖屏时Activity会重启两次。 我本身不太理解这样设计的意义&#xff0c;并且觉得新版本会解决这个…

python 随机字符串_python生成随机数、随机字符串

python生成随机数、随机字符串 import random import string # 随机整数&#xff1a; print random.randint(1,50) # 随机选取0到100间的偶数&#xff1a; print random.randrange(0, 101, 2) # 随机浮点数&#xff1a; print random.random() print random.uniform(1, 10) # 随…

ACM 会场安排问题

会场安排问题 时间限制&#xff1a;3000 ms | 内存限制&#xff1a;65535 KB难度&#xff1a;4描述学校的小礼堂每天都会有许多活动&#xff0c;有时间这些活动的计划时间会发生冲突&#xff0c;需要选择出一些活动进行举办。小刘的工作就是安排学校小礼堂的活动&#xff0c;…

第5章 Python 数字图像处理(DIP) - 图像复原与重建11 - 空间滤波 - 自适应滤波器 - 自适应局部降噪、自适应中值滤波器

标题自适应滤波器自适应局部降噪滤波器自适应中值滤波器自适应滤波器 自适应局部降噪滤波器 均值是计算平均值的区域上的平均灰度&#xff0c;方差是该区域上的图像对比度 g(x,y)g(x, y)g(x,y)噪声图像在(x,y)(x, y)(x,y)处的值 ση2\sigma_{\eta}^2ση2​ 为噪声的方差&am…

关闭防火墙_从零开始学Linux运维|09.关闭防火墙和SElinux

firewalld是centos7默认的防火墙安全增强型 Linux(Security-Enhanced Linux)简称 SELinux初学者建议先关闭,等熟悉了之后再来使用前期联系中的好多错误都有可能是由于没有关闭或者正确配置上面两项造成的1.临时关闭centos7下的防火墙firewalld一行命令就能够关闭firewalld--&qu…

Discuz!NT - 在线显示列表 游客 bug 修复

引发bug的条件&#xff1a;当你修改了系统组里面的[游客]组 的名字后&#xff01;&#xff01; 你会发现首页上底部的在线显示列表里始终都是显示"游客"字样而非你改过得字样&#xff01;如图 至此你需要运行一个t-sql脚本去修复这个bug&#xff01;&#xff08;但是…

Linux查看物理CPU个数、核数、逻辑CPU个数

# 总核数 物理CPU个数 X 每颗物理CPU的核数 # 总逻辑CPU数 物理CPU个数 X 每颗物理CPU的核数 X 超线程数# 查看物理CPU个数 cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l# 查看每个物理CPU中core的个数(即核数) cat /proc/cpuinfo| grep "cpu …

基于空间方法的图神经网络模型_用于时空图建模的图神经网络模型 Graph WaveNet | 课程上新...

课程概要本课程来自集智学园图网络论文解读系列活动。是对论文《Graph WaveNet for Deep Spatial-Temporal Graph Modeling》的解读。时空图建模 (Spatial-temporal graph modeling)是分析系统中组成部分的空间维相关性和时间维趋势的重要手段。已有算法大多基于已知的固定的图…

dataframe类型数据的遍历_Python零基础入门到爬虫再到数据分析,这些你都是要学会的...

1.必须知道的两组Python基础术语A.变量和赋值Python可以直接定义变量名字并进行赋值的&#xff0c;例如我们写出a 4时&#xff0c;Python解释器干了两件事情&#xff1a;在内存中创建了一个值为4的整型数据在内存中创建了一个名为a的变量&#xff0c;并把它指向4用一张示意图表…

第5章 Python 数字图像处理(DIP) - 图像复原与重建12 - 空间滤波 - 使用频率域滤波降低周期噪声 - 陷波滤波、最优陷波滤波

标题使用频率域滤波降低周期噪声陷波滤波深入介绍最优陷波滤波本章陷波滤波器有部分得出的结果不佳&#xff0c;如果有更好的解决方案&#xff0c;请赐教&#xff0c;不胜感激。 使用频率域滤波降低周期噪声 陷波滤波深入介绍 零相移滤波器必须关于原点(频率矩形中心)对称&a…

Android之Menu动态改变文字

Menu创建&#xff1a; Override//这里遇到一个问题add的是MenuItem的idpublic boolean onCreateOptionsMenu(Menu menu) {// TODO Auto-generated method stubmenu.add(0,1023, 0, "一");menu.add(0,1022, 1, "开启线程");Log.e("onCreateOptionsMenu…

iOS 开发周报:Apple 发布 iPhone 7 / 7 Plus 、Apple Watch 2 等新品

新闻\\Apple 发布 iPhone 7 / 7 Plus 、Apple Watch 2 等新品&#xff1a;Apple 正式发布了 iPhone 7 / 7 Plus、Apple Watch 2 新品&#xff0c;带来 AirPods 无线耳机&#xff0c;并把马里奥带进了 iOS。iPhone 7 新增亮黑色&#xff0c;移除3.5mm 耳机孔&#xff0c;支持 IP…

python写界面c这算法_插入算法分别从C,java,python三种语言进行书写

真正学懂计算机的人&#xff08;不只是“编程匠”&#xff09;都对数学有相当的造诣&#xff0c;既能用科学家的严谨思维来求证&#xff0c;也能用工程师的务实手段来解决问题——而这种思维和手段的最佳演绎就是“算法”。 作为一个初级编程人员或者说是一个程序员&#xff0c…