网易首页 > 网易号 > 正文 申请入驻

音频时域特征的提取

0
分享至

介绍

在音频领域中,我们可以使用深度学习可以提取和分析这些音频的频率和时域特征以了解波形的属性。 在时域内提取特征时,通常将研究每个样本的幅度。 我们如何操纵幅度为我们提供了有关信号的某些细节。

在开始之前,我先确定一些符号:

在这些本篇中,我将详细说明该特性是什么,如何正式定义它,并展示如何在Python中提取这些特性。我们将随机查看不同类型(特别是R&B、说唱和摇滚)歌曲的7秒片段,因为我们将能够更好地看到这些特性的属性。

出于版权考虑,我不能分享这些有争议的歌曲,但我会分享这些歌曲的输出情节和类型。这将使我们能够研究流派之间的细微差别。

import numpy as np
import math
import matplotlib.pyplot as plt
import librosa
import librosa.display as ld
# Load in the songs
rb, sr = librosa.load('td/rb.wav')
rap, _ = librosa.load('td/rb.wav')
rock, _ = librosa.load('td/rock.wav')

振幅包络线

振幅包络(Amplitude Envelope)的目的是提取每一帧的最大振幅并将它们串在一起。重要的是要记住振幅代表信号的音量(或响度)。首先,我们把信号分解成它的组成窗口,并找出每个窗口内的最大振幅。然后,我们画出每个窗口沿时间的最大振幅。

我们可以将AE用于检测声音是否开始。 在各种语音处理应用程序中,这可能是某人讲话或外部噪音,而在音乐信息检索(MIR)中,这可能是音符或乐器的开始。

AE的主要缺点是对离群值的鲁棒性不如我们即将研究的Root-Mean-Square Energy。

我们可以这样来形式化这个概念:

在Python中搜索可以完成此任务的已定义方法后,我找不到它。 因此,我们将轻松地对其进行定义。 我们将要研究的其他特征提取方法已经在librosa中定义,因此我们将在正式定义它们之后使用这些函数。

重要的是要注意,通过此for循环中的设置,我们没有指定跳跃长度。 这意味着,当我们创建上下边界时,窗口不会重叠,从而使跳长和帧长相同。

def AE(signal, frame_length):
'''
Create the Amplitude Envelope of a given signal.
Parameters:
------------
- signal (numpy array):
The signal/sound in question to be analyzed.
- frame_size (int):
Number of samples within each frame. Formally defined as K.
Returns:
---------
Array of amplitude envelope
'''
AE = []
# Calculate number of frames
num_frames = math.floor(signal.shape[0] / frame_length)
for t in range(num_frames):
# Calculate bounds of each frame
# By doing this, our hop length is the same as the frame length
# Therefore, these frames are NOT overlapping.
lower = t*frame_size
upper = (t+1)*(frame_size-1)
# Find maximum of each frame and add it to our array
AE.append(np.max(signal[lower:upper]))
return np.array(AE)

现在,要可视化并比较不同类型的AE:

能量的均方根 Root-Mean-Square Energy

如前所述,均方根(RMS)能量与AE非常相似。 但是,与开始检测相反,它尝试感知响度,该响度可用于事件检测。 此外,它对于异常值的抵抗力要强得多,这意味着如果我们对音频进行分段,就可以更加可靠地检测到新事件(例如新乐器,某人讲话等)。

RMS能量的正式定义:

如果你熟悉均方根的概念,这对你来说不会太新。然而,如果你没有,也不要担心。

当我们观察波形时,我们对窗口内的振幅进行平方,然后求和。一旦完成,我们将除以帧长,取平方根,那将是那个窗口的均方根能量。

要提取RMS,我们可以简单地使用librosa.feature.rms。现在,我们把它形象化:

# Define ZCR for each genre
ZCRrb = librosa.feature.zero_crossing_rate(y = rb, frame_length=1024, hop_length=1024)
ZCRrap = librosa.feature.zero_crossing_rate(y = rap, frame_length=1024, hop_length=1024)
ZCRrock = librosa.feature.zero_crossing_rate(rock, frame_length=1024, hop_length=1024)
# Now we plot:
fig, ax = plt.subplots(2,3, figsize=(30,15))
# Plotting R&B
ax[0,0].set(title='Wave Form of R&B')
ld.waveplot(rb, sr=sr, ax=ax[0,0])
ax[1,0].set(title = 'ZCR Energy of R&B')
ax[1,0].plot(ZCRrb.T) # Returned shape is (1,t) so we take the transpose.
# Plotting Rap
ax[0,1].set(title='Wave Form of Rap')
ld.waveplot(rap, sr=sr, ax=ax[0,1])
ax[1,1].set(title = 'ZCR Energy of Rap')
ax[1,1].plot(ZCRrap.T)
# Plotting Rock
ax[0,2].set(title='Wave Form of Rock')
ld.waveplot(rock, sr=sr, ax=ax[0,2])
ax[1,2].set(title = 'ZCR Energy of Rock')
ax[1,2].plot(ZCRrock.T)

从均方根和声发射的差异可以看出,均方根波动不像声发射那样剧烈。这个特性使振幅的均方根对异常值更加稳健。

过零率

过零速率(ZCR)的目的是研究信号的幅值在每一帧中的变化速率。与前两个特性相比,这个特性非常容易提取。

ZCR的正式定义如下:

对于MIR,此功能与识别打击乐器声音有关,因为它们经常具有波动信号,ZCR可以很好地检测到这些声音,并且可以检测到音高。 但是,此功能通常用作语音识别中用于语音活动检测的功能。

使用librosa,我们可以使用librosa.feature.zerocrossingrate提取ZCR。

# Define ZCR for each genre
ZCRrb = librosa.feature.zero_crossing_rate(y = rb, frame_length=1024, hop_length=1024)
ZCRrap = librosa.feature.zero_crossing_rate(y = rap, frame_length=1024, hop_length=1024)
ZCRrock = librosa.feature.zero_crossing_rate(rock, frame_length=1024, hop_length=1024)
# Now we plot:
fig, ax = plt.subplots(2,3, figsize=(30,15))
# Plotting R&B
ax[0,0].set(title='Wave Form of R&B')
ld.waveplot(rb, sr=sr, ax=ax[0,0])
ax[1,0].set(title = 'ZCR Energy of R&B')
ax[1,0].plot(ZCRrb.T) # Returned shape is (1,t) so we take the transpose.
# Plotting Rap
ax[0,1].set(title='Wave Form of Rap')
ld.waveplot(rap, sr=sr, ax=ax[0,1])
ax[1,1].set(title = 'ZCR Energy of Rap')
ax[1,1].plot(ZCRrap.T)
# Plotting Rock
ax[0,2].set(title='Wave Form of Rock')
ld.waveplot(rock, sr=sr, ax=ax[0,2])
ax[1,2].set(title = 'ZCR Energy of Rock')
ax[1,2].plot(ZCRrock.T)

到现在为止,您应该对时间特征提取如何工作,如何在各种基于音频的应用程序中加以利用以及如何自己开发特征提取方法有所了解。 通过利用特定窗口内的振幅,我们对MIR和ASR中的各种应用打开了无数的见解。 感谢您的阅读!

本文代码:github/theadamsabra/LearningfromAudio

作者:Adam Sabra

deephub翻译组

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
为什么人一旦觉醒,就会断绝90%的朋友

为什么人一旦觉醒,就会断绝90%的朋友

洞见
2026-05-28 22:05:54
250架轰6携核弹就绪,小泉称中国为超级核大国

250架轰6携核弹就绪,小泉称中国为超级核大国

小呫说故事
2026-06-02 16:20:49
特大串通投标案,涉案金额达110亿余元,22人已判刑!

特大串通投标案,涉案金额达110亿余元,22人已判刑!

新浪财经
2026-06-03 02:41:42
韩国财阀崔泰源:出轨小16岁情人,抛弃发妻,还让继子改姓崔

韩国财阀崔泰源:出轨小16岁情人,抛弃发妻,还让继子改姓崔

小书生吃瓜
2026-06-03 15:42:15
月入130万,排队两小时!下沉市场真能接住漂亮饭?

月入130万,排队两小时!下沉市场真能接住漂亮饭?

红餐网
2026-06-03 12:08:10
体育总局宣布周继红免职退休,曾引发内斗争议,如今能否平稳落地

体育总局宣布周继红免职退休,曾引发内斗争议,如今能否平稳落地

元哥说历史
2026-01-10 11:50:03
深圳一大叔,因“空调机位养花”火了,网友:厉害,白赚几万块~

深圳一大叔,因“空调机位养花”火了,网友:厉害,白赚几万块~

奇葩游戏酱
2026-06-02 14:39:27
汤唯10岁女儿正脸照曝光!长相清秀有气质,二胎也已在腹中

汤唯10岁女儿正脸照曝光!长相清秀有气质,二胎也已在腹中

百言君
2026-06-02 17:02:39
反转来袭! 李晨表态仅两天,白鹿自曝身体出问题,范丞丞早有预判

反转来袭! 李晨表态仅两天,白鹿自曝身体出问题,范丞丞早有预判

东方不败然多多
2026-06-03 12:28:59
京东采销的怒火,烧了商家的原野

京东采销的怒火,烧了商家的原野

惊蛰研究所
2026-06-03 11:58:38
闷声发大财的三大星座,低调却很有实力

闷声发大财的三大星座,低调却很有实力

星座不求人
2026-06-01 20:23:26
女子路过水坑时,捡到“金项链”,捡起后感觉异常马上扔掉!网友:这是真 “人间清醒”

女子路过水坑时,捡到“金项链”,捡起后感觉异常马上扔掉!网友:这是真 “人间清醒”

犀利强哥
2026-06-03 22:40:15
国乒女队做出3调整,日本的大藤沙月张本美和出战奥运,马琳笑了

国乒女队做出3调整,日本的大藤沙月张本美和出战奥运,马琳笑了

阿信点评
2026-06-03 19:51:03
夫妻性生活老公学了这个延迟心法后,我第一次在床上主动求他继续

夫妻性生活老公学了这个延迟心法后,我第一次在床上主动求他继续

精彩分享快乐
2026-06-03 12:00:15
伟大的2-0!郑钦文终结者大爆冷,掀翻22号种子平纪录首进法网4强

伟大的2-0!郑钦文终结者大爆冷,掀翻22号种子平纪录首进法网4强

大秦壁虎白话体育
2026-06-03 19:08:23
炸锅!清华700亿撬动280万亿!房贷贴息,才是财富认知的降维打击

炸锅!清华700亿撬动280万亿!房贷贴息,才是财富认知的降维打击

靓仔情感
2026-06-03 00:23:46
莲花CEO称车重超过1.8吨就是菜车 荣耀高管回应:实在不理解 我很喜欢的一个品牌

莲花CEO称车重超过1.8吨就是菜车 荣耀高管回应:实在不理解 我很喜欢的一个品牌

快科技
2026-06-03 17:22:13
史上最荒唐的4次造反,原来造反也有 "菜鸡玩家",一个比一个离谱

史上最荒唐的4次造反,原来造反也有 "菜鸡玩家",一个比一个离谱

长风文史
2026-06-03 11:36:56
被追债36亿,万达没了,首富没了,王健林还剩什么?

被追债36亿,万达没了,首富没了,王健林还剩什么?

李云飞Afey
2026-06-02 16:32:32
为何说年龄超过70岁的人:即便身体健康,也没有多少来日方长?

为何说年龄超过70岁的人:即便身体健康,也没有多少来日方长?

医学原创故事会
2026-06-02 23:34:05
2026-06-04 01:07:00
deephub incentive-icons
deephub
CV NLP和数据挖掘知识
2006文章数 1462关注度
往期回顾 全部

科技要闻

传DeepSeek融资意向500亿:腾讯投100亿

头条要闻

男子不想上班辞职后上武当山当道士 8个月后选择下山

头条要闻

男子不想上班辞职后上武当山当道士 8个月后选择下山

体育要闻

选择中国品牌的库里,和他们的巨大野心

娱乐要闻

官方痛批乱象 刘涛郑恺等艺人遭点名

财经要闻

AI,开始偷懒了?

汽车要闻

专访蒋平:安全不做高低配 长安要让安全技术普惠

态度原创

手机
艺术
本地
游戏
军事航空

手机要闻

华为Mate90系列重磅爆料:全新Deco设计登场,三大梯队排名曝光!

艺术要闻

二十年前割麦的场景

本地新闻

用杨柳青年画的方式,打开天津

M站评分92的神作,终于迎来了完全重制

军事要闻

媒体:美伊和谈以方却从中作梗 内塔尼亚胡有私人算计

无障碍浏览 进入关怀版