您当前的位置:首页 > 电脑百科 > 人工智能

机器学习中的音频特征:理解Mel频谱图

时间:2020-08-26 11:05:23  来源:  作者:

机器学习中的音频特征:理解Mel频谱图

 

如果你像我一样,试着理解mel的光谱图并不是一件容易的事。你读了一篇文章,却被引出了另一篇,又一篇,又一篇,没完没了。我希望这篇简短的文章能澄清一些困惑,并从头解释mel的光谱图。

信号

信号是一定量随时间的变化。 对于音频,变化的量是气压。 我们如何以数字方式捕获此信息? 我们可以随时间采集气压样本。 我们采样数据的速率可以变化,但是最常见的是44.1kHz,即每秒44,100个采样。 我们捕获的是信号的波形,可以使用计算机软件对其进行解释,修改和分析。

import librosa
import librosa.display
import matplotlib.pyplot as plty, sr = librosa.load('./example_data/blues.00000.wav')plt.plot(y);
plt.title('Signal');
plt.xlabel('Time (samples)');
plt.ylabel('Amplitude');
机器学习中的音频特征:理解Mel频谱图

 

我们可以使用音频信号的数字表示形式。 欢迎来到信号处理领域! 您可能想知道,我们如何从中提取有用的信息? 看起来像是一团混乱。 这就引出我们的朋友傅里叶,这里是它最熟悉的领域。

傅立叶变换

音频信号由几个单频声波组成。 在一段时间内对信号进行采样时,我们仅捕获得到的幅度。 傅立叶变换是一个数学公式,它使我们可以将信号分解为单个频率和频率幅度。 换句话说,它将信号从时域转换到频域。 结果称为频谱。

这是可能的,因为每个信号都可以分解为一组正弦波和余弦波,它们加起来等于原始信号。 这是一个著名的定理,称为傅立叶定理。

快速傅立叶变换(FFT)是一种可以有效计算傅立叶变换的算法。 它广泛用于信号处理。 我将在示例音频的窗口片段中使用此算法。

import numpy as npn_fft = 2048
ft = np.abs(librosa.stft(y[:n_fft], hop_length = n_fft+1))plt.plot(ft);
plt.title('Spectrum');
plt.xlabel('Frequency Bin');
plt.ylabel('Amplitude');
机器学习中的音频特征:理解Mel频谱图

 

频谱图

快速傅立叶变换是一种功能强大的工具,可让我们分析信号的频率成分,但是如果信号的频率成分随时间变化,该怎么办? 大多数音频信号(例如音乐和语音)就是这种情况。 这些信号称为非周期性信号。 我们需要一种表示这些信号随时间变化的频谱的方法。 您可能会想,"嘿,我们不能通过对信号的多个窗口部分执行FFT来计算多个频谱吗?" 是! 这正是完成的工作,称为短时傅立叶变换。 FFT是在信号的重叠窗口部分上计算的,我们得到了所谓的频谱图。 哇! 需要接受很多东西。这里有很多事情要做。 良好的视觉效果是必须的。

机器学习中的音频特征:理解Mel频谱图

 

您可以将频谱图视为一堆相互堆叠的FFT。 当信号在不同频率下随时间变化时,这是一种直观地表示信号响度或幅度的方法。 计算频谱图时,还有一些其他细节。 y轴转换为对数刻度,颜色尺寸转换为分贝(您可以将其视为振幅的对数刻度)。 这是因为人类只能感知到非常小的集中频率和幅度范围。

spec = np.abs(librosa.stft(y, hop_length=512))
spec = librosa.amplitude_to_db(spec, ref=np.max)librosa.display.specshow(spec, sr=sr, x_axis='time', y_axis='log');
plt.colorbar(format='%+2.0f dB');
plt.title('Spectrogram');
机器学习中的音频特征:理解Mel频谱图

 

仅用几行代码,我们就创建了一个频谱图。 好。 我们对"频谱图"部分有扎实的了解,但对"MEL"则如何。 他是谁?

梅尔(Mel)量表

研究表明,人类不会感知线性范围的频率。 我们在检测低频差异方面要胜于高频。 例如,我们可以轻松分辨出500 Hz和1000 Hz之间的差异,但是即使之间的距离相同,我们也很难分辨出10,000 Hz和10,500 Hz之间的差异。

1937年,Stevens,Volkmann和Newmann提出了一个音高单位,以使相等的音高距离听起来与听众相等。 这称为梅尔音阶。 我们对频率执行数学运算,以将其转换为mel标度。

机器学习中的音频特征:理解Mel频谱图

 

Mel谱图

mel谱图是频率转换为mel标度的谱图。使用Python的librosa音频处理库它只需要几行代码就可以实现。

mel_spect = librosa.feature.melspectrogram(y=y, sr=sr, n_fft=2048, hop_length=1024)
mel_spect = librosa.power_to_db(spect, ref=np.max)librosa.display.specshow(mel_spect, y_axis='mel', fmax=8000, x_axis='time');
plt.title('Mel Spectrogram');
plt.colorbar(format='%+2.0f dB');
机器学习中的音频特征:理解Mel频谱图

 

总而言之

如果你像我一样是信号处理新手的话,这里有很多概念需要了解。然而,如果你继续回顾这篇文章中提出的概念(花足够的时间盯着墙角思考它们),它就会开始有意义了!让我们简要回顾一下我们所做的工作。

我们随时间采集了气压样本,以数字方式表示音频信号

1. 我们使用快速傅里叶变换将音频信号从时域映射到频域,并在音频信号的重叠窗口部分执行此操作。

1. 我们将y轴(频率)转换为对数刻度,将颜色尺寸(幅度)转换为分贝,以形成频谱图。

1. 我们将y轴(频率)映射到mel刻度上以形成mel频谱图。

听起来很简单,对吧? 好吧,虽然不尽然,但是我希望这篇文章能使你了解音频特征的处理和梅尔频谱图的原理。

作者:Leland Roberts

deephub 翻译组



Tags:机器学习   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
基于算法的业务或者说AI的应用在这几年发展得很快。但是,在实际应用的场景中,我们经常会遇到一些非常奇怪的偏差现象。例如,Facebook将黑人标记为灵长类动物、城市图像识别系统...【详细内容】
2021-11-08  Tags: 机器学习  点击:(32)  评论:(0)  加入收藏
这是几位机器学习权威专家汇总的725个机器学习术语表,非常全面了,值得收藏! 英文术语 中文翻译 0-1 Loss Function 0-1损失函数 Accept-Reject Samplin...【详细内容】
2021-10-21  Tags: 机器学习  点击:(43)  评论:(0)  加入收藏
要开始为开源项目做贡献,有一些先决条件:1. 学习一门编程语言:由于在开源贡献中你需要编写代码才能参与开发,你需要学习任意一门编程语言。根据项目的需要,在后期学习另一种语言...【详细内容】
2021-10-20  Tags: 机器学习  点击:(37)  评论:(0)  加入收藏
作者:阿米特·V. 乔希(Ameet V Joshi)来源:华章科技 01 人工智能艾伦·图灵(Alan Turing)对人工智能的定义如下:如果窗帘后面有一台机器,并且有人正在与之互动(无论以何...【详细内容】
2021-09-07  Tags: 机器学习  点击:(74)  评论:(0)  加入收藏
字节跳动基础架构团队基于火山引擎机器学习平台 Clever 及其丰富的行业落地经验,推出开源项目 Klever,以工程化的方式降低智能技术落地门槛,助力企业快速打造智能业务。作者: 陈...【详细内容】
2021-02-19  Tags: 机器学习  点击:(170)  评论:(0)  加入收藏
特征选择是识别和选择与目标变量最相关的输入变量子集的过程。特征选择最简单的情况可能是存在数字输入变量和用于回归预测建模的数字目标的情况。这是因为可以计算出每个输...【详细内容】
2021-01-15  Tags: 机器学习  点击:(117)  评论:(0)  加入收藏
1、集成学习及Boosting算法集成学习属于机器学习,它是一种“训练思路”,并不是某种具体的方法或者算法。集成学习的核心思想是把已有的算法进行结合,从而得到更好的效果。集成...【详细内容】
2020-12-29  Tags: 机器学习  点击:(176)  评论:(0)  加入收藏
“终有一天,人工智能会像我们看待非洲平原上低级生物的化石一样看待我们。在人工智能眼中,人类只是直立行走的猿猴,用着粗糙的语言和简陋的工具,从诞生起就注定会灭绝。”&mdash...【详细内容】
2020-12-17  Tags: 机器学习  点击:(147)  评论:(0)  加入收藏
专注Python、AI、大数据,请关注公众号七步编程!人工智能方向的项目,和数据可视化是紧密相连的。模型训练过程中梯度下降过程是什么样的?损失函数的走向如何?训练模型的准确度怎么...【详细内容】
2020-10-15  Tags: 机器学习  点击:(355)  评论:(0)  加入收藏
在数据领域,很多人都在说机器学习,但是只有很少的人能说清楚怎么回事。网上关于机器学习的文章,大多都是充斥各种定理的厚重学术三部曲(我搞定半个定理都够呛),或是关于人工智能...【详细内容】
2020-09-25  Tags: 机器学习  点击:(111)  评论:(0)  加入收藏
▌简易百科推荐
作为数据科学家或机器学习从业者,将可解释性集成到机器学习模型中可以帮助决策者和其他利益相关者有更多的可见性并可以让他们理解模型输出决策的解释。在本文中,我将介绍两个...【详细内容】
2021-12-17  deephub    Tags:AI   点击:(15)  评论:(0)  加入收藏
基于算法的业务或者说AI的应用在这几年发展得很快。但是,在实际应用的场景中,我们经常会遇到一些非常奇怪的偏差现象。例如,Facebook将黑人标记为灵长类动物、城市图像识别系统...【详细内容】
2021-11-08  数据学习DataLearner    Tags:机器学习   点击:(32)  评论:(0)  加入收藏
11月2日召开的世界顶尖科学家数字未来论坛上,2013年诺贝尔化学奖得主迈克尔·莱维特、2014年诺贝尔生理学或医学奖得主爱德华·莫索尔、2007年图灵奖得主约瑟夫·斯发斯基、1986年图灵奖得主约翰·霍普克罗夫特、2002...【详细内容】
2021-11-03  张淑贤  证券时报  Tags:人工智能   点击:(39)  评论:(0)  加入收藏
鉴于物联网设备广泛部署、5G快速无线技术闪亮登场,把计算、存储和分析放在靠近数据生成的地方来处理,让边缘计算有了用武之地。 边缘计算正在改变全球数百万个设备处理和传输...【详细内容】
2021-10-26    计算机世界  Tags:边缘计算   点击:(45)  评论:(0)  加入收藏
这是几位机器学习权威专家汇总的725个机器学习术语表,非常全面了,值得收藏! 英文术语 中文翻译 0-1 Loss Function 0-1损失函数 Accept-Reject Samplin...【详细内容】
2021-10-21  Python部落    Tags:机器学习   点击:(43)  评论:(0)  加入收藏
要开始为开源项目做贡献,有一些先决条件:1. 学习一门编程语言:由于在开源贡献中你需要编写代码才能参与开发,你需要学习任意一门编程语言。根据项目的需要,在后期学习另一种语言...【详细内容】
2021-10-20  TSINGSEE青犀视频    Tags:机器学习   点击:(37)  评论:(0)  加入收藏
SimpleAI.人工智能、机器学习、深度学习还是遥不可及?来这里看看吧~ 从基本的概念、原理、公式,到用生动形象的例子去理解,到动手做实验去感知,到著名案例的学习,到用所学来实现...【详细内容】
2021-10-19  憨昊昊    Tags:神经网络   点击:(47)  评论:(0)  加入收藏
语言是人类思维的基础,当计算机具备了处理自然语言的能力,才具有真正智能的想象。自然语言处理(Natural Language Processing, NLP)作为人工智能(Artificial Intelligence, AI)的核心技术之一,是用计算机来处理、理解以及运...【详细内容】
2021-10-11    36氪  Tags:NLP   点击:(48)  评论:(0)  加入收藏
边缘计算是什么?近年来,物联网设备数量呈线性增长趋势。根据艾瑞测算, 2020年,中国物联网设备的数量达74亿,预计2025年突破150亿个。同时,设备本身也变得越来越智能化,AI与互联网在...【详细内容】
2021-09-22  汉智兴科技    Tags:   点击:(54)  评论:(0)  加入收藏
说起人工智能,大家总把它和科幻电影中的机器人联系起来,而实际上这些科幻场景与现如今的人工智能没什么太大关系。人工智能确实跟人类大脑很相似,但它们的显著差异在于人工智能...【详细内容】
2021-09-17  异步社区    Tags:人工智能   点击:(57)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条