掌桥专利:专业的专利平台
掌桥专利
首页

一种音频特征的生成方法、装置、计算机设备和存储介质

文献发布时间:2023-06-19 10:57:17


一种音频特征的生成方法、装置、计算机设备和存储介质

技术领域

本发明实施例涉及音频处理的技术领域,尤其涉及一种音频特征的生成方法、装置、计算机设备和存储介质。

背景技术

随着互联网的飞速发展,尤其是移动终端的广泛普及,用户可以方便地制作多媒体数据,例如,制作短视频、哼唱歌曲、录音,等等,使得互联网中的多媒体数据快速增长,音频数据也随之快速增长。

在歌曲搜索、语音内容审核等业务场景中,对音频数据构造音频特征(又称音频指纹),从而对音频数据进行比对,判断音频数据是否相同或相似。

在诸如多媒体平台等场景中,每天客户端上传的音频数据的量级可达千万甚至亿级,目前构造音频特征的操作较为繁琐,耗时较多,难以满足对海量的音频数据的处理需求。

发明内容

本发明实施例提出了一种音频特征的生成方法、装置、计算机设备和存储介质,以解决如何提高构造音频特征的操作的简便性、降低耗时的问题。

第一方面,本发明实施例提供了一种音频特征的生成方法,包括:

将音频数据转换为频谱图;

在所述频谱图上搜索在一维的局部区域中、能量值属于峰值的数据点,作为峰锚点;

针对当前所述峰锚点,基于堆结构在二维的邻域中选择能量值最高的多个其他所述峰锚点,以形成峰值关联关系;

在所述关联关系下、采用所述峰锚点生成所述音频数据的音频特征。

第二方面,本发明实施例还提供了一种音频特征的生成装置,包括:

频谱图转换模块,用于将音频数据转换为频谱图;

峰值搜索模块,用于在所述频谱图上搜索在一维的局部区域中、能量值属于峰值的数据点,作为峰锚点;

领域峰值关联模块,用于针对当前所述峰锚点,基于堆结构在二维的邻域中选择能量值最高的多个其他所述峰锚点,以形成峰值关联关系;

音频特征生成模块,用于在所述关联关系下、采用所述峰锚点生成所述音频数据的音频特征。

第三方面,本发明实施例还提供了一种计算机设备,所述计算机设备包括:

一个或多个处理器;

存储器,用于存储一个或多个程序,

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的音频特征的生成方法。

第四方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如第一方所述的音频特征的生成方法。

本实施例将音频数据转换为频谱图,在频谱图上搜索在一维的局部区域中、能量值属于峰值的数据点,作为峰锚点,针对当前峰锚点,基于堆结构在二维的邻域中选择能量值最高的多个其他峰锚点,以形成峰值关联关系,在关联关系下、采用峰锚点生成音频数据的音频特征,一方面,在一维搜索局部区域的峰值,可大大减少处理数据点的计算量、降低耗时,另一方面,堆结构是已排序的数据结构,依赖堆结构提取选择峰值,可以减少处理冗余的峰值、降低耗时,两者结合,可以大大提高构造音频特征的操作的简便性,减低总耗时,满足对海量的音频数据的处理需求。

附图说明

图1为本发明实施例一提供的一种音频特征的生成方法的流程图;

图2A至图2D为本发明实施例一提供的一种一维搜索局部区域峰值的示例图;

图3是本发明实施例一提供的一种窗口的对比示例图;

图4A至图4D为本发明实施例一提供的一种构建最大堆结构的示例图;

图5为本发明实施例二提供的一种音频特征的生成装置的结构示意图;

图6为本发明实施例三提供的一种计算机设备的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

实施例一

图1为本发明实施例一提供的一种音频特征的生成方法的流程图,本实施例可适用于在对音频数据构造音频特征时、一维搜索局部的峰值、情况,该方法可以由音频特征的生成装置来执行,该音频特征的生成装置可以由软件和/或硬件实现,可配置在计算机设备中,例如,服务器、工作站、个人电脑,等等,具体包括如下步骤:

步骤101、将音频数据转换为频谱图。

在本实施例中,可以通过不同的方式获取音频数据,例如,用户上传音频数据、向版权方购买音频数据、技术人员录制音频数据、使用爬虫客户端从网络中爬取音频数据,等等。

其中,该音频数据的形式可以为歌手发布的歌曲、从短视频、电影、电视剧等视频数据中分离的音频数据、用户在移动终端录制的语音信号,等等,该音频数据的格式可以包括MP3、WMA、AAC,等等,本实施例对此不加以限制。

若计算机设备作为多媒体平台,一方面,为用户提供基于音频的服务,例如,向用户提供直播节目、短视频、语音会话、视频会话,等等,另一方面,接收用户上传的携带音频的文件,例如,直播数据、短视频、会话信息,等等。

不同的多媒体平台可按照业务、法律等因素制定视频内容审核标准,在发布携带音频的文件之前,按照该审核规范对该携带音频的文件的内容进行审核,过滤掉一些不符合视频内容审核标准的携带音频的文件,如包含色情、低俗、暴力等内容的携带音频的文件,从而发布一些符合视频内容审核标准的携带音频的文件。

如果对于实时性要求较高,在多媒体平台中可设置流式实时系统,用户通过客户端实时将携带音频的文件上传至该流式实时系统,该流式实时系统可将该携带音频的文件传输至用于内容审核的计算机设备。

如果对于实时性要求较低,在多媒体平台中可设置数据库,如分布式数据库等,用户通过客户端将携带音频的文件上传至该数据库,用于内容审核的计算机设备可从该数据库读取该携带音频的文件。

在多媒体平台中,即对用户上传的携带音频的文件计算音频特征,也对自身的音频数据计算音频特征,从而基于音频数据实现搜索、内容审核等服务。

音频数据中包含大量的频率分量,各个频率分量相互独立,并且沿着时间轴不断变化,不同的音频数据当中频率分量和变化各不相同,在本实施例中,通过分析音频数据的频率特征得出音频特征,为更直观的对频率进行分析,通常将时域上的音频数据转换到频域上,得到频谱图,其中,频谱图的横轴(X坐标)为时间、纵轴(Y坐标)为频率。

进一步而言,可通过傅里叶变换(Discrete Fourier Transform,DFT)、短时傅里叶变换(short-time Fourier transform,或,short-term Fourier transform,STFT)等方式将音频数据转换为频谱图,其中,傅里叶变换能反映音频数据中频率的均值,无法反映频率随时间变化的动态特征,而短时傅里叶变换通过给音频数据添加窗口克服这一弱点,既能反映音频数据的频率强度,又能反映频率强度随时间的变化。

步骤102、在频谱图上搜索在一维的局部区域中、能量值属于峰值的数据点,作为峰锚点。

一般情况下,频谱图具有多个频带,该频带为同一频率上的多个数据点,即每个频带上具有一个维度,本实施例沿频带进行一维的搜索,即搜索在局部区域中、能量值属于峰值的数据点,记为峰锚点(anchor peak)。

其中,所谓峰值,可以指能量值在一维的局部区域内的数值最大。

在本发明的一个实施例中,步骤102可以包括如下步骤:

步骤1021、在频谱图的每个频带上添加一维的第一窗口、以表征一维的局部区域。

在本实施例中,针对频谱图上的每个频带,第一个数据点开始添加一维的第一窗口、该第一窗口可表征一维的局部区域。

其中,所谓一维,可以指第一窗口的参数为宽度。

步骤1022、在初始的第一窗口中筛选能量值属于峰值的数据点,作为初始的候选点。

在本实施例中,可以设置两组数据点,其中一组为候选点(dequeue)Q,候选点Q中的数据点为潜在的峰值的数据点,另外一组为峰锚点

针对初始的第一窗口中的数据点,可筛选能量值属于峰值的数据点,作为初始的候选点。

在具体实现中,在初始的第一窗口中,可遍历各个数据点,针对排序连续的多个数据点,若排序在后的数据点的能量值大于排序在前的数据点的能量值,则确定排序在后的数据点属于峰值的数据点,作为初始的候选点。

步骤1023、当滑动第一窗口时,以第一窗口中的数据点更新候选点,筛选能量值属于峰值的候选点、作为峰锚点。

将第一窗口沿时间进行滑动,每个时刻滑动预设的步长(如一个数据点),在第一窗口滑动的过程中,针对当前第一窗口中及其滑入、滑出的数据点,可以并行以第一窗口中的数据点更新候选点,以及,筛选能量值属于峰值的候选点、作为峰锚点。

一方面,针对当前时刻的第一窗口,将在当前时刻滑入第一窗口的数据点更新为新的候选点,若新的候选点的能量值大于原有候选点的能量值,则删除原有候选点。

具体而言,当前遍历至某个数据点时,将该数据点的能量值与候选点Q的能量值进行比较,如果该数据点的能量值大于候选点Q的能量值,则删除该候选点Q,并不设置为峰锚点

另一方面,针对当前时刻的第一窗口,确定在当前时刻滑出第一窗口的候选点的能量值在上一时刻的第一窗口中属于峰值,从而确定该候选点为峰锚点。

具体而言,当前遍历至某个数据点时,计算该数据点的位置与第一个候选点Q的位置之间的差距,若该差距大于或等于第一窗口的宽度K,则表示第一个候选点Q为它为左右K个距离内的局部最大值,可以将该候选点Q设置为峰锚点

为使本领域技术人员更好地理解本实施例,以下通过具体的示例来说明本实施例中在一维的局部区域中搜索能量值属于峰值的方法。

如图2A-图2D所示,针对某个频带上的数据点,按照排序标记为“1”-“9”,在数据点上标记其能量值,设第一窗口201的宽度K=6。

如图2A所示,在时刻t=0时(初始),第一窗口201覆盖数据点1-数据点6,对于数据点1-数据点3,由于数据点3排序在数据点1、数据点2之前,并且,数据点3的能量值均比数据点1、数据点2的能量值高,因此,初始的候选点Q={3,6},初始的峰锚点为空集,即

如图2B所示,在时刻t=1时,滑动第一窗口201一个数据点的幅度,数据点7滑入第一窗口201、数据点1滑出第一窗口201,即,第一窗口201覆盖数据点2-数据点7,此时,将数据点7写入候选点中,由于数据点7的能量值小于数据点3、数据点6的能量值,因此,并不从候选点中删除数据点3、数据点6,即,Q={3,6,7},此外,数据点1并非候选点,峰锚点仍为空集,即,

如图2C所示,在时刻t=2时,滑动第一窗口201一个数据点的幅度,数据点8滑入第一窗口201、数据点2滑出第一窗口201,即,第一窗口201覆盖数据点3-数据点8,此时,将数据点8写入候选点中,由于数据点8的能量值小于数据点3的能量值、且大于数据点6、数据点7的能量值,因此,并不从候选点中删除数据点3,而从候选点中删除数据点6、数据点7,即,Q={3,8},此外,数据点2并非候选点,峰锚点仍为空集,即,

如图2D所示,在时刻t=3时,滑动第一窗口201一个数据点的幅度,数据点9滑入第一窗口201、数据点3滑出第一窗口201,即,第一窗口201覆盖数据点4-数据点9,此时,将数据点9写入候选点中,由于数据点9的能量值大于数据点8的能量值,因此,从候选点中删除数据点8,即,Q={9},此外,数据点3为候选点,可添加为峰锚点,即,

在本发明的另一个实施例中,步骤102可以包括如下步骤:

步骤1024、在频谱图上为峰锚点添加第二窗口。

在步骤1021-步骤1023中,对频谱图上各个频带添加一维的第一窗口进行过滤,检查了峰锚点在一维意义上是各自频带中、局部区域能量的峰值。

在本实施例中,对于各个峰锚点

在具体实现中,在频谱图上标记各个峰锚点,为每个峰锚点添加第二窗口。

在一种情况中,该第二窗口可以为一维的窗口,其中,该第二窗口的维度与第一窗口的维度不同,若第一窗口的维度为行,则第二窗口的维度为列。

在另一种情况中,该第二窗口可以为二维的窗口,所谓二维,可以指第二窗口的参数包括宽度、高度。

示例性地,在频谱图上以峰锚点作为中心点,添加指定第一高度H与第一宽度W的窗口、作为第二窗口,则第二窗口表示如下:

在此示例中,第二窗口一般为正方形,即H=W。

对比而言,一维的第二窗口相比二维的第二窗口的速度更快、耗时更少,但是,一维的第二窗口可能忽略了在四个对角象限的检查,这可能会导致产生错误的峰值,并增加要后续堆结构中排序的峰值的数量,因此,本领域技术人员可以根据实际情况对峰锚点添加一维的第二窗口或是二维的第二窗口。

步骤1025、若峰锚点的能量值大于第二窗口中所有数据点的能量值,则维持峰锚点。

将峰锚点的能量值依次与第二窗口中的数据点的能量值进行比较,如果峰锚点的能量值大于第二窗口中所有数据点的能量值,表示该峰锚点在二维意义上也是局部区域能量的峰值,可以维持其作为峰锚点的定义。

步骤1026、若峰锚点的能量值小于第二窗口中任一数据点的能量值,则删除峰锚点。

将峰锚点的能量值依次与第二窗口中的数据点的能量值进行比较,如果峰锚点的能量值小于第二窗口中任一数据点的能量值,表示该峰锚点在二维意义上并非局部区域能量的峰值,可以删除其作为峰锚点的定义。

目前,基线算法(原始峰值选择)(baseline(original peak selection)),的过程一般如下:

S1、遍历频谱图中第i行数据点,i=1,2,3,……,N。

S2、遍历频谱图中第j列数据点,j=1,2,3,……,M。

S3、以数据点f(i,j)作为角点添加二维的窗口,在该窗口中寻找能量值为峰值的数据点(x,y),表示为(x,y)=armax

如果在先选择了该数据点(x,y),则忽略该数据点(x,y),否则,将数据点(x,y)添加到峰值的集合中P(x

假设窗口的大小为W×H,频谱图的大小为N列、M行,则时间复杂度为O(NMWH),其中,NM是指遍历了频谱图上所有的数据点,WH是指每个数据点添加窗口、与该窗口中的其他数据点进行比较,以判断其能量值是否是局部区域的峰值。

在本实施例中,假设窗口的大小为W×H,频谱图的大小为N列、M行,在频谱图上一维搜索局部区域的峰值,时间复杂度为O(N),重复M行遍历潜在的峰值(即峰锚点),则时间复杂度为O(NM),对潜在的峰值添加窗口筛选P个真实的峰值,其中,P<<NM(即P远小于NM),时间复杂度为O(PWH),则本实施例的总时间复杂度为O(NM+PWH),远远低于基线算法(原始峰值选择)的时间复杂度为O(NMWH),相对于基线算法(原始峰值选择),本实施例可以提高约50%的效率。

如图3所示,针对同一个音频数据,上侧为在该音频数据的频谱图上,应用基线算法(原始峰值选择)添加二维的窗口,下侧为在该音频数据的频谱图上,应用本实施例在一维搜索峰锚点之后添加二维的窗口,两者对比,本实施例添加的二维的窗口的数量明显小于应用基线算法(原始峰值选择)添加二维的窗口的数量。

步骤103、针对当前峰锚点,基于堆结构在二维的邻域中选择能量值最高的多个其他峰锚点,以形成峰值关联关系。

单个数据点包含的信息量较少,例如,频率轴长度为1024时每个峰值至多产生10bit的频率信息(这就意味着相同频率的峰值会非常多,从而影响匹配速度),使得直接利用峰锚点来计算正确的偏移会较为缓慢,因此,本实施例中,针对每个峰锚点,可以将其邻域中的峰锚点以堆结构的方式确定在能量上之间的关联关系(即针对当前峰锚点形成与其相邻、且能量值最高的多个其他峰锚点),从而将两个或两个以上的峰锚点组成在一起构建音频特征。

在本发明的一个实施例中,步骤103包括如下步骤:

步骤1031、在频谱图上为峰锚点添加二维的第三窗口、以表征峰锚点二维的邻域。

在具体实现中,在频谱图上标记各个峰锚点,为每个峰锚点添加三维的第二窗口,其中,所谓二维,可以指第三窗口的参数包括宽度、高度。

示例性地,在频谱图上以峰锚点(x,y)为左侧边的中点,添加指定第二高度2与第二宽度k的窗口、作为第三窗口,则第三窗口表示如下:

B(x,y)=[x:x+k,y-f:y+f]

步骤1032、基于能量值将位于邻域中的其他峰锚点转换为堆结构。

在本实施例中,以同于同一邻域中的峰锚点作为节点、该峰锚点的能量值作为节点的数值、建立堆结构(Heap)。

其中,堆结构为一种数据结构,满足下列性质:

1、堆中某个节点的值总是不大于或不小于其父节点的值;

2、堆总是一棵完全二叉树,若设二叉树的深度为h,除第h层外,其它各层(1~h-1)的节点数都达到最大个数,第h层所有的节点都连续集中在最左边。

其定义为:具有n个元素的序列(h

一般情况下,数据点的抗噪性与其能量值是正相关的关系,即数据点的能量值越大,该数据点的抗噪性就越强,数据点的能量值越小,该数据点的抗噪性就越弱,因此,在本实施例中可将位于邻域中的其他峰锚点转换为最大堆结构(Max Heap)。

根节点(亦称为堆顶)的能量值是堆里所有节点能量值中的最大者,称为大根堆,又称最大堆(大顶堆)。

大根堆要求满足下列性质:

1、根节点的能量值既大于或等于左子树的能量值,又大于或等于右子树的能量值。

2、为完全二叉树。

在一个示例中,假设与当前峰锚点相邻的其他峰锚点的能量值分别为20,12,35,15,10,80,30,17,2,1],在构建最大堆结构时,先将其他峰锚点(包含能量)复制到最大堆结构中,然后对其进行重新排序,并初始化为最大堆。

假设开始数组a中有n个元素,n=10,a[1:10]中元素的关键值为[20,12,35,15,10,80,30,17,2,1],这个数组可以用来表示如图4A所示的完全二叉树,这棵完全二叉树不是最大树。

为了将图4A的完全二叉树转化为最大堆,从第一个具有子节点的峰锚点开始(即节点10),这个峰锚点在数组中的位置为i=n/2,如果以这个峰锚点为根的子树已是最大堆,则此时不需调整,否则必须调整子树使之成为堆。

随后,继续检查以i-1,i-2等节点为根的子树,直到检查到整个二叉树的根节点(其位置为1)。

下面对图4A中的二叉树完成这一系列工作。最初,i=5,由于10>1,所以以位置i为根的子树已是最大堆。下一步,检查根节点在位置4的子树,由于15<17,因此它不是最大堆,为将其变为最大堆,可将15与17进行交换,得到的树如图4B所示。然后检查以位置3为根的子树,为使其变为最大堆,将80与35进行交换。之后,检查根位于位置2的子树,通过重建过程使该子树成为最大堆。将该子树重构为最大堆时需确定子节点中较大的一个,因为12<17,所以17成为重构子树的根,下一步将12与位置4的两个孩子中较大的一个进行比较,由于12<15,15被移到位置4,空位8没有子节点,将12插入位置8,形成的二叉树如图4C。最后,检查位置1,这时以位置2或位置3为根的子树已是最大堆了,然而20<(max[17,80]),因此,80成为最大堆的根节点,当80移入根节点,位置3空出。由于20<max[35,30]),位置3被35占据,最后20占据位置6,图4D显示了最终形成的最大堆结构。

步骤1033、从堆结构中取出其他峰锚点、以对其他峰锚点形成排序关系。

由于堆结构是在排序的基础上形成的,因此,按照堆结构本身的节点关系提取同一邻域的其他峰锚点,可以得到其他峰锚点之间的排序关系,从而提高排序的效率。

进一步而言,确定堆结构为最大堆结构,其中,位于最大堆结构中根节点的峰锚点的能量值最高,连续k(k为正整数)次从最大堆结构中取出根节点的峰锚点、以形成峰值关联关系,在每一次从最大堆结构中取出顶部的其他峰锚点为当前能量值最高的其他峰锚点,该操作属于删除操作,此时,最大堆结构重新构造,以便保持完全二叉树,按照取出其他峰锚点的顺序排列其他峰锚点、可以对其他峰锚点形成排序关系。

目前,基线算法(原始哈希)(baseline(original peak selection)),的过程一般如下:

S1、对于每个峰值(a,b)∈P,将其固定为峰锚点。

S2、在峰锚点的邻域B(x,y)内寻找其他峰值(a,b)∈P,B(x,y)=[x:x+k,y-f:y+f],即从x轴往前k个时间戳,在y轴上下y个频段,可得到相邻峰值的列表

S3、根据峰值的能量值对该相邻峰值的列表进行排序,得到了排序列表L=[(a

其中,假设对相邻峰值的列表存在K个峰值,对相邻峰值的列表进行排序的时间复杂度为O(KlogK)。

而本实施例中,并不是对相邻峰值的列表进行排序,而是将相邻峰值的列表转换为最大堆结构H,假设对相邻峰值的列表存在K个峰值,则构建最大堆结构H的时间复杂度为O(K)。

由于k个最大的峰值是有效的,因此遍历K个峰值是冗余的,k次取出最大堆结构H的根节点来获取最大堆结构H中的最大的k个峰值,每次取出最大堆结构H的根节点的时间复杂度为O(LogK),重复k次则时间复杂度为O(klogK)。

因此,本实施例形成关联关系的总时间复杂度为O(K+klogK),小于基线算法(原始哈希)的时间复杂度为O(KlogK)。

步骤104、在关联关系下、采用峰锚点生成音频数据的音频特征。

在本实施例中,若对峰锚点之间形成关联关系,则可以依赖该关联关系、采用峰锚点进行哈希运算(hash),从而对音频数据生成音频特征(指纹),即音频特征(指纹)是音频数据经过哈希运算压缩后的一种紧致表现。

示例性地,当前峰锚点按照顺序与关联关系中的其他峰锚点进行组合,组合的结果是两个频率加一个时间差,这种方式产生的组合哈希具有很高的可复现性,即使噪音很强或者音频数据进行过压缩处理,此外,每一个指纹都可以存入一个int中(位数小于32)。每一个指纹都伴随有一个从文件开头到该峰锚点的时间差,所以绝对时间不包含在指纹中(指纹中包含的时间差是两个时频点的时间差,是一个相对值;绝对的时间差作为伴随属性存在)。

通过组合哈希来代替单个数据点的匹配会带来巨大的性能提升,假设频率轴为10bit,时间差也为10bit,则组合哈希会产生一个30bit信息量的指纹。与原始的匹配相比多出了20bit,从而使哈希空间增大了100万倍,匹配速度也相应地加快(这是因为匹配时产生的碰撞更少了)。另一方面,组合哈希也会增大指纹的个数,数据库中会增大F倍,检索的时候样本构造的指纹也会增大F倍,从而采用组合哈希最终获得的加速比为1000000/F

本实施例将音频数据转换为频谱图,在频谱图上搜索在一维的局部区域中、能量值属于峰值的数据点,作为峰锚点,针对当前峰锚点,基于堆结构在二维的邻域中选择能量值最高的多个其他峰锚点,以形成峰值关联关系,在关联关系下、采用峰锚点生成音频数据的音频特征,一方面,在一维搜索局部区域的峰值,可大大减少处理数据点的计算量、降低耗时,另一方面,堆结构是已排序的数据结构,依赖堆结构提取选择峰值,可以减少处理冗余的峰值、降低耗时,两者结合,可以大大提高构造音频特征的操作的简便性,减低总耗时,满足对海量的音频数据的处理需求。

示例性地,采集了1000个视频数据作为测试集、对基线算法(原始峰值选择、原始哈希)与本实施例的方法进行测试,应用基线算法(原始峰值选择、原始哈希)对该1000个视频数据生成音频特征,总耗时为16.202秒,应用本实施例中的方法对该1000个视频数据生成音频特征,总耗时为8.868秒,可明显降低生成音频特征的耗时。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本邻域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本邻域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。

实施例二

图5为本发明实施例二提供的一种音频特征的生成装置的结构框图,具体可以包括如下模块:

频谱图转换模块501,用于将音频数据转换为频谱图;

峰值搜索模块502,用于在所述频谱图上搜索在一维的局部区域中、能量值属于峰值的数据点,作为峰锚点;

领域峰值关联模块503,用于针对当前所述峰锚点,基于堆结构在二维的邻域中选择能量值最高的多个其他所述峰锚点,以形成峰值关联关系;

音频特征生成模块504,用于在所述关联关系下、采用所述峰锚点生成所述音频数据的音频特征。

在本发明的一个实施例中,所述峰值搜索模块502包括:

第一窗口添加模块,用于在所述频谱图的每个频带上添加一维的第一窗口,用以表征一维的局部区域;

候选点初始化模块,用于在初始的所述第一窗口中筛选能量值属于峰值的数据点,作为初始的候选点;

窗口处理模块,用于当滑动所述第一窗口时,以所述第一窗口中的数据点更新所述候选点,筛选能量值属于峰值的所述候选点为峰锚点。

在本发明的一个实施例中,所述候选点初始化模块包括:

排序确定模块,用于在初始的所述第一窗口中,针对排序连续的多个数据点,若排序在后的数据点的能量值大于排序在前的数据点的能量值,则确定排序在后的数据点属于峰值的数据点,作为初始的候选点。

在本发明的一个实施例中,所述窗口处理模块包括:

候选点添加模块,用于针对当前时刻的所述第一窗口,将在当前时刻滑入所述第一窗口的数据点更新为新的所述候选点;

候选点删除模块,用于若新的所述候选点的能量值大于原有所述候选点的能量值,则删除原有所述候选点。

在本发明的一个实施例中,所述窗口处理模块包括:

峰值确定模块,用于针对当前时刻的所述第一窗口,确定在当前时刻滑出所述第一窗口的所述候选点的能量值在上一时刻的所述第一窗口中属于峰值的候选点作为峰锚点。

在本发明的一个实施例中,所述峰值搜索模块还包括:

第二窗口添加模块,用于在所述频谱图上为所述峰锚点添加第二窗口;

峰锚点维持模块,用于若所述峰锚点的能量值大于所述第二窗口中所有数据点的能量值,则维持所述峰锚点;

峰锚点删除模块,用于若所述峰锚点的能量值小于所述第二窗口中任一数据点的能量值,则删除所述峰锚点。

在本发明的一个实施例中,所述第二窗口添加模块包括:

中心点添加模块,用于在所述频谱图上以所述峰锚点作为中心点,添加指定第一高度与第一宽度的窗口、作为第二窗口。

在本发明的一个实施例中,所述领域峰值关联模块503包括:

第三窗口添加模块,用于在所述频谱图上为当前所述峰锚点添加二维的第三窗口、以表征所述峰锚点二维的邻域;

堆结构转换模块,用于基于能量值将位于所述邻域中的其他所述峰锚点转换为堆结构;

堆结构取出模块,用于从所述堆结构中取出能量值最高的多个其他所述峰锚点、以形成峰值关联关系。

在本发明的一个实施例中,所述第三窗口添加模块包括:

边中点添加模块,用于在所述频谱图上以当前所述峰锚点为左侧边的中点,添加指定第二高度与第二宽度的窗口、作为第二窗口。

在本发明的一个实施例中,所述堆结构取出模块包括:

最大堆结构确定模块,用于确定所述堆结构为最大堆结构,位于所述最大堆结构中根节点的所述峰锚点的能量值最高;

根节点取出模块,用于连续k次从所述最大堆结构中取出根节点的所述峰锚点、以形成峰值关联关系。

本发明实施例所提供的音频特征的生成装置可执行本发明任意实施例所提供的音频特征的生成方法,具备执行方法相应的功能模块和有益效果。

实施例三

图6为本发明实施例三提供的一种计算机设备的结构示意图。图6示出了适于用来实现本发明实施方式的示例性计算机设备12的框图。

如图6所示,计算机设备12以通用计算设备的形式表现。计算机设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。

系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。

具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。

计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机设备12交互的设备通信,和/或与使得该计算机设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机设备12的其它模块通信。

处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的音频特征的生成方法。

实施例四

本发明实施例四还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述音频特征的生成方法的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

相关技术
  • 一种音频特征的生成方法、装置、计算机设备和存储介质
  • 音频生成方法、装置、计算机设备和存储介质
技术分类

06120112740482