gammatone滤波器 matlab,使用Python进行音频处理和机器学习的简介

从高层次上讲,任何机器学习问题都可以分为三种任务:数据任务(数据收集,数据清理和特征形成),训练(使用数据特征构建机器学习模型)和评估(评估模型) 。 被定义为“观察到的现象的各个可测量属性或特征”的特征非常有用,因为它们可帮助机器理解数据并将其分类或预测值。

不同的数据类型使用非常不同的处理技术。 以图像作为数据类型的示例为例:人眼看起来就像一件事,但是在使用不同的滤镜(取决于应用程序)将其转换为从图像的像素值派生的数值特征后,机器对图像的看法有所不同。

Word2vec非常适合处理文本正文。 它用数字向量表示单词,两个单词向量之间的距离决定了单词的相似程度。 如果我们尝试将Word2vec应用于数值数据,则结果可能没有意义。

因此,有一些特定于音频数据类型的处理技术可以很好地与音频配合使用。

什么是音频信号?

音频信号是在可听频率范围内振动的信号。 当有人讲话时,它会产生气压信号。 耳朵吸收了这些气压差并与大脑沟通。 这就是大脑如何帮助一个人识别信号是语音并理解别人在说什么的方式。

有很多执行音频处理的MATLAB工具,但Python中没有那么多工具。 在介绍一些可用于处理Python中音频信号的工具之前,让我们研究适用于音频处理和机器学习的一些音频功能。

在语音和音频处理中重要的一些数据特征和转换包括梅尔频率倒谱系数( MFCC ),伽马通频率倒谱系数(GFCC),线性预测倒谱系数(LFCC),树皮频率倒谱系数(BFCC),功率归一化倒频谱系数(PNCC),频谱,倒频谱,频谱图等。

我们可以直接使用其中一些功能,并从其他一些功能(例如频谱)中提取功能,以训练机器学习模型。

什么是频谱和倒频谱?

频谱和倒频谱是音频处理中两个特别重要的功能。

从数学上讲,频谱是信号的傅立叶变换 。 傅立叶变换将时域信号转换为频域。 换句话说,频谱是输入音频的时域信号的频域表示。

倒频谱是通过取频谱的对数幅度,然后进行傅立叶逆变换来形成的。 这导致信号既不在频域中(因为我们进行了傅立叶逆变换),也不在时域中(因为我们在进行傅立叶逆变换之前采用了对数幅度)。 所得信号的域称为频率。

这与听力有什么关系?

关于人类听力的另一个事实是,当声音频率增加到1kHz以上时,我们的耳朵开始对频率的选择性降低。 这与称为Mel滤波器组的东西很好地对应。

使频谱通过梅尔滤波器组,然后取对数幅度和离散余弦变换 (DCT),产生梅尔倒谱。 DCT提取信号的主要信息和峰值。 它还广泛用于JPEG和MPEG压缩中。 峰值是音频信息的要点。 通常,从梅尔倒谱中提取的前13个系数称为MFCC。 它们保存了有关音频的非常有用的信息,并经常用于训练机器学习模型。

受人耳启发的另一个过滤器是Gammatone过滤器库。 该滤波器组用作耳蜗的前端模拟。 因此,它在语音处理中有许多应用,因为它旨在复制我们的聆听方式。

GFCC是通过使光谱通过Gammatone滤波器组,然后进行响度压缩和DCT形成的。 第一个(大约)22个功能部件称为GFCC。 GFCC在语音处理中有许多应用,例如说话人识别。

在音频处理任务(尤其是语音)中有用的其他功能包括LPCC,BFCC,PNCC,以及频谱特征,例如频谱通量,熵,滚降,质心,扩展和能量熵。

建立分类器

作为一项快速实验,让我们尝试使用一个名为pyAudioProcessing的基于Python的开源库,构建一个具有频谱特征和MFCC,GFCC以及MFCC和GFCC组合的分类器 。

首先,我们希望pyAudioProcessing将音频分为三类:语音,音乐或鸟类。

使用一个小的数据集(每个班级有50个样本进行训练)并且没有任何微调,我们可以评估这种分类模型识别音频类别的潜力。

接下来,让我们尝试使用GZTAN音频数据集和音频功能(MFCC和频谱功能)对音乐体裁分类问题进行pyAudioProcessing 。

有些类型的作品表现不错,而另一些则有改进的空间。 可以从此数据中探索的一些事物包括:

数据质量检查:是否需要更多数据?  围绕节拍和音乐音频其他方面的功能  音频以外的功能,例如转录和文本  不同的分类器会更好吗? 已经有关于使用神经网络对音乐流派进行分类的研究。

无论此快速测试的结果如何,很明显,这些功能都可以从信号中获取有用的信息,机器可以使用它们,并且它们构成了可以使用的良好基准。

学到更多

以下是一些有用的资源,可帮助您进行Python音频处理和机器学习的旅程:

pyAudioAnalysis  pyAudioProcessing  功率归一化倒谱系数(PNCC),用于强大的语音识别  LPCC功能  使用MFCC进行语音识别  使用基于块的MFCC功能进行语音/音乐分类  音频信号的音乐流派分类  在Python中读取音频的库: SciPy , pydub , libROSA ,pyAudioAnalysis  获取功能的库:libROSA,pyAudioAnalysis(用于MFCC); pyAudioProcessing(用于MFCC和GFCC)  在音频上使用的基本机器学习模型:sklearn,hmmlearn,pyAudioAnalysis,pyAudioProcessing

本文基于PyBay 2019中Jyotika Singh的演讲`` 使用Python进行音频处理和ML ''。

翻译自: https://opensource.com/article/19/9/audio-processing-machine-learning-python

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值