一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种音频指纹库生成方法及装置与流程

2021-09-22 16:52:00 来源:中国专利 TAG:音频 数据处理 指纹 装置 生成


1.本发明涉及音频数据处理技术领域,主要涉及一种音频指纹库生成方法及装置。


背景技术:

2.今天,音乐是人们非常重要,也是不可分割的一部分。音乐有很多不同的类型,而这些类型彼此都不相同。可面对海量的音频数据,人们也无法准确地区分音乐的具体类型。然而,随着深度学习技术的日益发展,人们可以借助计算机和深度学习模型更加快速精确的识别目标音频的类型。这也给音频指纹庞大的数据库生成和查找工作带来一丝启发和转机。
3.现有技术中的音频指纹库生成技术,存在数据库的体积较大,查询时间过长等技术问题,缺少一种高效的音频指纹库生成方法及装置。


技术实现要素:

4.发明目的:本发明提供了一种音频指纹库生成方法及装置,通过可以在降低数据库大小和搜索时间的基础上有效识别目标音频。
5.为实现上述目的,本发明采用的技术方案为:
6.一种音频指纹库生成方法,包括以下步骤:
7.步骤s1、根据歌曲标签创建对应名称的数据库;根据歌曲标签确定流派,创建相应流派的数据库存储相同流派目标音频的歌曲信息和音频指纹;
8.步骤s2、对目标音频进行预处理;将目标音频从立体声转换为单声道,并对目标音频进行降采样;
9.步骤s3、对预处理后的目标音频通过傅里叶变换和梅尔频谱变换,获取目标音频的梅尔频谱图;
10.以帧为单位对预处理后的目标音频进行分割,按照预设帧重叠率分割为若干音频帧;对每个分割后的音频帧进行短时傅里叶变换,转换为随时间变化的频谱图;对所述频谱图进行梅尔频谱变换,得到所述目标音频的梅尔频谱图,将得到的所有梅尔频谱图整合存储在本地文件中;
11.步骤s4、根据步骤s3获得的梅尔频谱图,将所述梅尔频谱图映射到33个频率带中,提取音频特征,对所述音频特征进行编码,生成对应的音频指纹,并存储到相应的数据库中;
12.步骤s5、将得到的所述梅尔频谱图分割后投入深度神经网络中进行特征提取,训练神经网络模型,保留最终更新后的参数,用于对歌曲进行流派分类。
13.进一步地,所述步骤s3中通过傅里叶变换和梅尔频谱变换,获取目标音频的梅尔频谱图的具体步骤如下:
14.步骤s3.1、以帧为单位对预处理后的目标音频进行分割,将原始音频中帧的重叠率设为1/2~3/4;
15.步骤s3.2、对分割后的音频帧进行短时傅里叶变换,对转换后的音频帧进行压缩,并将得到的所述频谱片段整合转换为随时间变化的频谱图;
16.步骤s3.3、采用梅尔标度的三角形滤波器组转换频谱图,用对数函数对上述转换后的频谱图进行缩放,得到所述目标音频的梅尔频谱图。
17.进一步地,所述步骤s4中生成对应的音频指纹具体步骤如下:将梅尔频谱图中的频域划分为33个子带,每一帧提取32位的子指纹值,将得到的所述目标音频的音频指纹存入对应标签的数据库中。
18.一种用于上述音频指纹库生成方法的音频指纹库生成装置,包括数据库创建模块、数据预处理模块、数据生成模块、音频指纹生成单元和神经网络模块;所述数据库创建模块用于创建不同流派标签下对应的数据库,来存储相应流派的歌曲信息和音频指纹;所述数据预处理模块将目标音频由立体声转换为单声道,对目标音频进行降采样;所述数据生成模块接收数据预处理模块降采样后的音频数据,对目标音频进行傅里叶变换生成随时间变化的频谱图,对频谱图进行梅尔频谱变换得到梅尔频谱图;所述音频指纹生成单元对生成的梅尔频谱图映射到33个频率带中,提取指纹后编码,将音频指纹存入相应的数据库;所述神经网络模块将生成的梅尔频谱图分割后投入神经网络中进行训练,保留最终更新后的参数。
19.有益效果:
20.本发明运用深度学习网络模型对目标音频进行预识别,确定目标音频所属分类,缩小检测范围。根据目标音频类别创建若干个数据库,使得数据库并行查找成为可能,提高了目标音频指纹匹配的速度。
附图说明
21.图1是本发明提供的音频指纹库生成方法总体流程图;
22.图2是本发明提供的音频指纹库生成方法具体流程图;
23.图3是本发明提供的深度神经网络训练数据方法流程图;
24.图4是本发明提供的卷积神经网络数据分析流程图;
25.图5是本发明提供的不同类型的梅尔频谱图像;
26.图6是本发明提供的深度神经网络训练模型损失和正确率图像。
具体实施方式
27.下面结合附图提供具体实施例,对本发明作更进一步的说明。
28.步骤s1、根据已经标签分类创建相应名称的数据库,用来存储相应标签下歌曲的信息和音频指纹。同时,该模块还具备根据新流派创建相应名称新数据库的功能。
29.步骤s2、对添加标签的源文件进行预处理,得到所述目标音频相关数据。
30.当人们看到音频时,大多数情况下都是以不规则的波形呈现在人们眼前,而这种不规则波形不利于人们对其的分析和利用。因此人们常常将其转换成光谱图来进行分析和利用。
31.现实生活中,音频常常以立体声的形式存在。而立体声中包含多余的冗余信息,会给数据的分析和利用带来不必要的麻烦,因此先将立体声转换为单声道。需要说明的是,采
样频率,也称为采样速度或者采样率,定义了每秒从连续信号中提取并组成离散信号的采样个数,它用赫兹(hz)来表示。一般来说,采样频率越大,需要进行分析的样本数越大,分析也就更困难,同时,为了更加符合人耳的感知能力,需要对目标音频进行降采样,例如将48000hz、44100hz的音频降采样到16000hz。
32.步骤s3、对预处理后的目标音频通过傅里叶变换和梅尔频谱变换,获取目标音频的梅尔频谱图。
33.以帧为单位对原始音频进行分割,由于边界效应的存在,即使是原始的剪切片段,特征提取也会出现错误,因此帧与帧之间的重叠率应该越大越好,即帧移越小越好,以减少边界效应带来的负面影响。音频帧的长度与窗口长度一致,因此窗口长度的重叠率一般设置为1/2到3/4。
34.每个音频文件都被转换成一个频谱图,这是一个随时间变化的频率频谱的可视化表示。一个规则的频谱图是音频信号的短期傅里叶变换(stft)的平方幅度。在傅里叶变换中使用的最重要的参数是

窗口长度,它表示进行傅里叶变换的时间窗口和跳长,它是连续帧之间的采样数。这种转换的典型窗口长度为2048,转换为约10ms,这是人类耳朵能够识别的最短合理周期。选择跳长512。研究表明,人们很难在线性尺度上感知频率。我们在低频域比在高频域更善于分辨频率的差异。例如,我们可以很容易地区分500hz和1000hz,但是我们很难感觉到10000hz和10500hz之间的差异,即使这两对频率之间具有相同的跨度。mel尺度是一种非线性尺度单位,代表人耳等距离音高变化的感觉。采用梅尔尺度的三角形滤波器组转换频谱图,用对数函数对上述转换后的频谱图进行缩放,得到所述目标音频的梅尔频谱图,将得到的梅尔频谱图保存在本地文件中,为下一步做准备。
35.步骤s4、根据步骤s3获得的梅尔频谱图,将所述梅尔频谱图映射到33个频率带中,提取音频特征,对所述音频特征进行编码,生成对应的音频指纹,并存储到相应的数据库中。
36.大多数指纹提取算法都是基于以下方法。首先,音频信号被分割为帧。对于每一帧,计算一组特征,包括傅里叶系数,mel频率倒频谱系数,谱平坦度,清晰度,线性预测编码系数等。本实施例中还使用了音频特征的导数、平均值和方差等派生量。通常,使用分类算法(例如隐马尔可夫模型或量化)将提取的特征映射成更紧凑的表示。单个帧的紧凑表示将被称为子指纹。整个指纹处理过程就是将音频流转换为子指纹流。由于一个子指纹通常不具备足够的数据识别音频片段,因此采用包含足够识别音频剪辑的数据基本单元,即指纹块来识别音频片段。
37.对已经生成的梅尔频谱图进行处理。将得到的梅尔频谱图映射到33个频率带中(频率范围为300hz

2000hz),每间隔11.6毫秒,提取一个32位的子指纹,指纹块有256个子指纹,对应的粒度就为3秒。生成相应的音频指纹,并根据已知歌曲的标签,将音频指纹存入相应的数据库中。
38.为了对每帧提取一个32位的子指纹值,在生成梅尔频谱图的过程中需要进行以下操作。选择33个不重叠的频带。这些波段范围在300hz到2000hz(最相关的光谱范围),并有对数间距。由于只考虑了低于2khz的频率,所以接收到的音频首先被采样到采样率为5khz的单声道音频流中.将第n帧波段m的能量表示为e(n,m),将第n帧的子指纹的第m位表示位f(n,m),那么第n帧的子指纹通常可以定义为:
[0039][0040]
步骤s5、将得到的所述梅尔频谱图分割后投入深度神经网络中进行特征提取,训练神经网络模型,保留最终更新后的参数,用于对歌曲进行流派分类。
[0041]
频谱图是音频在频率和时间维度上的视觉表现。神经网络的模型有很多种,如卷积神经网络,循环神经网络等,下面取一个模型进行详细介绍。
[0042]
梅尔尺度是一种非线性尺度单位,代表人耳等距离音高变化的感觉。因此我们选择梅尔频谱图作为深度神经网络模型的输入。
[0043]
在模型的选择上,rnn在理解时序数据方面非常出色,而且t时刻的隐藏状态依赖于t

1时刻的隐藏状态,。梅尔频谱图有时间成分,rnns可以更好地识别歌曲中的短期和长期时间特征。
[0044]
而一首歌的梅尔频谱图更接近于一幅图像,每一幅都有自己独特的模式,所以选取卷积神经网络来对梅尔频谱图的图像层面进行处理。本实施例中,在得到目标光谱灰度图后,创建固定长度的谱图切片,并将它们作为代表流派的独立样本。为了方便,使用正方形切片,将光谱图切割成n*n像素的切片。例如将光谱图切割成128*128像素的切片,这表示每个切片中有2.56秒的数据值。
[0045]
对于三维立体梅尔频谱图,可以使用1d或者2d卷积,不同的卷积操作所对应的模型也不一样,这里以1d卷积为例进行说明。模型使用一维cnn在时间维度上执行卷积操作。每个一维卷积层都从mel谱图的一小片上提取特征。在卷积操作后应用relu激活。对图像进行批处理归一化,最后进行一维最大池化,降低了图像的空间维数,防止了过拟合。这个操作链即1d卷积

relu激活

batch归一化

1d max pooling执行了3次。上述操作执行完毕后将一维卷积层的输出信息输入到lstm中,lstm需要找到歌曲的短期和长期结构。这里lstm的结构有很多不同的形式,本实施例中lstm使用96个隐藏单位。lstm的输出被传递到一个64个单元的全连接层。模型的最终输出层是一个带有softmax激活和若干个个隐藏单元(与训练集中的类型数目相一致)来分配概率的全连接层。所有层之间均使用dropout和l2正则化,以减少模型过拟合。同时,模型可以使用adam优化器进行训练,学习率为0.001,损失函数为分类交叉熵。
[0046]
对上述实例中的卷积层的操作进行说明。conv2d中的卷积核只沿两个维度移动,并且输入和输出数据都是三维的,一般用来处理图像数据。与conv2d不同的是,conv1d中的卷积核只沿一个维度移动,一维cnn可用于音频和文本数据,对于音频数据而言,这里我们将其表示为时间序列数据作为输入。一维cnn的输入和输出数据都是二维的,因为处理的对象是梅尔光谱图,所以这里需要三次conv1d卷积操作。一维卷积核的宽度可以根据实际需要进行设定,例如其高度可以设置为5。而卷积核的高度将与每个时间步骤中的数据点数相同。
[0047]
本发明在使用时,首先将要匹配的对象投入深度神经网络模型进行音乐流派预测,之后对于生成的音频指纹就可以只在相应的数据库中进行匹配,大大降低了需要分析匹配的数据量。
[0048]
另外,因为深度神经网络的分类准确率并不能达到百分之百,因此,需要同时进行其余数据库的并行搜索,其结果作为备选结果一同输出。与前者不同的是,后者需要以一定
的计算资源为代价来进行并行搜索,但不会耗费更多的时间。
[0049]
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文章

  • 日榜
  • 周榜
  • 月榜