在语音识别领域,比较常用的两个模块就是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=>)

计算一个音频信号的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=>)

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

返回: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=>)

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

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

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

篇幅原因不多介绍

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提供自定义预加重功能。

预加重的一般传递函数为

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

librosa能量_librosa能量_librosa与python_speech_features相关推荐

  1. 【数字信号处理】相关函数 ( 能量信号 | 能量信号的互相关函数 | 能量信号的自相关函数 )

    文章目录 一.互相关函数 二.自相关函数 信号根据 " 能量 " 可以分为 " 能量信号 " 和 " 功率信号 " ; 信号能量定义 : 整 ...

  2. 几种能量及能量平衡方程

    http://blog.sina.com.cn/s/blog_642b4b710100oeop.html (1)虚功 在力学领域中,功是力和位移.虚功对应的有两种:虚位移和虚力.虚功和实际做的功之间差 ...

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

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

  4. 基于短时能量的语音端点检测算法

    1 带噪语音信号 日常生活中噪声无处不在,说话声.风声.雨声.打字声.机器运行的声音等都可定义为噪声.噪声的种类也很多,每种都有其各自的特点,对有用信息的影响程度也不同.噪音主要包括稳定噪音和非稳定噪 ...

  5. 【数字信号处理】相关函数 ( 相关函数性质 | 相关函数最大值 | 自相关函数最大值 | 互相关函数最大值 | 能量有限信号的相关函数在 m 趋近无穷时为 0 )

    文章目录 一.相关函数最大值 1.自相关函数最大值 2.互相关函数最大值 二.能量有限信号的相关函数在 m 趋近无穷时为 0 一.相关函数最大值 1.自相关函数最大值 自相关函数 在 自变量 m=0m ...

  6. 用时间分类能量再用能量分类时间

    中子:(过去,未来)---m*n*k---(1,0)(0,1) 以中子为载体去分类时间,时间将破缺成过去和未来. 时间:(中子,质子电子中微子)---m*n*k---(1,0)(0,1) 以时间为载体 ...

  7. 能量分析攻击day01

    引言 1.1密码学与密码设备 密码设备是能够实现密码算法并存储秘钥的电子设备         密码设备的安全性不应依赖于实现的保密性 1.2密码设备攻击 被动攻击:被动攻击中,密码设备大多数情况下都会 ...

  8. 【动态规划】矩阵链相乘 (ssl 1596)/能量项链 (ssl 2006)

    矩阵链相乘{\color{Cyan} 矩阵链相乘 }矩阵链相乘 Description Input n表示矩阵的个数(<=100) n+1个数,表示矩阵(<=100) Output 最小的 ...

  9. 【BZOJ1976】[BeiJing2010组队]能量魔方 Cube 最小割

    [BZOJ1976][BeiJing2010组队]能量魔方 Cube Description 小C 有一个能量魔方,这个魔方可神奇了,只要按照特定方式,放入不同的 能量水晶,就可以产生巨大的能量. 能 ...

最新文章

  1. android 计算器显示不全,Android5.0 计算器计算结果不准确和结果末尾的多余的‘0’没有省略的解决方法...
  2. linux计算机基础
  3. User Mode Driver Management介绍(一)
  4. ASP.NET中的FILE对象总结
  5. B站推出“锤人类”作品试运行管理办法 将减少推荐争议视频
  6. 千月影视双端源码开源版_最新支持双端神器更新,属实有点牛逼!
  7. python的lambda函数错误的是_Python 中的 AWS Lambda 函数错误 - AWS Lambda
  8. mysql characterencoding 枚举值_MySQL 事务锁基础部分详解
  9. X3平台制程及工卡开立设计说明
  10. Nginx - 原理机制
  11. 【多多情报通】拼多多个人店铺怎么升级为企业店铺?怎么转让?
  12. 怎么解除计算机管理员的身份,怎么取消管理员权限(怎么取消管理员取得所有权)...
  13. 单片机外围电路设计之一:电阻
  14. Deployer php自动部署,Deployer 自动部署
  15. 分享几个实用的Chrome扩展程序
  16. 一个虎扑社区数据分析实战
  17. electron静默打印v_13,webview方式的相关配置
  18. Jquery datatable 动态隐藏列(根据有无值)
  19. 一个html页面请求多个接口,前端页面,一个页面几个接口请求比较合理?
  20. 基于Basys2的分秒计时器的设计

热门文章

  1. 迅歌点歌系统服务器过期,周杰伦凌晨发新歌 又把服务器搞崩了!
  2. GXG全渠道转型 信赖百胜软件
  3. 在js中用正则匹配中文
  4. 猿创征文|运维工具介绍
  5. 如何判断你的电脑是否“中毒”
  6. 每天学点英语语法-重头开始 1
  7. NVIDIA Jetson ROSbot等ROS近期事件
  8. 去水印解析API接口分享
  9. 使用Responder获取ntlmv2 hash
  10. (15.1.15) 工具型产品如何建立自己的商业化模式?