一种音频指纹生成方法、设备及存储介质与流程

文档序号:18457996发布日期:2019-08-17 01:46阅读:181来源:国知局
一种音频指纹生成方法、设备及存储介质与流程

本申请涉及音频数据处理领域,尤其涉及一种音频指纹生成方法、设备及存储介质。



背景技术:

随着网络技术的发展,网络上承载了各种各样的网络资源,例如音频资源等。海量的音频资源在方便人们下载的同时,也面临版权保护和音频管理的问题。对上述问题可以采用音频指纹技术来进行解决,音频指纹技术指的是从音频中提取出音频的音频指纹的方法,音频指纹包含了音频的特征信息,可以作为音频的标识信息。通过比较音频之间的音频指纹来确定音频之间的相似度,从而可以快速搜索出相似音频,比如应用于听歌识曲等。

在实现本发明过程中,发明人发现使用现有技术提取音频指纹,当音频在曲调上有细微的变化时,便无法识别,例如翻唱音频中可能存在着走音情况等。总的来说,还缺少一种高效的音频指纹生成方法。



技术实现要素:

本申请实施例提供一种音频指纹生成方法,可以检测并修复音频中表现为短时高能量的噪声点。

第一方面,本申请实施例提供了一种音频指纹生成方法,该方法包括:

对目标音频进行降采样;

对降采样之后的目标音频进行频谱分析得到所述目标音频的频谱数据,并将所述目标音频的频谱数据组合为所述目标音频的音频图像,所述频谱数据为二维数据,所述音频图像为维度大于二维的多维数据;

调用深度学习网络对所述音频图像所包含的音频特征进行分析,得到所述目标音频的音频指纹,所述音频指纹为用于表示所述目标音频的标识信息的一维数据。

第二方面,本申请实施例提供了一种音频指纹生成设备,该音频指纹生成设备包括用于执行上述第一方面的音频指纹生成方法的单元,该音频指纹生成设备包括:

采样单元,用于对目标音频进行降采样;

降维单元,用于对降采样之后的目标音频进行频谱分析得到所述目标音频的频谱数据,并将所述目标音频的频谱数据组合为所述目标音频的音频图像,所述频谱数据为二维数据,所述音频图像为维度大于二维的多维数据;

分析单元,用于调用深度学习网络对所述音频图像所包含的音频特征进行分析,得到所述目标音频的音频指纹,所述音频指纹为用于表示所述目标音频的标识信息的一维数据。

第三方面,本申请实施例提供了一种音频指纹生成设备,包括处理器和存储器,所述处理器和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,用以执行如第一方面所述的方法

第四方面,本申请实施例提供了一种计算机可读存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行,用以执行如第一方面所述的方法。

本申请先通过对目标音频进行降采样,以减少目标音频的数据量,并对降采样之后的目标音频进行频谱分析得到的频谱数据进行组合得到该目标音频的音频图像,从而将原本高维的目标音频进行降维得到用于表示该目标音频的低维的音频图像,且降维的过程并不会改变目标音频本来所包含的特征,然后再调用深度学习网络分析音频图像中所包含的音频特征,从而得到目标音频的音频指纹,该音频指纹为用于表示目标音频的标识信息的一维数据。可见,本申请通过将目标音频进行降维,转换为类似于图像数据的音频图像,使得在后续可以利用图像处理的方式对该音频图像进行特征提取,得到音频的音频指纹,即采用深度学习网络对目标音频进行处理来更准确的提取出目标音频中包含的音频特征,即使目标音频中存在细小的变化也可以被检测出来。于是总的来说,本申请提供了一种高效的音频指纹生成方法。

附图说明

为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。

图1是本申请实施例提供的一种音频指纹生成的应用场景示意图;

图2是本申请实施例提供的一种音频指纹生成方法的示意流程图;

图3是本申请另一实施例提供的一种音频指纹生成方法的示意流程图;

图4是本申请实施例提供的一种深度学习网络的示意性结构图;

图5是本申请另一实施例提供的一种深度学习网络的示意性结构图;

图6是本申请实施例提供的一种深度学习网络的示意性网络构架图;

图7是本申请实施例提供的一种音频指纹生成设备的示意性框图;

图8是本申请实施例提供的一种音频指纹生成设备的结构性框图。

具体实施方式

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

本申请主要应用于音频指纹生成设备,该音频指纹生成设备可以是传统音频指纹生成设备或者本申请第三实施例和第四实施例所描述的音频指纹生成设备,本申请对此不做限制。当音频指纹生成设备与其他终端设备进行数据交互的时候,音频指纹生成设备和其他终端设备都按照预设格式进行对数据的特性进行记录并传送,其中,数据的特性包括时间、地点、类型等。其中,终端设备可以是任意具有数据收发功能及处理功能的设备,本申请对此不做限制。

音频指纹表示出了音频的特征信息,可以作为音频的标识信息,并应用于听歌识曲和歌曲抄袭判定等应用场景。提取音频的音频指纹的时候,可以先对音频进行频谱分析得到音频的频谱,然后提取音频的频谱的局部极值点,并将各个极值点组合得到的数据转换为哈希码,最后将哈希码作为音频的音频指纹。但该音频指纹提取的方法对细节要求非常严格,更适用于处理频谱变化不大的音频,应用于翻唱音频这样可能在曲调上有细微变化的音频时,无法识别出音频上的细微变化,处理效果不是很理想。而且由于提取的哈希码密度非常高,因此每个音频的哈希码数据量也很大。为了解决音频指纹提取不准确以及数据量大的问题,本申请提出了一种高效的音频指纹生成方法。

为了能够更好地理解本发明实施例,下面将结合图1,对应用本发明实施例的方法进行介绍,本发明实施例可以应用于音频指纹生成设备对目标音频进行处理以得到目标音频的音频指纹的场景中。

如图1所示,音频指纹生成设备接收得到目标音频之后对目标音频进行降维得到音频图像,然后再对上述音频图像进行特征分析,生成得到目标音频的音频指纹。可见,本申请首先采用了嵌入学习(embeddinglearning)的思想,来对目标音频进行降维,将目标音频复杂难以表达的特征映射为相对来说比较简洁的便于设备自动化处理的音频图像,从而在保留目标音频的特征的情况下,大大减少目标音频本来的数据量,使得后续对音频图像进行特征分析的过程中可以调用深度学习网络对音频图像进行深度学习,以得到更加准确的音频指纹。总的来说,本申请通过对音频进行降维和深度学习来提高指纹生成的效率,以及更加准确的对目标音频所包含的特征进行分析得到更加准确的音频指纹,该音频指纹可以更好的反映出目标音频的特征,区分开不同音频之间的不同之处。其中,目标音频的音频格式可以为任意格式,例如wav、音频格式mp3、音频格式flac中的任意一种,本申请对此不作限定。

具体的,上述音频指纹生成设备对目标音频进行降维得到音频图像指的是,先对目标音频进行降采样,然后对降采样之后的目标音频进行频谱分析得到二维的频谱数据,最后将该频谱数据组合得到音频图像,而该音频图像为维度大于二维的多维数据。具体的,上述对降采样之后的目标音频进行频谱分析指的是,对降采样之后的目标音频进行分帧,得到多个音频帧,然后分别对该多个音频帧中的每个音频帧进行频谱分析,得到每个音频帧的频谱数据,相应的,上述对频谱数据进行组合得到音频图像指的是,组合该多个音频帧的频谱数据,得到目标音频的音频图像。

需要说明的是,降采样指的是在保证音频不会混叠的情况下以较低速率对音频进行抽取,以降低音频的采样速率,从而减少音频的总数据量;分帧指的是将音频分成多段长度固定的音频,每段音频被称为一个音频帧,具体的,在对音频进行分帧的时候,每移动一个预设的帧移,也即是步长便截取一段预设长度的音频作为一个音频帧,直到将整个音频分成多个音频帧,其中,该预设长度被称为帧长,帧长用一个数值描述,代表了每个音频帧包含的采样点的个数;频谱分析指的是对上述音频帧进行短时傅里叶变换,以获得每个音频帧的频谱数据,其中,除了短时傅里叶变换,还可以采用小波,wigner分布等时频域分析方法;组合指的是,将每个音频帧的频谱数据进行组合得到维度大于二维的目标音频的音频图像。

还需要说明的是,采样频率samplerate(也被称为采样率)指的是每秒从连续信号中提取并组成离散信号的采样个数,单位为赫兹(hz)。一般来说,采样率越大,音频的数据越庞大,会导致后续数据处理的时候处理时间长和费力,为了减小数据量以及方便之后对音频信号的处理,需要先对搜集的音频信号进行降采样处理。例如将原本为48000hz或者44100hz的目标音频降采样到16000hz。

还需要说明的是,本申请之所以对音频分帧之后进行短时傅里叶变换等时频域分析,而不对整个音频进行傅里叶变换是因为,对整个音频进行傅里叶变换之后得到的频谱数据不能反映音频随时间的变化。具体的,音频在一段时间内变换剧烈,而一般的频谱分析方法都是针对于平稳和变化少的信号,即信号的统计特性不随时间变化,于是整段较长的音频则不便于进行频谱分析,于是本申请将音频分为多个长度较小的音频帧,因为音频帧足够小,于是一个音频帧内的信号可以看作是没有变化且平稳的,为了对较小的音频帧进行频谱分析,本申请采用了短时傅里叶来对每个音频帧进行频谱分析,这是因为短时傅里叶变换(stft,short-timefouriertransform,或short-termfouriertransform)可以确定出时变信号其局部区域正弦波的频率与相位。

可见,本申请通过对降采样之后的目标音频进行分帧和短时傅里叶变换,除了可以便于从频域处理和提高处理效率(较短的音频信号相比于较长的音频信息来说,频谱分析更加简单,速度也更快),还可以保留目标音频的频谱数据随时间变化的信息(通过傅里叶变换得到的频谱数据虽然可以看出整个音频的频率成分,但是会丢失音频的频率成分在整个音频的时域分布信息),于是利用本申请对目标音频进行处理,不仅可以对目标音频进行降维,减少目标音频的数据的同时,还可以尽可能的保留住目标音频音频特征,相比于其他计算音频指纹的方法来说,本申请的方法更加高效,得到的音频指纹也更加准确。

上述音频指纹生成模块对上述音频图像进行特征分析,生成得到目标音频的音频指纹指的是,调用深度学习网络对音频图像所包含的音频特征进行分析,得到目标音频的音频指纹,音频指纹为用于表示目标音频的标识信息的一维数据。

具体的,如图4所示,上述深度学习网络包括特征提取模块和特征编码模块,上述调用深度学习网络对所述音频图像所包含的音频特征进行分析指的是,调用上述特征提取模块提取上述音频图像所包含的多个音频特征,然后调用特征编码模块对上述多个音频特征进行编码,得到上述目标音频的音频指纹。

更具体的,如图5所示,对上述图4所描述的深度学习网络进行了更详细的说明,上述特征编码模块包括分组子模块以及编码子模块,上述调用特征编码模块对多个音频特征进行编码,得到目标音频的音频指纹指的是,调用分组子模块将多个音频特征分为预设组的音频特征,然后调用编码子模块对该预设组的音频特征中的每组音频特征分别进行编码,得到每组音频特征的音频指纹,并将每组音频特征的音频指纹组合在一起得到目标音频的音频指纹。

更具体的,如图6所示,对上述图5所描述的深度学习网络进行了更详细的说明,特征提取模块包括至少一个卷积层,分组子模块包括降维层和分组层,编码子模块包括至少一个全连接层,相应的,上述调用深度学习网络对音频图像所包含的音频特征进行分析指的是,调用至少一个卷积层对音频图像进行特征提取,得到用于表示目标音频的多个音频特征的音频数据,然后调用降维层将上述音频数据转换为特征数据,特征数据为一维数据,分组层将特征数据分为预设组的特征数据,最后调用至少一个全连接层分别对上述预设组的特征数据中的每组特征数据进行编码,得到每组特征数据的编码,并将每组特征数据的编码组合在一起,得到目标音频的音频指纹,其中,音频指纹为预设长度的一维数据,预设组和预设长度分别所代表的数值相等。

总的来说,上述将音频的频谱数据的多个极值点的哈希值作为音频的音频指纹的方法,由于只保留了频谱数据中的极值点,于是舍弃了大量的音频数据,当音频有比较细小的变化的时候,便无法有效的识别出音频,而本申请没有将音频的频谱数据进行删减,而是将音频的二维频谱数据转换为图像数据,并利用处理功能强大的深度学习网络来对该图像数据进行处理,不仅综合考虑到了目标音频全部频谱数据,而且能更好的对频谱数据中包含的频谱特征进行识别,从而生成的用于标识目标音频的音频指纹也更加准确,能更好的区分开不同音频,即使是微小的差别也能凸现出来,从而在歌曲识别和歌曲抄袭判定中提高识别和判定的效率和准确度,即使是翻唱相同歌曲的翻唱音频之间这样差别细微的音频,也可以识别出该多个音频之间的不同,此外,通过本申请的音频指纹生成方法提取出来音频的音频指纹最终是一个长度固定且较短的一维数据,该一维数据的数据精炼且数据量小,于是相对于上述另一种音频指纹为哈希码的音频指纹来说,用于表示音频指纹的数据量大大缩减。总的来说,本申请提供了一种更加高效的音频指纹生成方法,利用本申请的音频指纹生成方法所得到的音频指纹不仅能够更准确的表示出音频的特征,表后出音频指纹的细微特征,以有效区分开具有细微差别的音频,对细节稍微变化的歌曲同样可以有很好的匹配度,符合人的听感特性,对听歌识曲的体验会有很大的提升,而且于是通过本申请的方法,不论音频资源经过一定程度的什么变形操作,如采样率变化,噪声干扰,音频数据压缩等,通过音频指纹技术都能正确地找到音质好的源音频文件。于是本申请提供了一种高效且准确的音频指纹生成方法。

需要说明的是,图1、图4、图5和图6中所示内容为一种举例,并不构成对本发明实施例的限定,因为本申请不对深度学习网络中各个模块或者子模块中具体的卷积层、降维层、分组层和全连接层等进行限定。例如特征生成模块中的卷积层可以是任意多层,目标音频除了可以是直接录音得到的,也可以是通过互联网接收等任意方式得到的,而且对目标音频进行处理的音频指纹生成设备除了可以是手机,还可以是电脑,服务器等任意终端设备。

参见图2,是本申请实施例提供一种音频指纹生成方法的示意流程图,如图2所示音频指纹生成方法可包括:

201:对目标音频进行降采样。

在本申请实施例中,获取目标音频之后,对该目标音频进行降采样,即以较低速率对目标音频进行抽取,以降低目标音频的采样速率,从而减少目标音频总的数据量。其中,目标音频的音频格式可以为任意格式,例如wav、音频格式mp3、音频格式flac中的任意一种,本申请对此不作限定。

需要说明的是,上述降采样是在保证目标音频不会混叠的情况下进行的,即降采样的频率满足奈奎斯特定理。

举例来说,本申请可以采用16khz的频率对目标音频进行采样,经过测试在本方案中该采样频率表现最好,因为该采样频率不仅符合奈奎斯特采样理论以避免目标音频发生混叠,还保证了目标音频不会过小而导致失真。

还需要说明的是,上述目标音频的格式、大小、声道数不限,格式为音频格式wav、音频格式mp3、音频格式flac中的任意一种,声道为单声道、双声道和多声道中的任意一种,本申请实施例对此不作限定。

202:对降采样之后的目标音频进行频谱分析得到目标音频的频谱数据,并将目标音频的频谱数据组合为目标音频的音频图像。

在本申请实施例中,对上述降采样之后的目标音频进行降维,以将音频数据转换为图像数据,具体的,对上述降采样之后的目标音频进行频谱分析得到目标音频的频谱数据,该频谱数据为二维数据,然后将该频谱数据进行组合得到目标音频的音频图像,该音频图像为维度大于二维的多维数据。

在一种实施中,上述对降采样之后的目标音频进行降维指的是,对降采样之后的目标音频进行分帧,得到多个音频帧,然后分别对该多个音频帧中的每个音频帧进行频谱分析,得到每个音频帧的频谱数据,最后组合每个音频帧的频谱数据,得到上述目标音频的音频图像。

在本申请实施例中,先对上述降采样之后的目标音频进行分帧,即将目标音频划分为预设长度的音频段,每段音频段包含固定个数的采样点,分帧时在目标音频上,每移动一个预设的步长也即是帧移,便在目标音频上截取一段预设长度的音频段,从而得到一个音频帧;在分帧得到多个音频帧之后,采用短时傅里叶变换等时频分析方法对每个音频帧进行频谱分析,得到每个音频帧的频谱数据;最后将上述每个音频帧的频谱数据进行组合,得到目标音频的音频图像,其中,由于频谱数据是二维数据,音频图像是维度大于二维的多维数据,具体的,上述组合每个音频帧的频谱数据得到音频图像指的是,先将上述多个音频帧的频谱数据分为至少一组,每组包含预设个数的音频帧,然后将每组的音频帧分别组合在一起,得到至少一个图像,该图像数据为维度大于二维的多维数据,最后将该至少一个图像集中在一起便得到目标音频的音频图像。其中,采样频率可以表示在一秒内的采样点个数。

举例来说,上述将目标音频统一降采样到16khz之后,将降采样之后的目标音频以步长512进行分帧得到帧长都为1024的多个音频帧,然后对每个音频帧进行短时傅立叶变换得到每个音频帧的频谱数据,最后将该多个音频帧的频谱数据按照2.048秒即64帧为一个图像进行组合得到至少一个图像,该至少一个图像的集合即目标音频的音频图像。

需要说明的是,分帧指的是将待处理的音频分成多段长度固定的音频,每段音频被称为一个音频帧,在本申请中待处理的音频即是降采样之后的目标音频,具体的,在对目标音频进行分帧的时候,每移动一个预设的帧移,也即是步长便截取一段预设长度的音频作为一个音频帧,直到将整个目标音频分成多个音频帧,其中,该预设长度被称为帧长,帧长用一个数值描述,代表了每个音频帧包含的采样点的个数

还需要说明的是,本申请除了采用短时傅里叶变换来对音频帧进行频谱分析之外,还可以采用例如小波,wigner分布等其他时频域分析方法,本申请实施例对此不做限定。

还需要说明的是,根据上述采样频率以及音频帧的帧长可以计算得到上述音频帧的播放时间为0.032秒,即32毫秒。本申请所采用的采样频率、帧长以及步长等参数,都是经过测验之后得到的最佳数值。以帧长为例进行说明,从宏观上来看,音频信号是不平稳的,假如音频信号是一段对话录音,随着人们的嘴巴一动,音频信号的特征就变了,但是从微观上来看,在比较短的时间内,嘴巴动得是没有那么快的,于是只要音频帧的长度足够小,那么该音频帧就可以看作平稳的,也就可以进行傅里叶变换。因此本申请实施例需要对目标音频进行分帧,而分帧之后得到的音频帧,一方面不仅需要足够小从而可以被视为是平稳的信号,另一方面,不能过于小。在实践中,上述对音频帧的长度的要求具体表现为,一方面,帧长应当小于一个音素的长度,于是帧长需要小于50毫秒,另一方面,帧长还应当满足傅里叶变换的分析的要求而包含足够多的振动周期,于是帧长需要大于20毫秒。于是本申请实施例将音频帧的帧长设置为32毫秒,该数值不仅满足上述两个要求,还可以方便对音频帧的后续的处理,因为在数学领域内这个数被视为是较整的数,在计算的时候相对于其他20、30、40或者50等数值来说,计算更加简便,从而提高了计算的速度以及后续生成音频指纹的速度。

203:调用深度学习网络对上述音频图像所包含的音频特征进行分析,得到目标音频的音频指纹。

在本申请实施例中,在得到目标音频的音频图像之后,调用深度学习网络对该音频图像进行处理,以对该音频图像的音频特征进行分析,得到可以作为目标音频的标识信息的音频指纹,该音频指纹为一维数据。其中,本申请中的深度学习网络利用神经网络来实现,神经网络包含多层感知器,于是可以对输入数据的特定特征进行感知和检测,并通过组合低层特征形成更加抽象的高层特征,以发现输入数据的分布式特征表示。神经网络有例如,卷积神经网络(cnn,convolutionalneuralnetworks),循环神经网络(cnn,recurrentneuralnetwork)等。

举例来说,获取上述步骤降维得到的音频图像,该音频图像包含至少一个图像,在将音频图像输入到上述深度学习网络的时候,依次将每个图像以1.024秒重叠的方式输入到深度学习网络,结合上述举例中设定的采样频率、帧长和步长等参数的具体数值,得知音频图像为(-1,513,64,1)维的张量。然后利用深度学习网络对该图像数据进行分析,得到一个表现为n维向量的一维数据,该一维数据用于表示上述目标音频的标识信息。

在一种实施中,如图4所示,上述深度学习网络包括特征提取模块和特征编码模块。相应的,上述调用深度学习网络对音频图像所包含的音频特征进行分析指的是,先调用特征提取模块提取音频图像所包含的多个音频特征,然后调用特征编码模块对上述多个音频特征进行编码,得到目标音频的音频指纹。

具体的,上述特征提取模块包括至少一个卷积层,上述特征融合模块包括至少一个全连接层。相应的,上述调用深度学习网络对上述音频图像所包含的音频特征进行分析指的是,首先调用上述至少一个卷积层对上述音频图像进行特征提取,得到用于表示上述目标音频的多个音频特征的音频数据,然后调用上述至少一个全连接层将上述音频数据编码为上述目标音频的音频指纹,其中,音频指纹为预设长度的一维数据。在一种实施中,卷积层和全连接层分别使用的激活函数是elu激活函数和sigmod激活函数。

本申请实施例提出了上述深度学习网络的一种构架。具体的,上述深度学习网络的特征提取模块包括至少一个卷积层,于是当调用上述特征提取模块来对音频图像进行处理的时候,实际上是调用了至少一个卷积层来实现了对音频图像的特诊提取,从而得到用于表示目标音频的多个音频特征的音频数据,深度学习网络的特征融合模块包含至少一个全连接层来实现对音频数据进行编码,从而得到用以代表上述音频数据中所包含的多个音频特征的音频指纹。

需要说明的是,卷积层(convolutionallayer)用于提取出音频图像映射到隐层特征空间,也即是对音频图像中的隐含的音频特征进行提取,全连接层(fullyconnectedlayers,fc),用于将之前提取到的音频特征映射到样本标记空间,也即是将之前提取出来的特征进行整合,并以较低维度的数据进行表示,需要注意的是,由于全连接层可以对音频特征进行整合并以较低维度的数据(即音频指纹)进行表示,于是上述调用全连接层对卷积层处理得到的音频数据进行处理的过程可以是视为一种编码过程。由此可见,本申请的深度学习网络可以采用至少一个卷积层和至少一个全连接层,来分别实现特征提取和特征编码。

在一种实施中,上述特征提取中的至少一个卷积层中的每个卷积层都包含两个及两个以上的卷积核。举例来说,第一卷积层包含一个大小为3×3的第一卷积核,第二卷积层包含有一个大小为1×3的第二卷积核和一个大小为3×1的第三卷积核,虽然第一卷积核可以拆分得到第二卷积核和第三卷积核,且第一卷积层和第二卷积层的特征提取能力差不多,但是在实际的运算中,第二卷积层比第一卷积层所需要的乘法计算的次数更少,于是大大的提高计算速度和节约计算资源。而且随着卷积层处理的数据张量的张量维度的增大,采用多个卷积核比采用一个卷积核的优势更明显,所需的运算更少,计算速度更快。

举例来说,若采用3×3的第一卷积核对一个5x5个像素的图像进行valid卷积,相当于生成的3×3个像素的图像中,每一个像素都需要经历3x3次乘法,那么一共是81次;若采用1×3的第二卷积核先对该5x5个像素的图像进行valid卷积,得到5×3个像素的图像,该5×3个像素的图像中的每一个像素都经历了1×3次乘法,那么一共进行了45次乘法,然后利用3×1的第三卷积核对该5x3个像素的图像进行valid卷积,得到3×3个像素的图像,该3×3个像素的图像中的每一个像素都经历了3×1次乘法,那么一共进行了27次乘法,于是一共是72次乘法。可见,采用一个3×3的卷积核所需要计算次数,大于采用一个3×1的卷积核和一个1×3的卷积核的计算次数多。

在一种实施中,提供另一种可以对上述音频图像进行处理的深度学习网络,如图5所示,上述深度学习网络包括特征提取模块和特征编码模块,特征编码模块包括分组子模块以及编码子模块。上述调用深度学习网络对音频图像所包含的音频特征进行分析指的是,先调用特征提取模块提取音频图像所包含的多个音频特征,然后调用特征编码模块中的分组子模块将上述多个音频特征分为预设组的音频特征,最后调用特征编码模块中的编码子模块对上述预设组的音频特征中的每组音频特征分别进行编码,得到每组音频特征的音频指纹,并将该每组音频特征的音频指纹组合在一起得到目标音频的音频指纹。

需要说明的是,本实施相比于上一实施,将上述特征编码模块细分为了分组子模块以及编码子模块,分组子模块用于将特征提取模块提取得到的多个音频特征划分为了多组音频特征,然后编码子模块分别对该多组音频特征分别进行编码,从而得到目标音频的音频特征。由此可见,在本实施中,主要是对音频特征进行了分组,并分别对各组音频特征进行编码,这样的好处在于,可以保留音频特征更多的空间位置,因为不分组直接对多个音频特征进行编码,那么编码得到的音频指纹反映的是目标音频整体的特征,如果将多个音频特征分组,那么相当于将目标音频分为多段,一段音频的音频特征被分为一组,于是在对分组之后的多组音频特征进行编码之后得到音频指纹中每个数据反映了目标音频的一段音频的特征。可见,在采用了本实施的深度学习网络而得到的音频指纹包含了目标音频的音频特征的空间,通过对比不同音频的音频指纹,不仅可以比较出音频不一样,而且可以比较出音频之间不同的特征所在的位置,有利于实现更详细的音频对比。

具体的,如图6所示提供了图5中的深度学习网络的一种网络架构,上述特征提取模块包括至少一个卷积层,上述特征编码模块的分组子模块包括降维层和分组层,上述特征编码模块的编码子模块包括至少一个全连接层。上述调用深度学习网络对音频图像所包含的音频特征进行分析指的是,调用特征提取模块中的至少一个卷积层对所述音频图像进行特征提取,得到用于表示目标音频的多个音频特征的音频数据,然后调用特征编码模块的降维层将所述音频数据转换为特征数据,所述特征数据为一维数据,所述分组层将所述特征数据分为预设组的特征数据,最后调用特征编码模块中的至少一个全连接层分别对所述预设组的特征数据中的每组特征数据进行编码,得到所述每组特征数据的编码;将所述每组特征数据的编码组合在一起,得到所述目标音频的音频指纹,所述音频指纹为预设长度的一维数据,所述预设组和预设长度分别所代表的数值相等。

需要说明的是,本实施将特征编码模块中的分组子模块的功能以降维层和分组层实现,而特征编码模块中的编码子模块以全连接层实现。其中,降维层用于对用以消除音频数据的多维空间特征,直接将音频数据中的每个数据顺序提取出来,得到一维数据(即特征数据),然后分组层特征通过将该一维数据划分为预设组的特征数据,使得每组特征数据用于表示目标音频的至少一个音频特征,最后全连接层以一个组的特征数据为单元进行编码,从而得到长度与预设组一样的音频指纹。

可见,对比图4对应的实施通过至少一个全连接层来实现特征编码,本实施通过先利用降维层和分组层来将多个音频特征分为多组音频特征,然后利用全连接层分别对该多组音频特诊进行编码,同样可以实现特征编码,得到可以作为目标音频的标识信息的音频指纹。并且如上所描述的,通过调用本实施的深度学习网络而得到的音频指纹保留了音频特征在目标音频中的位置,优于通过调用图4对应的实施的深度学习网络而得到的音频指纹,于是本实施提供了一种更加高效和准确的音频指纹生成方法。

在一种实施例中,上述特征提取中的至少一个卷积层中的每个卷积层都包含两个及两个以上的卷积核。为了达到同样的特征提取效果,采用多个卷积层比采用一个卷积层的卷积层所需要的乘法计算的次数更少,有着更高的计算速度和需要更少的计算资源,而且随着卷积层处理的数据张量的张量维度的增大,采用多个卷积核比采用一个卷积核的优势更明显,具体原因与在图4所对应的实施所描述的原因一致,在此不再赘述。

需要说明的是,本申请对特征提取模块包含的卷积层的层数,以及不作限定,卷积层用于提取音频图像的不同特征,随着层数的增加,能够提取音频图像的更多更准确且更高层次的特征。具体的,低层的卷积层可能只能提取一些低级的特征如边缘、线条和角等层级,高层的卷积层能从低级特征中迭代提取更复杂的特征,假设上述特征提取单元包含三层卷积层,第一层卷积层用于提取出音频图像的低层次的特征,第二层卷积层用于在低层次的特征中迭代提取出中层次的特征,第三层卷积层用于在中层次的特征中迭代提取出高层次的特征。相应的,本申请实施例中的深度学习网络中可以采用至少一个全连接层,具体原因与上述采用至少一个卷积层的原因类似,在此不再赘述。

在一种实施中,在调用深度学习网络对上述音频图像进行处理之前,先构建上述深度学习网络。具体的,先构建深度学习网络框架,然后获取训练样本,最后利用训练样本对上述深度学习网络框架进行训练,得到深度学习网络。其中,训练样本包括音频信号的频谱数据以及音频指纹。

在本申请实施例中,首先构建深度学习网络的构架,例如若干层神经网络的组成,该神经网络例如有卷积层、池化层、全连接层和/或激活函数层,其中,卷积层可以对输入的数据进行特征提取,池化可以采用最大池化方法或者平均池化方法来简化数据,全连接层用于对输入数据进行整合或者降维,激活函数层可以引入非线性因素提高深度学习网络解决非线性问题的能力。

在深度学习网络构建好了之后,向该深度学习网络输入大量的训练样本,从而对深度学习网络进行训练,通过训练深度学习网络中的参数不断被修改和优化,使得深度学习网络能准确提取出作为目标音频的标识信息的音频指纹。

需要说明的是,训练样本包括不计数量的多个频谱数据以及音频指纹,即训练集(trainingset)。上述利用训练样本对深度网络进行训练指的是将训练样本中的频谱数据输入到网络中,利用损失函数计算网络的实际输出(深度学习网络处理频谱数据得到的音频指纹)与期望输出(训练样本中的音频指纹)间的差别,然后利用优化算法来调整深度学习网络中的参数,从而优化上述深度学习网络。其中,损失函数包括dice损失函数、jaccard损失函数、回归损失函数、交叉熵函数和logloss函数等,优化函数包括反向传播(back-propagation)算法等。在一种实施中,上述损失函数为三重损失函数(tripletlossfunction)。

本申请实施例先通过对目标音频进行降采样,以减少目标音频的数据量,并对降采样之后的目标音频进行频谱分析得到的频谱数据进行组合得到该目标音频的音频图像,从而将原本高维的目标音频进行降维得到用于表示该目标音频的低维的音频图像,且降维的过程并不会改变目标音频本来所包含的特征,然后再调用深度学习网络分析音频图像中所包含的音频特征,从而得到目标音频的音频指纹,该音频指纹为用于表示目标音频的标识信息的一维数据。可见,本申请实施例通过将目标音频进行降维,转换为类似于图像数据的音频图像,使得在后续可以利用图像处理的方式对该音频图像进行特征提取,得到音频的音频指纹,即采用深度学习网络对目标音频进行处理来更准确的提取出目标音频中包含的音频特征,即使目标音频中存在细小的变化也可以被检测出来。于是总的来说,本申请实施例提供了一种高效的音频指纹生成方法。

参见图3,是本申请实施例提供另一种音频指纹生成方法的示意流程图,如图3所示音频指纹生成方法可包括:

301:对目标音频进行降采样。

302:对降采样之后的目标音频进行分帧,得到多个音频帧。

在本申请实施例中,对上述降采样之后的目标音频进行分帧,即将目标音频划分为预设长度的音频段,每段音频段包含固定个数的采样点,分帧时在目标音频上,每移动一个预设的步长也即是帧移,便在目标音频上截取一段预设长度的音频段,从而得到一个音频帧。

举例来说,上述将目标音频统一降采样到16khz之后,将降采样之后的目标音频以步长512进行分帧得到帧长都为1024的多个音频帧。

需要说明的是,分帧指的是将待处理的音频分成多段长度固定的音频,每段音频被称为一个音频帧,在本申请中待处理的音频即是降采样之后的目标音频,具体的,在对目标音频进行分帧的时候,每移动一个预设的帧移,也即是步长便截取一段预设长度的音频作为一个音频帧,直到将整个目标音频分成多个音频帧,其中,该预设长度被称为帧长,帧长用一个数值描述,代表了每个音频帧包含的采样点的个数

303:分别对上述多个音频帧中的每个音频帧进行频谱分析,得到每个音频帧的频谱数据,并组合每个音频帧的频谱数据,得到目标音频的音频图像。

在本申请实施例中,在上述步骤中分帧得到多个音频帧之后,采用短时傅里叶变换等时频分析方法对每个音频帧进行频谱分析,得到每个音频帧的频谱数据,并将上述每个音频帧的频谱数据进行组合,得到目标音频的音频图像,其中,由于频谱数据是二维数据,音频图像是维度大于二维的多维数据,具体的,上述组合每个音频帧的频谱数据得到音频图像指的是,先将上述多个音频帧的频谱数据分为至少一组,每组包含预设个数的音频帧,然后将每组的音频帧分别组合在一起,得到至少一个图像,该图像数据为维度大于二维的多维数据,最后将该至少一个图像集中在一起便得到目标音频的音频图像。其中,采样频率可以表示在一秒内的采样点个数。

举例来说,上述将目标音频统一降采样到16khz之后,将降采样之后的目标音频以步长512进行分帧得到帧长都为1024的多个音频帧,然后对每个音频帧进行短时傅立叶变换得到每个音频帧的频谱数据,最后将该多个音频帧的频谱数据按照2.048秒即64帧为一个图像进行组合得到至少一个图像,该至少一个图像的集合即目标音频的音频图像。

需要说明的是,本申请除了采用短时傅里叶变换来对音频帧进行频谱分析之外,还可以采用例如小波,wigner分布等其他时频域分析方法,本申请实施例对此不做限定。

还需要说明的是,根据上述采样频率以及音频帧的帧长可以计算得到上述音频帧的播放时间为0.032秒,即32毫秒。本申请所采用的采样频率、帧长以及步长等参数,都是经过测验之后得到的最佳数值。以帧长为例进行说明,从宏观上来看,音频信号是不平稳的,假如音频信号是一段对话录音,随着人们的嘴巴一动,音频信号的特征就变了,但是从微观上来看,在比较短的时间内,嘴巴动得是没有那么快的,于是只要音频帧的长度足够小,那么该音频帧就可以看作平稳的,也就可以进行傅里叶变换。因此本申请实施例需要对目标音频进行分帧,而分帧之后得到的音频帧,一方面不仅需要足够小从而可以被视为是平稳的信号,另一方面,不能过于小。在实践中,上述对音频帧的长度的要求具体表现为,一方面,帧长应当小于一个音素的长度,于是帧长需要小于50毫秒,另一方面,帧长还应当满足傅里叶变换的分析的要求而包含足够多的振动周期,于是帧长需要大于20毫秒。于是本申请实施例将音频帧的帧长设置为32毫秒,该数值不仅满足上述两个要求,还可以方便对音频帧的后续的处理,因为在数学领域内这个数被视为是较整的数,在计算的时候相对于其他20、30、40或者50等数值来说,计算更加简便,从而提高了计算的速度以及后续生成音频指纹的速度。

304:调用深度学习网络中的特征提取模块提取上述音频图像所包含的多个音频特征。

305:调用上述深度学习网络中的分组子模块将上述多个音频特征分为预设组的音频特征。

306:调用上述深度学习网络中的编码子模块对上述预设组的音频特征中的每组音频特征分别进行编码,得到每组音频特征的音频指纹,并将每组音频特征的音频指纹组合在一起得到目标音频的音频指纹。

接下来,本申请实施例将对步骤304到步骤306进行说明。在本申请实施例中,在得到目标音频的音频图像之后,调用深度学习网络对该音频图像进行处理,以对该音频图像的音频特征进行分析,得到可以作为目标音频的标识信息的音频指纹,该音频指纹为一维数据。具体的,如图5所示,上述深度学习网络包括特征提取模块和特征编码模块,特征编码模块包括分组子模块以及编码子模块,当调用深度学习网络对用于图像进行处理的时候,先调用特征提取模块提取音频图像所包含的多个音频特征,然后调用特征编码模块中的分组子模块将上述多个音频特征分为预设组的音频特征,最后调用特征编码模块中的编码子模块对上述预设组的音频特征中的每组音频特征分别进行编码,得到每组音频特征的音频指纹,并将该每组音频特征的音频指纹组合在一起得到目标音频的音频指纹。

具体的,如图6所示提供了图5中的深度学习网络的一种网络架构,上述特征提取模块包括至少一个卷积层,上述特征编码模块的分组子模块包括降维层和分组层,上述特征编码模块的编码子模块包括至少一个全连接层。上述调用深度学习网络对音频图像所包含的音频特征进行分析指的是,调用特征提取模块中的至少一个卷积层对所述音频图像进行特征提取,得到用于表示目标音频的多个音频特征的音频数据,然后调用特征编码模块的降维层将所述音频数据转换为特征数据,所述特征数据为一维数据,所述分组层将所述特征数据分为预设组的特征数据,最后调用特征编码模块中的至少一个全连接层分别对所述预设组的特征数据中的每组特征数据进行编码,得到所述每组特征数据的编码;将所述每组特征数据的编码组合在一起,得到所述目标音频的音频指纹,所述音频指纹为预设长度的一维数据,所述预设组和预设长度分别所代表的数值相等。其中,卷积层和全连接层分别使用的激活函数是elu激活函数和sigmod激活函数。

需要说明的是,卷积层(convolutionallayer)用于提取出音频图像映射到隐层特征空间,也即是对音频图像中的隐含的音频特征进行提取,降维层用于对用以消除音频数据的多维空间特征,直接将音频数据中的每个数据顺序提取出来,得到一维数据(即特征数据),然后分组层特征通过将该一维数据划分为预设组的特征数据,使得每组特征数据用于表示目标音频的至少一个音频特征,全连接层(fullyconnectedlayers,fc),用于将之前提取到的音频特征映射到样本标记空间,也即是将之前提取出来的特征进行整合,并以较低维度的数据进行表示,需要注意的是,由于全连接层可以对音频特征进行整合并以较低维度的数据(即音频指纹)进行表示,于是上述调用全连接层对卷积层处理得到的音频数据进行处理的过程可以是视为一种编码过程。由此可见,本申请的深度学习网络可以采用至少一个卷积层来实现特征提取,采用降维层和分组层进行特征分组,采用至少一个全连接层来分别实现特征编码。

可见,本申请在对音频特征进行编码得到音频指纹之前,先对音频特征进行分组并分别进行编码,这样的好处在于,可以保留音频特征更多的空间位置,因为不分组直接对多个音频特征进行编码,那么编码得到的音频指纹反映的是目标音频整体的特征,如果将多个音频特征分组,那么相当于将目标音频分为多段,一段音频的音频特征被分为一组,于是在对分组之后的多组音频特征进行编码之后得到音频指纹中每个数据反映了目标音频的一段音频的特征。可见,在采用了本实施的深度学习网络而得到的音频指纹包含了目标音频的音频特征的空间,通过对比不同音频的音频指纹,不仅可以比较出音频不一样,而且可以比较出音频之间不同的特征所在的位置,有利于实现更详细的音频对比。

在一种实施中,上述特征提取中的至少一个卷积层中的每个卷积层都包含两个及两个以上的卷积核。举例来说,第一卷积层包含一个大小为3×3的第一卷积核,第二卷积层包含有一个大小为1×3的第二卷积核和一个大小为3×1的第三卷积核,虽然第一卷积核可以拆分得到第二卷积核和第三卷积核,且第一卷积层和第二卷积层的特征提取能力差不多,但是在实际的运算中,第二卷积层比第一卷积层所需要的乘法计算的次数更少,于是大大的提高计算速度和节约计算资源。而且随着卷积层处理的数据张量的张量维度的增大,采用多个卷积核比采用一个卷积核的优势更明显,所需的运算更少,计算速度更快。

举例来说,若采用3×3的第一卷积核对一个5x5个像素的图像进行valid卷积,相当于生成的3×3个像素的图像中,每一个像素都需要经历3x3次乘法,那么一共是81次;若采用1×3的第二卷积核先对该5x5个像素的图像进行valid卷积,得到5×3个像素的图像,该5×3个像素的图像中的每一个像素都经历了1×3次乘法,那么一共进行了45次乘法,然后利用3×1的第三卷积核对该5x3个像素的图像进行valid卷积,得到3×3个像素的图像,该3×3个像素的图像中的每一个像素都经历了3×1次乘法,那么一共进行了27次乘法,于是一共是72次乘法。可见,采用一个3×3的卷积核所需要计算次数,大于采用一个3×1的卷积核和一个1×3的卷积核的计算次数多。

在一种实施例中,上述特征提取中的至少一个卷积层中的每个卷积层都包含两个及两个以上的卷积核。为了达到同样的特征提取效果,采用多个卷积层比采用一个卷积层的卷积层所需要的乘法计算的次数更少,有着更高的计算速度和需要更少的计算资源,而且随着卷积层处理的数据张量的张量维度的增大,采用多个卷积核比采用一个卷积核的优势更明显,具体原因与在图4所对应的实施所描述的原因一致,在此不再赘述。

需要说明的是,本申请对特征提取模块包含的卷积层的层数,以及不作限定,卷积层用于提取音频图像的不同特征,随着层数的增加,能够提取音频图像的更多更准确且更高层次的特征。具体的,低层的卷积层可能只能提取一些低级的特征如边缘、线条和角等层级,高层的卷积层能从低级特征中迭代提取更复杂的特征,假设上述特征提取单元包含三层卷积层,第一层卷积层用于提取出音频图像的低层次的特征,第二层卷积层用于在低层次的特征中迭代提取出中层次的特征,第三层卷积层用于在中层次的特征中迭代提取出高层次的特征。相应的,本申请实施例中的深度学习网络中可以采用至少一个全连接层,具体原因与上述采用至少一个卷积层的原因类似,在此不再赘述。

在一种实施中,在调用深度学习网络对上述音频图像进行处理之前,先构建上述深度学习网络。具体的,先构建深度学习网络框架,然后获取训练样本,最后利用训练样本对上述深度学习网络框架进行训练,得到深度学习网络。其中,训练样本包括音频信号的频谱数据以及音频指纹。

在本申请实施例中,首先构建深度学习网络的构架,例如若干层神经网络的组成,该神经网络例如有卷积层、池化层、全连接层和/或激活函数层,其中,卷积层可以对输入的数据进行特征提取,池化可以采用最大池化方法或者平均池化方法来简化数据,全连接层用于对输入数据进行整合或者降维,激活函数层可以引入非线性因素提高深度学习网络解决非线性问题的能力。

在深度学习网络构建好了之后,向该深度学习网络输入大量的训练样本,从而对深度学习网络进行训练,通过训练深度学习网络中的参数不断被修改和优化,使得深度学习网络能准确提取出作为目标音频的标识信息的音频指纹。

需要说明的是,训练样本包括不计数量的多个频谱数据以及音频指纹,即训练集(trainingset)。上述利用训练样本对深度网络进行训练指的是将训练样本中的频谱数据输入到网络中,利用损失函数计算网络的实际输出(深度学习网络处理频谱数据得到的音频指纹)与期望输出(训练样本中的音频指纹)间的差别,然后利用优化算法来调整深度学习网络中的参数,从而优化上述深度学习网络。其中,损失函数包括dice损失函数、jaccard损失函数、回归损失函数、交叉熵函数和logloss函数等,优化函数包括反向传播(back-propagation)算法等。在一种实施中,上述损失函数为三重损失函数(tripletlossfunction)。

举例来对本申请中调用深度学习网络对音频图像进行处理得到音频指纹的过程进行说明,获取上述步骤降维得到的音频图像,该音频图像包含至少一个图像,在将音频图像输入到上述深度学习网络的时候,依次将每个图像以1.024秒重叠的方式输入到深度学习网络,结合上述举例中设定的采样频率、帧长和步长等参数的具体数值,得知音频图像为(-1,513,64,1)维的张量。然后利用深度学习网络对该图像数据进行分析,得到一个表现为n维向量的一维数据,该一维数据用于表示上述目标音频的标识信息。

相比于上一申请实施例,本申请实施例更加详细的描述了本音频指纹生成方法的过程,尤其是更加详细的描述了对目标音频进行降维得到音频图像,并利用深度学习网络对音频图像处理得到音频指纹的过程。具体的,上述对目标音频进行降维得到音频图像指的是,先对目标音频进行降采样,并对降采样之后的目标音频进行分帧,从而得到多个音频帧,然后分别提取该多个音频帧的频谱数据,然后将该多个音频帧的频谱数据组合在一起便得到了音频图像;上述利用深度学习网络对音频图像进行处理得到音频指纹的过程指的是,先调用深度学习网络中的特征提取模块提取音频图像中的多个音频特征,然后调用深度学习网络中的分组子模块将该多个音频特征分为与预设组的音频特征,最后调用深度学习网络中的编码子模块分别对上述预设组的音频特征进行编码,从而得到目标音频的音频指纹。因此,本申请实施例提供一种高效且准确的音频指纹生成方法。

需要说明的是,上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。

本申请实施例还提供一种音频指纹生成设备,该音频指纹生成设备用于执行前述任一项的音频指纹生成方法的单元。具体地,参见图7,是本申请实施例提供的一种音频指纹生成设备的示意框图。本实施例的音频指纹生成设备包括:采样单元710、降维单元720以及分析单元730。具体的:

采样单元710,用于对目标音频进行降采样;

降维单元720,用于对降采样之后的目标音频进行频谱分析得到上述目标音频的频谱数据,并将上述目标音频的频谱数据组合为上述目标音频的音频图像,上述频谱数据为二维数据,上述音频图像为维度大于二维的多维数据;

分析单元730,用于调用深度学习网络对上述音频图像所包含的音频特征进行分析,得到上述目标音频的音频指纹,上述音频指纹为用于表示上述目标音频的标识信息的一维数据。

在一种实施中,上述降维单元720,具体用于对降采样之后的目标音频进行分帧,得到多个音频帧;分别对上述多个音频帧中的每个音频帧进行频谱分析,得到每个音频帧的频谱数据;组合上述每个音频帧的频谱数据,得到上述目标音频的音频图像。

在一种实施中,上述深度学习网络包括特征提取模块和特征编码模块;上述分析单元730,具体用于调用上述特征提取模块提取上述音频图像所包含的多个音频特征;调用上述特征编码模块对上述多个音频特征进行编码,得到上述目标音频的音频指纹。

在一种实施中,上述特征编码模块包括分组子模块以及编码子模块,上述分析单元730,具体用于调用上述分组子模块将上述多个音频特征分为预设组的音频特征;调用上述编码子模块对上述预设组的音频特征中的每组音频特征分别进行编码,得到每组音频特征的音频指纹,并将上述每组音频特征的音频指纹组合在一起得到上述目标音频的音频指纹。

在一种实施中,上述特征提取模块包括至少一个卷积层,上述特征融合模块包括至少一个全连接层;上述分析单元730,具体用于调用上述至少一个卷积层对上述音频图像进行特征提取,得到用于表示上述目标音频的多个音频特征的音频数据;调用上述至少一个全连接层将上述音频数据编码为上述目标音频的音频指纹,上述音频指纹为预设长度的一维数据。

在一种实施中,上述特征提取模块包括至少一个卷积层,上述分组子模块包括降维层和分组层,上述编码子模块包括至少一个全连接层;上述分析单元730,具体用于调用上述至少一个卷积层对上述音频图像进行特征提取,得到用于表示上述目标音频的多个音频特征的音频数据;调用上述降维层将上述音频数据转换为特征数据,上述特征数据为一维数据,上述分组层将上述特征数据分为预设组的特征数据;调用上述至少一个全连接层分别对上述预设组的特征数据中的每组特征数据进行编码,得到上述每组特征数据的编码;将上述每组特征数据的编码组合在一起,得到上述目标音频的音频指纹,上述音频指纹为预设长度的一维数据,上述预设组和预设长度分别所代表的数值相等。

在一种实施中,上述音频指纹生成设备还包括构建单元740,获取单元750和训练单元760,具体的,构建单元740用于构建深度学习网络框架;获取单元750用于,获取训练样本,上述训练样本包括音频信号的频谱数据以及音频指纹;训练单元760,用于利用上述训练样本对上述深度学习网络框架进行训练,得到深度学习网络。

本申请实施例先通过采样单元对目标音频进行降采样,以减少目标音频的数据量,并利用降维单元对降采样之后的目标音频进行频谱分析得到的频谱数据进行组合得到该目标音频的音频图像,从而将原本高维的目标音频进行降维得到用于表示该目标音频的低维的音频图像,且降维的过程并不会改变目标音频本来所包含的特征,然后再利用分析单元调用深度学习网络分析音频图像中所包含的音频特征,从而得到目标音频的音频指纹,该音频指纹为用于表示目标音频的标识信息的一维数据。可见,本申请实施例通过将目标音频进行降维,转换为类似于图像数据的音频图像,使得在后续可以利用图像处理的方式对该音频图像进行特征提取,得到音频的音频指纹,即采用深度学习网络对目标音频进行处理来更准确的提取出目标音频中包含的音频特征,即使目标音频中存在细小的变化也可以被检测出来。于是总的来说,本申请实施例提供了一种高效的音频指纹生成方法。

参见图8,是本申请另一实施例提供的一种音频指纹生成设备示意框图。如图所示的本实施例中的音频指纹生成设备可以包括:处理器810和存储器820。上述处理器810和存储器820通过总线830连接。具体的:

处理器810,用于执行采样单元710的功能,用于对目标音频进行降采样;还用于执行降维单元720的功能,用于对降采样之后的目标音频进行频谱分析得到上述目标音频的频谱数据,并将上述目标音频的频谱数据组合为上述目标音频的音频图像,上述频谱数据为二维数据,上述音频图像为维度大于二维的多维数据;还用于执行分析单元730的功能,用于调用深度学习网络对上述音频图像所包含的音频特征进行分析,得到上述目标音频的音频指纹,上述音频指纹为用于表示上述目标音频的标识信息的一维数据。

在一种实施中,处理器810,具体用于对降采样之后的目标音频进行分帧,得到多个音频帧;分别对上述多个音频帧中的每个音频帧进行频谱分析,得到每个音频帧的频谱数据;组合上述每个音频帧的频谱数据,得到上述目标音频的音频图像。

在一种实施中,上述深度学习网络包括特征提取模块和特征编码模块;上述处理器810,具体用于调用上述特征提取模块提取上述音频图像所包含的多个音频特征;调用上述特征编码模块对上述多个音频特征进行编码,得到上述目标音频的音频指纹。

在一种实施中,上述特征编码模块包括分组子模块以及编码子模块,上述处理器810,具体用于调用上述分组子模块将上述多个音频特征分为预设组的音频特征;调用上述编码子模块对上述预设组的音频特征中的每组音频特征分别进行编码,得到每组音频特征的音频指纹,并将上述每组音频特征的音频指纹组合在一起得到上述目标音频的音频指纹。

在一种实施中,上述特征提取模块包括至少一个卷积层,上述特征融合模块包括至少一个全连接层;上述处理器810,具体用于调用上述至少一个卷积层对上述音频图像进行特征提取,得到用于表示上述目标音频的多个音频特征的音频数据;调用上述至少一个全连接层将上述音频数据编码为上述目标音频的音频指纹,上述音频指纹为预设长度的一维数据。

在一种实施中,上述特征提取模块包括至少一个卷积层,上述分组子模块包括降维层和分组层,上述编码子模块包括至少一个全连接层;上述处理器810,具体用于调用上述至少一个卷积层对上述音频图像进行特征提取,得到用于表示上述目标音频的多个音频特征的音频数据;调用上述降维层将上述音频数据转换为特征数据,上述特征数据为一维数据,上述分组层将上述特征数据分为预设组的特征数据;调用上述至少一个全连接层分别对上述预设组的特征数据中的每组特征数据进行编码,得到上述每组特征数据的编码;将上述每组特征数据的编码组合在一起,得到上述目标音频的音频指纹,上述音频指纹为预设长度的一维数据,上述预设组和预设长度分别所代表的数值相等。

在一种实施中,上述处理器810,还用于执行构建单元740的功能,用于构建深度学习网络框架;还用于执行获取单元750的功能,用于获取训练样本,上述训练样本包括音频信号的频谱数据以及音频指纹;还用于执行训练单元760的功能,用于利用上述训练样本对上述深度学习网络框架进行训练,得到深度学习网络。

应当理解,在本申请实施例中,所称处理器810可以是中央处理单元(centralprocessingunit,cpu),该处理器810还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

该存储器820可以包括只读存储器和随机存取存储器,并向处理器810提供指令和数据。存储器820的一部分还可以包括非易失性随机存取存储器。例如,存储器820还可以存储设备类型的信息。

计算机可读存储介质可以是前述任一实施例的音频指纹生成设备的内部存储单元,例如音频指纹生成设备的硬盘或内存。计算机可读存储介质也可以是音频指纹生成设备的外部存储设备,例如音频指纹生成设备上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,计算机可读存储介质还可以既包括音频指纹生成设备的内部存储单元也包括外部存储设备。计算机可读存储介质用于存储计算机程序以及音频指纹生成设备所需的其他程序和数据。计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。

具体实现中,本申请实施例中所描述的处理器810可执行本申请实施例提供的音频指纹生成方法的第二实施例和第三实施例中所描述的实现方式,也可执行本申请实施例所描述的音频指纹生成设备的实现方式,在此不再赘述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同音频指纹生成方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的音频指纹生成设备和单元的具体工作过程,可以参考前述音频指纹生成方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的音频指纹生成设备和音频指纹生成方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本申请实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,音频指纹生成设备,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

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