音频检索方法、装置和存储介质与流程

文档序号:18986125发布日期:2019-10-29 04:26阅读:486来源:国知局
音频检索方法、装置和存储介质与流程

本申请涉及计算机领域,具体涉及一种音频检索方法、装置和存储介质。



背景技术:

音频作为一种意义非凡的媒体,包含了非常丰富的听觉特征。而音频检索是以波形声音为对象的检索,也是多媒体检索技术中的一个重要组成部分。音频检索主要是采用文本检索技术,但是这种检索方式非常局限性,它是通过人工方式输入音频的属性和描述来进行检索。

然而,目前的音频指纹技术存在着准确率低下的问题。



技术实现要素:

本申请实施例提供一种音频检索方法、装置和存储介质,可以提升音频检索的准确率。

本申请实施例提供一种音频检索方法,包括:

获取待测音频;

对所述待测音频进行声谱分析,得到所述待测音频对应的整体声谱;

对所述整体声谱进行音频指纹构造,得到所述待测音频的音频指纹;

根据所述待测音频的音频指纹进行音频检索,得到检索结果;

当检索结果未满足停止条件时,则返回对所述整体声谱进行音频指纹构造,得到所述待测音频的音频指纹的步骤;

当检索结果满足停止条件时,则停止检索。

在一些实施例中,对所述整体声谱进行音频指纹构造,得到所述待测音频的音频指纹,包括:

确定所述整体声谱上的关键点;

对所述整体声谱上的关键点进行位置调整,得到调整后关键点;

根据所述调整后关键点进行音频指纹构造,得到所述待测音频的音频指纹。

在一些实施例中,根据所述调整后关键点进行音频指纹构造,得到所述待测音频的音频指纹,包括:

确定所述调整后关键点以及所述调整后关键点对应的目标区域;

确定所述目标区域中的其它关键点;

基于所述调整后关键点和所述目标区域中的其它关键点进行哈希计算,得到所述待测音频的音频指纹。

在一些实施例中,根据所述待测音频的音频指纹进行音频检索,得到检索结果,包括:

获取数据库,其中所述数据库中包括音频以及所述音频对应的音频指纹;

将所述数据库中音频对应的音频指纹与待测音频的音频指纹进行相似度计算,得到所述数据库中音频的相似度;

根据所述数据库中音频的相似度确定检索结果。

在一些实施例中,对所述待测音频进行声谱分析,得到所述待测音频对应的整体声谱,包括:

对所述待测音频进行时域分析,得到所述待测音频对应的整体声谱。

在一些实施例中,对所述待测音频进行声谱分析,得到所述待测音频对应的整体声谱,包括:

对所述待测音频进行时域分析,得到所述待测音频的时域图;

对所述待测音频的时域图进行时频转换,得到所述待测音频对应的整体声谱。

本申请实施例还提供一种音频检索装置,包括:

获取模块,用于获取待检索音频;

分析模块,用于对所述待检索音频进行声谱分析,得到所述待检索音频对应的整体声谱;

构造模块,用于对所述整体声谱进行音频指纹构造,得到所述待检索音频的音频指纹;

检索模块,用于根据所述待检索音频的音频指纹进行音频检索,得到检索结果;

更新模块,用于当检索结果未满足检索停止条件时,则对所述待检索音频的音频指纹进行更新,并触发所述检索模块根据所述待检索音频的音频指纹进行音频检索的步骤;

输出模块,用于当检索结果满足检索停止条件时,则停止检索,并输出检索结果。

在一些实施例中,所述构造模块,包括:

关键点子模块,用于确定所述整体声谱上的关键点;

构造子模块,用于根据所述关键点进行音频指纹构造,得到所述待检索音频的音频指纹。

本申请实施例还提供一种存储介质,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行本申请实施例所提供的任一种音频检索方法中的步骤。

本申请实施例可以获取待检索音频;然后对待检索音频进行声谱分析,得到待检索音频对应的整体声谱;再对整体声谱进行音频指纹构造,得到待检索音频的音频指纹;然后根据待检索音频的音频指纹进行音频检索,得到检索结果;当检索结果未满足检索停止条件时,则对待检索音频的音频指纹进行更新,并返回执行根据待检索音频的音频指纹进行音频检索的步骤;当检索结果满足检索停止条件时,则停止检索,并输出检索结果。

在本申请中,可以不断地更新音频指纹并根据音频指纹进行音频检索,,使得变调和/或变速后的待检索音频也可以检索成功,由此提升了音频检索的准确率。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1a是本申请实施例提供的音频检索方法的场景示意图;

图1b是本申请实施例提供的音频检索方法的流程示意图;

图1c是本申请实施例提供的能量图示意图;

图1d是本申请实施例提供的待检索音频的关键点与相似音频的关键点对比图;

图2a是本申请实施例提供的三维频谱图中关键点示意图;

图2b是本申请实施例提供的构造音频指纹的原理示意图;

图2c是本申请实施例提供的基于指纹的倒排索引表结构示意图;

图2d是本申请实施例提供的基于指纹的散列表结构示意图;

图3是本申请实施例提供的音频检索装置的结构示意图;

图4是本申请实施例提供的网络设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请实施例提供一种音频检索方法、装置和存储介质。

其中,该音频检索装置具体可以集成在电子设备中,该电子设备可以为终端以及服务器等等,例如手机、个人电脑(personalcomputer,pc)、智能家居、网络服务器等等。

参考图1a,该电子设备可以获取待检索音频;然后对待检索音频进行声谱分析,得到待检索音频对应的整体声谱;再对整体声谱进行音频指纹构造,得到待检索音频的音频指纹;然后根据待检索音频的音频指纹进行音频检索,得到检索结果;当检索结果未满足检索停止条件时,则对待检索音频的音频指纹进行更新,并返回执行根据待检索音频的音频指纹进行音频检索的步骤;当检索结果满足检索停止条件时,则停止检索,并输出检索结果。

以下分别进行详细说明。需说明的是,以下实施例的序号不作为对实施例优选顺序的限定。

在本实施例中,提供了一种音频检索方法,如图1b所示,该音频检索方法的具体流程可以如下:

101、获取待检索音频。

待检索音频是指用于检测的目标数据,该目标数据在音频范围内描述声音。比如,数字(digital)音频和模拟(analog)音频等等。

具体地,模拟音频是指以模拟信号格式存储的音频信号,例如黑胶唱片、磁带以及cd等等。

数字音频(数码音频)是指以数字格式存储的、可以通过网络来传输的音频信号,例如以各种格式保存的数字音频文件,比如mp3(movingpictureexpertsgroupaudiolayeriii,动态影像专家压缩标准音频层面3)、dts(digitaltheatersystems,数字影院系统)、aac(advancedaudiocoding,高级音频编码)等等。

获取待检索音频的方式具有多种,可以具体从各音频处理设备、音频采集设备、音频生成设备、服务器以及终端等中获取。比如,从终端的本地内存种获取待检索音频、通过网络与服务器通信以获得待检索音频、通过音频采集设备采集待检索音频等等。

在一些实施例中,可以通过多个设备间的信息交互来获取待检索音频,比如利用音频生成设备等来生成待检索音频,并由音频采集设备采集,进而,即,音频检索装置具体可以接收音频采集设备发送的待检索音频,该待检索音频是由音频采集设备采集音频生成设备产生的音频。

102、对待检索音频进行声谱分析,得到待检索音频对应的整体声谱。

整体声谱(acousticspectrum)是用来描述待检索音频中所包含成份及音色中声学能量的分配模式的工具,声谱可以分为静态声谱和动态声谱,即时域图与频域图(频谱图)。静态声谱可以反映该待检索音频在某一瞬间频率和振幅之间的关系,其横坐标是频率,纵坐标是振幅;动态声谱可以反映该待检索音频在某一段时间内力度及音高随时间的变化,其横坐标是时间,纵坐标是力度或音高。

声谱分析则是提取、分析声谱的方式,比如,声谱分析可以包括时域分析和频域分析。

在一些实施例中通过对待检索音频进行时域分析可以得到待检索音频对应的动态声谱:

a.对待检索音频进行时域分析,得到待检索音频对应的时域声谱。

时域分析是指控制系统在一定的输入下,根据输出量的时域表达式,分析系统的稳定性、瞬态和稳态性能。由于时域分析是直接在时间域中对系统进行分析的方法,所以时域分析具有直观和准确的优点。其中,时域是描述数学函数或物理信号对时间的关系。例如一个信号的时域波形可以表达信号随着时间的变化。

在一些实施例中通过对待检索音频进行频域分析可以得到待检索音频对应的静态声谱:

a.对待检索音频进行时域分析,得到待检索音频对应的时域声谱;

b.对待检索音频的时域声谱进行时频转换,得到待检索音频对应的频域声谱。

频域分析可以描述控制系统在不同频率的正弦函数作用时的稳态输出和输入信号之间关系。频域显示了在一个频率范围内每个给定频带内的信号量,比如,诸如人类语音的声波可以被分解成其不同频率的音调分量,每个音调分量由具有不同幅度和相位的正弦波表示。

频域分析时域函数的多个不同的数学变换被称为“频域”方法,其方法多样,比如傅里叶级数(fourierexpansion)、傅立叶变换(fouriertransform)、拉普拉斯变换(methodoflaplacetransform)、z变换(z-transformation)等等,在音频领域较为常用的是利用傅里叶变换来进行频域分析,以获得待检索音频的频谱。

103、对整体声谱进行音频指纹构造,得到待检索音频的音频指纹。

音频指纹技术(audiofingerprintingtechnology)是指通过特定的算法将一段音频中独一无二的数字特征以标识符的形式提取出来,用于识别海量的声音样本或跟踪定位样本在数据库中的位置,其中该独一无二的数字特征被称为音频指纹(audiofingerprinting),也被称为音纹。

音频指纹是一个附属有时间属性的数字集合,用以表示音频的身份信息,其中,该数字集合中的数字也可以被称为子指纹。音频指纹可以以字符串、图形、码组等等形式保存。

目前构造音频指纹的方式具有多种,比如使用第三方的echoprint、chromaprint和landmark等so(sharedobject)库进行音频指纹识别。

简而言之,音频指纹是音频对象的简短摘要,比如,对指纹f和音频对象x建立映射关系后,在该音频指纹识别时,只须在2个相似的音频对象之间建立一种知觉平等的有效机制,不用通过比较相对较大的音频对象本身,而是通过比较相关的指纹。因此,音频指纹应具备以下性质:

a.感知相关性:指纹中尽可能多地包含感知相关的数据。

b.高效性:指纹相对较小。

c.鲁棒性:相似音频指纹尽量一致。

获取了待检索音频的整体声谱后,为了得到该待检索音频的音频指纹,需要通过整体声谱构造音频指纹。

通过整体声谱构造音频指纹的具体方法是:

a.确定整体声谱上的关键点;

b.根据关键点进行音频指纹构造,得到待检索音频的音频指纹。

音频指纹有许多类型,比如梅尔频率倒谱系数(melfrequencycepstrumcoefficient,mfcc)、傅里叶系数(fouriercoefficient)、线性预测编码(linearpredictivecoding,lpc)系数、哈希码(hashcode)等。

在一些实施例中,使用傅里叶系数进行音频指纹构造,其具体实现步骤包括:

a.时域分帧;

b.对每一帧进行傅里叶变化,并求其能量;

c.求得该能量的局部最大值的值和坐标;

d.根据该能量的局部最大值的值和坐标构建音频指纹。

其中,时域分帧的分帧长度、窗类型、重叠长度都可以由本领域技术人员设定。

其中,对每一帧进行傅里叶变化,并求其能量得到的能量图如图1c所示,该能量图具有三个维度,其x轴代表该点的时间,y轴代表该点的频率,频谱图中每个点的亮度代表该点的能量值,亮度越高,其能量越大。

其中,局部最大值可以是该能量图中预设范围内能量最大的点,即关键点。其中,预设范围可以由本领域技术人员设定,根据局部最大值的值和坐标可以构建音频指纹。

局部最大值,即关键点可以代表音频的整体信息,相比于计算整个音频,使用关键点进行运算可以减少计算量。可以理解地,选取关键点的规则多样,根据不同的方法和参数可以控制每秒选取的关键点点数和关键点类型。

需要注意的,除了局部最大值之外,关键点类型还可以包括极值点、人为预设点、稳定点等等,在此不做严格要求。

根据关键点的值与坐标位置,可以通过梅尔频率倒谱系数(melfrequencycepstrumcoefficient,mfcc)、傅里叶系数(fouriercoefficient)、线性预测编码(linearpredictivecoding,lpc)系数、哈希码(hashcode)等各种编码、变换方式来计算音频指纹。

104、根据待检索音频的音频指纹进行音频检索,得到检索结果。

根据待检索音频的音频指纹可以在数据库中进行音频检索,匹配数据库中的相似音频。

音频检索方法多种,比如基于特征的音频检索、基于分段的实时检索、基于索引的检索、基于硬件实现的快速检索等等。其中,根据待检索音频的音频指纹进行音频检索可以看作是基于特征的音频检索,其步骤是:

a.获取数据库,其中,数据库中包括对象音频和对象音频的音频指纹;

b.将数据库中对象音频的音频指纹与待检索音频的音频指纹进行相似度计算,得到待检索音频与对象音频的相似度;

c.根据待检索音频与对象音频的相似度确定检索结果。

其中相似度是通过待检索音频与对象音频进行指纹比对得到的,即,计算两者的音频指纹之差,例如方差、平方差等等方式可以得到。

检索结果为检索得到的相似音频或者无相似音频。其中,相似音频时指与待检索音频相比具有类似的的音分、音调、音色以及节奏等等。具体地,相似音频的音频指纹与待检索音频的音频指纹相似度大于预设阈值。

105、当检索结果未满足检索停止条件时,则对待检索音频的音频指纹进行更新,并返回执行根据待检索音频的音频指纹进行音频检索的步骤。

检索停止条件可以预先由本领域技术人员设置。

例如,停止条件可以指循环步骤“对待检索音频的音频指纹进行更新,并返回执行根据待检索音频的音频指纹进行音频检索的步骤”超过预设次数后。

再比如,停止条件还可以是指根据音频指纹检索到相似音频。

对待检索音频的音频指纹进行更新后再返回执行步骤104“根据待检索音频的音频指纹进行音频检索”。

对待检索音频的音频指纹进行更新的目的是为了提高音频检索的准确率。比如,在一些变调或变速后的音频,其音频指纹会与相似音频的音频指纹之间有很大的差异。

音频指纹进行更新,即,在构造音频指纹时对关键点在能量图上的位置进行微调,经过多轮处理后,更新后的音频指纹可以刚好与相似音频的音频指纹契合,使得可以根据生成的音频指纹找到相似音频。

以待检索音频与相似音频的频谱图已知为例,已知相似音频的频率略低于待检索音频的频率,当对待检索音频的关键点与相似音频的关键点进行对比,如图1d所示,圆点代表相似音频的关键点,叉代表待检索音频调整后关键点,图中横坐标为时间,纵坐标为频率。

在图1d中圆点略低于叉,即相似音频关键点的频率略低于待检索音频关键点的频率,此时,求出的待检索音频与相似音频的音频指纹不同,待检索音频与相似音频的音频指纹无法匹配。若多次微调待检索音频关键点的频率,使其慢慢靠近相似音频关键点的频率,最终可以使得圆点与叉重合,即调整后待检索音频关键点与相似音频关键点的频率相同,此时,求出的待检索音频与相似音频的音频指纹相同,待检索音频与相似音频的音频指纹匹配。

类似地,若图中圆点在叉的左边,即相似音频关键点的时间快于待检索音频关键点的时间,也可以使用上述方法使得圆点与叉重合,求出的待检索音频与相似音频的音频指纹相同,待检索音频与相似音频的音频指纹匹配。

进一步地,若图中圆点在叉的下方、右边、左下方、左上方、右下方、右上方等等,均可以也可以使用上述方法使得圆点与叉重合,求出的待检索音频与相似音频的音频指纹相同,待检索音频与相似音频的音频指纹匹配。

106、当检索结果满足检索停止条件时,则停止检索,并输出检索结果。

当检索结果满足检索停止条件时,则停止检索,并输出检索结果,其中,检索结果在没有搜索到相似音频时可以是“无相似音频”的提示;在搜索到相似音频时可以是将所有搜到的相似音频都作为检索结果,也可以是将所有搜到的相似音频中相似度最高的一个音频作为检索结果,还可以是将所有搜到的相似音频中随机挑选作为检索结果,再此不做严格要求。

本申请实施例提供的音频检索方案可以应用在各种音频检索场景中,比如,可以以用户使用智能手机为例,用户通过智能手机上的应用选取的待检索音频,检索结果显示在该应用的界面。采用本申请实施例提供的方案能够更好地提升音频检索的准确率。

由上可知,本申请实施例可以获取待检索音频;对待检索音频进行声谱分析,得到待检索音频对应的整体声谱;对整体声谱进行音频指纹构造,得到待检索音频的音频指纹;根据待检索音频的音频指纹进行音频检索,得到检索结果;当检索结果未满足检索停止条件时,则对待检索音频的音频指纹进行更新,并返回执行根据待检索音频的音频指纹进行音频检索的步骤;当检索结果满足检索停止条件时,则停止检索,并输出检索结果。在本申请中,可以不断地更新音频指纹并根据音频指纹进行音频检索,,使得变调和/或变速后的待检索音频也可以检索成功,由此提升了音频检索的准确率。

根据上述实施例所描述的方法,以下将作进一步详细说明。

在本实施例中,将以用户在智能手机上使用听歌识曲功能为例,对本发明实施例的方法进行详细说明。

本实施例的重点思想为:微调待检索音频关键点的频率和/或时间,根据微调后待检索音频关键点更新音频指纹,再通过更新后的音频指纹检索相似音频,未检索到则在一段时间内再次重复更新音频指纹并检索相似音频的步骤,直到检索到相匹配的音频。,其具体流程如下:

一、获取待检索音频。

待检索音频是指用于检测的目标数据,该目标数据在音频范围内描述声音。比如,数字(digital)音乐和模拟(analog)音乐等等。

具体地,模拟音乐是指以模拟信号格式存储的音频信号,例如黑胶唱片、磁带以及cd等等。

数字音乐(数码音乐)是指以数字格式存储的、可以通过网络来传输的音频信号,例如以各种格式保存的数字音频文件,比如mp3(movingpictureexpertsgroupaudiolayeriii,动态影像专家压缩标准音频层面3)、dts(digitaltheatersystems,数字影院系统)、aac(advancedaudiocoding,高级音频编码)等等。

获取待检索音频的方式具有多种,可以具体从各音频处理设备、音频采集设备、音频生成设备、服务器以及终端等中获取。比如,从终端的本地内存种获取待检索音频、通过网络与服务器通信以获得待检索音频、通过音频采集设备采集待检索音频等等。

在本实施例中,将以用户在智能手机上使用听歌识曲功能为例,来对终端本地内存中的待测音乐进行音频检索。

具体地,用户可以在智能手机的本地内存中选取待测音乐,也可以使用智能手机与网络服务器通信,选取待测音乐。

二、对待检索音频进行声谱分析,得到待检索音频对应的整体声谱。

在本实施例中,需要对数字音乐需要进行一系列预处理操作,使得音频检索更加精确。

首先对数字音乐的时域进行分帧处理。比如,在本实施例中,将3s的音频分成具有重叠部分的帧,重叠部分为0.37s,使用汉宁(hanning)窗加权,重叠系数为31/32。

然后使用离散傅里叶变换(discretefouriertransform,dft)来对获得的待检索音频进行算法预处理,以获得数字音乐的频谱。比如,利用离散傅里叶变换的快速算法(fastfouriertransformation,fft)对每个子帧进行傅里叶变换。

其中,dft可以将离散信号的时域(timedomain)采样变换为频域(frequencydomain)采样,其运算为:

其中,x(k)表示dft变换后的数据,即频域值,x(n)为采样的时域值,n为时域采样点的序列索引,k为频域值的索引,n为进行转换的采样点数量。在本实施例中,x(n)为数字音乐的时域值,其虚部为0,此时公式可以展开为:

其中,fft是是一种dft的高效算法,比如原来计算dft的复杂度是n2,进行fft的运算复杂度则是nlg10(n)。fft算法多样,比如可分为按时间抽取算法和按频率抽取算法。在本实施例中,可以使用fftw(一种fft的标准c语言程序集)来进行运算。

三、对整体声谱进行音频指纹构造,得到待检索音频的音频指纹。

对每一个子帧进行傅里叶变换后,为了提取每一个子帧的子音频指纹,需要对频域子带进行划分。比如,在本实施例中,对每个子帧提取一个32比特的子音频指纹,将300hz-2000hz之间的频域划分成33个不重叠的频域子带。为了更符合人类的听觉系统(humanauditorysystem,has),可以采用频率的对数空间进行运算。

划分好频域子代后,对该子带所携带的能量进行计算:

|f(e)2|为功率谱或者功率谱密度函数。根据帕斯维尔定理,实信号的能量等于平均功率谱,即信号的功率谱为信号频谱的平方。其中,功率谱是功率谱密度函数的简称,它定义为单位频带内的信号功率。它表示了信号功率随着频率的变化情况,即信号功率在频域的分布状况。功率谱表示了信号功率随着频率的变化关系。

其中,实信号是指现实中真实的、可以测量到的信号,比如正弦波、信号噪声等等。

变换后的频谱图,具有三个维度,其x轴代表该点的时间,y轴代表该点的频率,频谱图中每个点的亮度代表该点的能量值。

变换后的频谱图还可以以三维的方式进行展示,如图2a所示,该三维频谱图的x轴、y轴和z轴分别对应图2b的x轴、y轴和每个点的亮度。

从三维频谱图中可以提取一系列的关键点,关键点可以代表音频的整体信息,相比于计算整个音频,使用关键点进行运算可以减少计算量。可以理解地,选取关键点的规则多样,根据不同的方法和参数可以控制每秒选取的关键点点数和关键点类型。

其中,关键点类型可以包括极值点、人为预设点、稳定点等等。

极值点可以包括局部极值点和全局极值点,也可以包括极大值点和极小值点。极值点是函数图像的某段子区间内上极大值或者极小值点的横坐标,极值点出现在函数的驻点,即导数为0的点,或不可导点处,即导数不存在的点。

比如,如图2a中的黑点所示,该三维频谱图中的一些局部极值点(能量峰值)可以作为关键点。

在本实施例中,使用哈希码(hashcode)作为音频指纹的一部分。哈希算法是一种可以代表对象特征的编码算法,输入任意长度的数据,经过哈希算法处理后输出一个定长的哈希码。使用哈希算法可以使得音频指纹的构造过程快速、高效。

哈希算法的算法众多,比如md4(messagedigestⅳ)、md5(messagedigestⅴ)、sha-1(securehashalgorithmⅰ)等等。

根据哈希算法构造音频指纹的基本步骤是:

a.确定关键点对应的目标区域;

b.确定目标区域中除关键点之外的其它关键点。

图2b是构造音频指纹的原理示意图,图中的叉代表关键点,每一个关键点(anchorpoint)都有一个对应的目标区域(targetzone),即,目标区域是该关键点构造音频指纹的范围。其中,目标区域可以由本领域技术人员指定。

然后,将关键点和目标区域中的所有关键点两两组合以计算哈希码(hashcode),构成一个子指纹:

hashcode=(f1,f2,δt)

该子指纹由三部分构成:两个关键点的频率差δf和时间差δt。同时每个子指纹都有一个对应的时间,即,该关键点的时间,用以表示该子指纹出现的时刻。

音频指纹即为上述方法求出的子指纹集合。

需要注意的是,当待检索音频中含有的无声片段被去除部分时,该方法构造的音频指纹依旧能够进行检索,即无声片段不影响相似音频的匹配。

四、根据待检索音频的音频指纹进行音频检索,得到检索结果。

在本实施例中智能手机得到待检索音频的音频指纹后,可以在数据库中匹配相似音频。

其中,数据库中包含了音频指纹倒排列表。本实施例中,由于音乐数据库非常大,几乎所有的音频指纹都可能会出现,故可以直接分配一个大数组来存放所有的音频指纹,该音频指纹倒排列索引表的结构如图2c所示,其中,每一个音频指纹的位数是24位,则需要分配一个长度是224的数组,每一个音频指纹都指向一个倒排列表。该倒排列表中的每一个表项都是音频指纹对应的音乐数据,比如音乐名称、该音频指纹在该音乐中出现的时间等等。

除此之外,当音乐数据库较小时也可以使用哈希表的方式存放音频指纹。哈希表也叫散列表,类似地,是根据关键码值(keyvalue)而直接进行访问的数据结构,即,通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度,该映射函数被称为散列函数,存放记录的数组被称为散列表。

在本实施例中,匹配的音频指纹的方法如下:

a.提取待检索音频的音频指纹及其子指纹对应的时间信息;

b.对每一个子指纹都进行倒排索引表查找,获得该音频指纹对应的倒排列表;

c.在倒排列表中,将数据库中的每个音乐对应的时间和子指纹对应的时间相减,计算时间差,并将时间差保存在如图2d所示的数据结构中;

d.根据每个音乐中相同时间差的个数进行排序,并返回相同时间差的个数最多的音乐,将该音乐记为相似音频。

五、当检索结果未满足检索停止条件时,则对待检索音频的音频指纹进行更新,并返回执行根据待检索音频的音频指纹进行音频检索的步骤。

在本实施例中,当检索结果未满足检索停止条件,即循环次数不超过50次,则对待检索音频的音频指纹进行更新,并返回执行根据待检索音频的音频指纹进行音频检索的步骤。

在本实施例中,在构造音频指纹前将进行关键点的调音处理,经过多轮处理后,可以刚好与原始音频的音频指纹契合,使得可以根据生成的音频指纹找到与原始音频类似的相似音频。

其具体方法在步骤105中已有详细描述,故在此不做赘述。

六、当检索结果满足检索停止条件时,则停止检索,并输出检索结果。

在本实施例中,当检索结果满足检索停止条件,即未检索到相似音频且循环次数达到了50次,则不再对待检索音频的音频指纹进行更新并返回执行根据待检索音频的音频指纹进行音频检索的步骤,即停止检索。

输出的检索结果为“无相似音频”提示。

由上可知,本申请实施例可以获取待检索音频;对待检索音频进行声谱分析,得到待检索音频对应的整体声谱;对整体声谱进行音频指纹构造,得到待检索音频的音频指纹;根据待检索音频的音频指纹进行音频检索,得到检索结果;当检索结果未满足检索停止条件时,则对待检索音频的音频指纹进行更新,并返回执行根据待检索音频的音频指纹进行音频检索的步骤;当检索结果满足检索停止条件时,则停止检索,并输出检索结果。本申请实施例通过微调待检索音频关键点的频率和/或时间,根据微调后待检索音频关键点更新音频指纹,再通过更新后的音频指纹检索相似音频,使得变调和/或变速后的相似音频也可以被检索到,由此提升了音频检索的准确率。

为了更好地实施以上方法,本申请实施例还提供一种音频检索装置,该音频检索装置具体可以集成在电子设备中,该电子设备可以为终端、服务器、个人电脑等设备。

例如,如图3所示,该音频检索装置可以包括获取模块301、分析模块302、构造模块303、检索模块304、更新模块305以及输出模块306如下:

(一)获取模块301:

获取模块301,用于获取待检索音频。

(二)分析模块302:

分析模块302,用于对待检索音频进行声谱分析,得到待检索音频对应的整体声谱。

在一些实施例中,分析模块302具体用于:

对待检索音频进行时域分析,得到待检索音频对应的时域声谱。

在一些实施例中,分析模块302具体用于:

对待检索音频进行时域分析,得到待检索音频对应的时域声谱;

对待检索音频的时域声谱进行时频转换,得到待检索音频对应的频域声谱。

(三)构造模块303:

构造模块303,用于对整体声谱进行音频指纹构造,得到待检索音频的音频指纹。

在一些实施例中,构造模块303可以包括关键点子模块和构造子模块,如下:

关键点子模块,用于确定整体声谱上的关键点;

构造子模块,用于根据关键点进行音频指纹构造,得到待检索音频的音频指纹。

其中,构造子模块具体用于:

确定关键点对应的目标区域;

确定目标区域中除关键点之外的其它关键点;

基于关键点和其它关键点进行哈希计算,得到待检索音频的音频指纹。

(四)检索模块304:

检索模块304,用于根据待检索音频的音频指纹进行音频检索,得到检索结果。

其中,检索模块304具体用于:

获取数据库,其中,数据库中包括对象音频和对象音频的音频指纹;

将数据库中对象音频的音频指纹与待检索音频的音频指纹进行相似度计算,得到待检索音频与对象音频的相似度;

根据待检索音频与对象音频的相似度确定检索结果。

(五)更新模块305:

更新模块305,用于当检索结果未满足检索停止条件时,则对待检索音频的音频指纹进行更新,并触发检索模块根据待检索音频的音频指纹进行音频检索的步骤。

其中,更新模块305对待检索音频的音频指纹进行更新时具体用于:

确定整体声谱上的关键点;

对整体声谱上的关键点进行位置调整,得到调整后关键点;

根据调整后关键点进行音频指纹构造,以更新待检索音频的音频指纹。

(六)输出模块306:

输出模块306,用于当检索结果满足检索停止条件时,则停止检索,并输出检索结果。

具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。

由上可知,本申请实施例获取模块301可以获取待检索音频;分析模块302可以对待检索音频进行声谱分析,得到待检索音频对应的整体声谱;构造模块303可以对整体声谱进行音频指纹构造,得到待检索音频的音频指纹;检索模块304可以根据待检索音频的音频指纹进行音频检索,得到检索结果;更新模块305可以当检索结果未满足检索停止条件时,则对待检索音频的音频指纹进行更新,并触发检索模块根据待检索音频的音频指纹进行音频检索的步骤;输出模块306可以当检索结果满足检索停止条件时,则停止检索,并输出检索结果。在本申请中,可以不断地更新音频指纹并根据音频指纹进行音频检索,,使得变调和/或变速后的待检索音频也可以检索成功,由此提升了音频检索的准确率。

本申请实施例还提供一种终端,该终端可以是手机、平板电脑、微型处理盒子、无人机、或者音频采集设备等等。如图4所示,其示出了本申请实施例所涉及的终端的结构示意图,具体来讲:

该终端可以包括一个或者一个以上处理核心的处理器401、一个或一个以上计算机可读存储介质的存储器402、电源403和输入单元404等部件。本领域技术人员可以理解,图4中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:

处理器401是该终端的控制中心,利用各种接口和线路连接整个终端的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行终端的各种功能和处理数据,从而对终端进行整体监控。在一些实施例中,处理器401可包括一个或多个处理核心;在一些实施例中,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。

存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问。

终端还包括给各个部件供电的电源403,在一些实施例中,电源403可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源403还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。

该终端还可包括输入单元404,该输入单元404可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。

尽管未示出,终端还可以包括显示单元等,在此不再赘述。具体在本实施例中,终端中的处理器401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能,如下:

获取待检索音频;

对待检索音频进行声谱分析,得到待检索音频对应的整体声谱;

对整体声谱进行音频指纹构造,得到待检索音频的音频指纹;

根据待检索音频的音频指纹进行音频检索,得到检索结果;

当检索结果未满足检索停止条件时,则对待检索音频的音频指纹进行更新,并返回执行根据待检索音频的音频指纹进行音频检索的步骤;

当检索结果满足检索停止条件时,则停止检索,并输出检索结果。

以上各个操作的具体实施可参见前面的实施例,在此不再赘述。

由上可知,本申请实施例可以获取待检索音频;对待检索音频进行声谱分析,得到待检索音频对应的整体声谱;对整体声谱进行音频指纹构造,得到待检索音频的音频指纹;根据待检索音频的音频指纹进行音频检索,得到检索结果;当检索结果未满足检索停止条件时,则对待检索音频的音频指纹进行更新,并返回执行根据待检索音频的音频指纹进行音频检索的步骤;当检索结果满足检索停止条件时,则停止检索,并输出检索结果。在本申请中,可以不断地更新音频指纹并根据音频指纹进行音频检索,,使得变调和/或变速后的待检索音频也可以检索成功,由此提升了音频检索的准确率。

本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。

为此,本申请实施例提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本申请实施例所提供的任一种音频检索方法中的步骤。例如,该指令可以执行如下步骤:

获取待检索音频;

对待检索音频进行声谱分析,得到待检索音频对应的整体声谱;

对整体声谱进行音频指纹构造,得到待检索音频的音频指纹;

根据待检索音频的音频指纹进行音频检索,得到检索结果;

当检索结果未满足检索停止条件时,则对待检索音频的音频指纹进行更新,并返回执行根据待检索音频的音频指纹进行音频检索的步骤;

当检索结果满足检索停止条件时,则停止检索,并输出检索结果。

其中,该存储介质可以包括:只读存储器(rom,readonlymemory)、随机存取记忆体(ram,randomaccessmemory)、磁盘或光盘等。

由于该存储介质中所存储的指令,可以执行本申请实施例所提供的任一种音频检索方法中的步骤,因此,可以实现本申请实施例所提供的任一种音频检索方法所能实现的有益效果,详见前面的实施例,在此不再赘述。

以上对本申请实施例所提供的一种音频检索方法、装置、终端和存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1