CN110866141A - 音频文件的处理方法、介质、装置和计算设备 - Google Patents

音频文件的处理方法、介质、装置和计算设备 Download PDF

Info

Publication number
CN110866141A
CN110866141A CN201810989723.7A CN201810989723A CN110866141A CN 110866141 A CN110866141 A CN 110866141A CN 201810989723 A CN201810989723 A CN 201810989723A CN 110866141 A CN110866141 A CN 110866141A
Authority
CN
China
Prior art keywords
audio file
fingerprint
data
fingerprint data
bits
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201810989723.7A
Other languages
English (en)
Inventor
刘华平
郑渊中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Netease Cloud Music Technology Co Ltd
Original Assignee
Hangzhou Netease Cloud Music Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Netease Cloud Music Technology Co Ltd filed Critical Hangzhou Netease Cloud Music Technology Co Ltd
Priority to CN201810989723.7A priority Critical patent/CN110866141A/zh
Publication of CN110866141A publication Critical patent/CN110866141A/zh
Pending legal-status Critical Current

Links

Images

Abstract

本发明的实施方式提供了一种音频文件的处理方法,包括:获取音频文件的指纹数据,所述指纹数据包括第一数量个比特位;对所述指纹数据进行哈希转换,得到索引数据,所述索引数据包括第二数量个比特位,第二数量小于第一数量,一个索引数据对应一个或多个指纹数据;以所述索引数据为索引建立所述音频文件的指纹库。本方法通过将长度较大的指纹数据转换为长度较小的索引数据,在可接受的程度内优化音频文件的索引分布,令所需要的存储空间大大减小,提高资源利用率,使得对音频文件的操作变得更加省时、高效。本发明的实施方式还提供了一种音频文件的处理装置、介质和计算设备。

Description

音频文件的处理方法、介质、装置和计算设备
技术领域
本发明的实施方式涉及计算机技术领域,更具体地,本发明的实施方式涉及音频文件的处理方法、介质、装置和计算设备。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
音频指纹是可以代表一段音频文件的重要声学特征的基于内容的紧致数字签名,其主要目的是建立一种有效机制来比较两个音频数据的感知听觉质量,可以广泛应用于歌曲识别、内容监播、内容去重等领域。一个音频指纹系统通常包括一个计算重要听觉特征的指纹提取算法和一个在指纹库中进行有效搜索的比对算法。
现有技术中所能获取的音频指纹虽然具有准确性高、鲁棒性高等特点,但音频指纹的长度较大,所需存储空间巨大,在基于音频指纹所构建的指纹库中进行搜索、查找等操作需要耗费较多的时间和资源,效率低下。
发明内容
但是,出于现有技术中所能获取的音频指纹的长度较大的原因,现有技术的音频指纹所需的存储空间巨大,基于音频指纹进行音频文件的操作需要占用大量的时间和资源。
因此在现有技术中,想要减小音频指纹所需的存储空间、提高基于音频指纹对音频文件的操作效率,这是非常令人烦恼的过程。
为此,非常需要一种改进的音频文件的处理方法,以进一步减小音频指纹所需的存储空间,提高基于音频指纹对音频文件的操作效率。
在本上下文中,本发明的实施方式期望提供一种音频文件的处理方法和装置。
在本发明实施方式的第一方面中,提供了一种音频文件的处理方法,包括:获取音频文件的指纹数据,所述指纹数据包括第一数量个比特位;对所述指纹数据进行哈希转换,得到索引数据,所述索引数据包括第二数量个比特位,第二数量小于第一数量,一个索引数据对应一个或多个指纹数据;以所述索引数据为索引建立所述音频文件的指纹库。
在本发明的一个实施例中,上述对所述指纹数据进行哈希转换,得到索引数据包括:将所述指纹数据与指定乘数相乘,得到第一中间结果;将第一中间结果从后向前第一数量个比特位开始的部分作为第二中间结果;截取第二中间结果中第二数量个比特位的部分,得到第二数量个比特位的索引数据。
在本发明的另一实施例中,上述对所述指纹数据进行哈希转换,得到索引数据还包括:基于第一数量和黄金分割法则生成指定乘数。
在本发明的又一实施例中,第一数量为不小于16且不大于64的整数,第二数量为小于第一数量的正整数。
在本发明的再一实施例中,上述获取音频文件的指纹数据包括:利用指纹提取算法提取音频文件的指纹数据。
在本发明的再一实施例中,在以所述索引数据为索引建立所述音频文件的指纹库之后,上述方法还包括:基于所述指纹库对所述音频文件执行存储操作、查找操作、过滤操作、和/或匹配操作。
在本发明实施方式的第二方面中,提供了一种音频文件的处理装置,包括第一获取模块、第二获取模块和关联处理模块。第一获取模块用于获取音频文件的指纹数据,所述指纹数据包括第一数量个比特位。第二获取模块用于对所述指纹数据进行哈希转换,得到索引数据。所述索引数据包括第二数量个比特位,第二数量小于第一数量,一个索引数据对应一个或多个指纹数据。关联处理模块用于以所述索引数据为索引建立所述音频文件的指纹库。
在本发明的一个实施例中,第二获取模块对所述指纹数据进行哈希转换,得到索引数据包括:第二获取模块用于将所述指纹数据与指定乘数相乘,得到第一中间结果;将第一中间结果从后向前第一数量个比特位开始的部分作为第二中间结果;截取第二中间结果中第二数量个比特位的部分,得到第二数量个比特位的索引数据。
在本发明的另一实施例中,第二获取模块还用于基于第一数量和黄金分割法则生成指定乘数。
在本发明的又一实施例中,第一数量为不小于16且不大于64的整数,第二数量为小于第一数量的正整数。
在本发明的再一实施例中,第一获取模块获取音频文件的指纹数据包括:第一获取模块用于利用指纹提取算法提取音频文件的指纹数据。
在本发明的再一实施例中,上述装置还包括执行模块。执行模块用于在关联处理模块以所述索引数据为索引建立所述音频文件的指纹库之后,基于所述指纹库对所述音频文件执行存储操作、查找操作、过滤操作、和/或匹配操作。
在本发明实施方式的第三方面中,提供了一种介质,存储有计算机可执行指令,所述指令在被处理器执行时用于实现:上述实施例中任一项所述的音频文件的处理方法。
在本发明实施方式的第四方面中,提供了一种计算设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的可执行指令,所述处理器执行所述指令时实现:上述实施例中任一项所述的音频文件的处理方法。
根据本发明实施方式的音频文件的处理方法和装置,通过对音频文件的指纹数据进行哈希转换,将长度较大的指纹数据转换为长度较小的索引数据,在可接受的程度内将其散列程度降低得到索引数据,优化音频文件的索引分布,令所需要的存储空间大大减小,提高资源利用率,使得对音频文件的操作变得更加省时、高效。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
图1示意性地示出了根据本发明实施方式的音频文件的处理方法及其装置的应用场景;
图2示意性地示出了根据本发明一个实施例的音频文件的处理方法的流程图;
图3A示意性地示出了根据本发明另一个实施例的音频文件的处理方法的流程图;
图3B示意性地示出了根据本发明一个实施例的指纹提取算法的示意图;
图4示意性地示出了根据本发明一个实施例的音频文件的处理装置的框图;
图5示意性地示出了根据本发明另一个实施例的音频文件的处理装置的框图;
图6示意性地示出了根据本发明实施方式的计算机可读存储介质产品的示意图;
图7示意性地示出了根据本发明实施方式的计算设备的框图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提出了一种音频文件的处理方法、介质、装置和计算设备。
在本文中,需要理解的是,所涉及的术语包括:指纹数据、索引数据、哈希转换等。其中,指纹数据是通过特定的算法从一段音频文件中提取出来表示该音频文件的重要声学特征的信息,可用于对音频文件进行识别、跟踪、定位等操作。索引数据是指纹数据经哈希转换得到的信息,一个索引数据可以对应多个音频文件。哈希转换对应于指纹数据与索引数据之间的映射关系。此外,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
发明概述
在实现本公开构思的过程中,发明人发现相关技术中至少存在如下问题:
现有技术中所能获取的音频指纹虽然具有准确性高、鲁棒性高等特点,但音频指纹的长度较大,所需存储空间巨大,在基于音频指纹所构建的指纹库中进行搜索、查找等操作需要耗费较多的时间和资源,效率低下。
为此,本发明实施例提供了一种音频文件的处理方法和装置,该方法包括:获取音频文件的指纹数据,所述指纹数据包括第一数量个比特位;对所述指纹数据进行哈希转换,得到索引数据,所述索引数据包括第二数量个比特位,第二数量小于第一数量,一个索引数据对应一个或多个指纹数据;以所述索引数据为索引建立所述音频文件的指纹库。其中,由于第二数量小于第一数量,即索引数据的长度小于指纹数据的长度,虽然长度较大的指纹数据对音频文件来说散列程度更高,但以长度较大的指纹数据对音频文件构造指纹库所需要的存储空间巨大,对音频文件进行操作非常费时、效率低下,本方案对音频文件的指纹数据进一步进行哈希转换,在可接受的程度内将其散列程度降低得到索引数据,优化音频文件的索引分布,令所需要的存储空间大大减小,提高资源利用率,使得对音频文件的操作变得更加省时、高效。
在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。
应用场景总览
首先参考图1详细阐述本发明实施例的音频文件的处理方法及其装置的应用场景。
图1示意性地示出了根据本发明实施方式的音频文件的处理方法及其装置的应用场景。如图1所示,在该应用场景中,获取到一段音频文件,基于该音频文件的内容提取可以代表该音频文件的重要声学特征的数字指纹,其主要目的是建立有效机制来比较多个音频文件的感知听觉质量,可以广泛应用于歌曲识别、内容监播、内容去重等领域。一个音频指纹系统通常包括一个计算重要听觉特征的指纹提取算法和一个在指纹库中进行有效搜索的比对算法。
示例性方法
下面结合图1的应用场景,参考图2~图3B来描述根据本发明示例性实施方式的音频文件的处理方法。需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。
图2示意性地示出了根据本发明一个实施例的音频文件的处理方法的流程图。如图2所示,该方法包括如下操作:
操作S201,获取音频文件的指纹数据,所述指纹数据包括第一数量个比特位;
操作S202,对所述指纹数据进行哈希转换,得到索引数据,所述索引数据包括第二数量个比特位,第二数量小于第一数量,一个索引数据对应一个或多个指纹数据;以及
操作S203,以所述索引数据为索引建立所述音频文件的指纹库。
在上述操作S201~S203中,设第一数量为N1,第二数量为N2,音频文件的指纹数据包括N1个比特位,音频文件的索引数据包括N2个比特位,N1>N2,现有技术中一般以指纹数据为音频文件的索引建立音频文件的指纹库,而本方案将指纹数据转换为长度更小的索引数据,以索引数据为音频文件的索引建立音频文件的指纹库。以指纹数据为音频文件的索引建立音频文件的指纹库,例如可以是构造2N1维度的第一哈希表,在该第一哈希表中,所有可能得到的指纹数据作为键(key),音频样本库中的样本音频文件的相关信息(如存储位置信息、唯一标识等)作为值(value),后续即可基于该第一哈希表对未知音频文件进行操作,如当获取到一个未知音频文件时,可以先获取该未知音频文件的指纹数据,再依据该指纹数据从第一哈希表中找到与该指纹数据匹配的键,再根据该键所对应的值获知与未知音频数据相匹配的样本音频数据。而以索引数据为音频文件的索引建立音频文件的指纹库,例如可以是构造2N2维度的第二哈希表,在该第二哈希表中,所有可能得到的索引数据作为键(key),音频样本库中的样本音频文件的相关信息(如存储位置信息、唯一标识等)作为值(value),后续即可基于该第二哈希表对未知音频文件进行操作,如当获取到一个未知音频文件时,可以先获取该未知音频文件的指纹数据,再将指纹数据转换为长度更小的索引数据,再依据该索引数据从第二哈希表中找到与该索引数据匹配的键,再根据该键所对应的值获知与未知音频数据相匹配的样本音频数据。比较二者可知,由于N1>N2,第一哈希表所占的存储空间远远大于第二哈希表所占的存储空间,在第一哈希表中进行数据的查找和搜索所需的时间和资源远远超过在第二哈希表中进行数据的查找和搜索所需的时间和资源,且在音频样本库中样本音频文件数量一致的前提下,第一哈希表的空间利用率远远小于第二哈希表的空间利用率。
可见,图2所示的方法通过对音频文件的指纹数据进行哈希转换,得到长度比指纹数据更小的索引数据,虽然长度较大的指纹数据对音频文件来说散列程度更高,但以长度较大的指纹数据对音频文件构造指纹库所需要的存储空间巨大,对音频文件进行操作非常费时、效率低下,本方案对音频文件的指纹数据进一步进行哈希转换,在可接受的程度内将其散列程度降低得到索引数据,优化音频文件的索引分布,令所需要的存储空间大大减小,提高资源利用率,使得对音频文件的操作变得更加省时、高效。
需要说明的是,本方案在描述数据长度时所针对的为数据的二进制形式,需要进行进制变换时会加以说明。以及,上述例子为说明本方案的原理,描述了具体的指纹库的构造形式、具体的操作内容等,在原理不变的前提下,这些都可以根据需要选择,在此不做限制。
在本发明的实施例中,图2所示方法的操作S201获取音频文件的指纹数据可以是利用指纹提取算法提取音频文件的指纹数据,利用不同的指纹提取算法可以获得不同长度的指纹数据,本发明的实施例可以根据需要适用于各种长度的指纹数据。例如指纹数据可以包括不小于16且不大于64个比特位,即第一数量为不小于16且不大于64的整数,操作S202得到的索引数据的长度小于指纹数据的长度,则第二数量为小于第一数量的正整数。在其他例子中,第一数量也可以是其他正整数,同理,第二数量为小于第一数量的正整数。
在本发明的一个实施例中,图2所示方法的操作S202对所述指纹数据进行哈希转换,得到索引数据包括:将所述指纹数据与指定乘数相乘,得到第一中间结果,将第一中间结果从后向前第一数量个比特位开始的部分作为第二中间结果,截取所述第二中间结果中从前向后第二数量个比特位的部分,得到第二数量个比特位的索引数据。则在上述第一数量为不小于16且不大于64的整数的例子中,第二数量为小于第一数量的正整数。
可见,本实施例通过将指纹数据先与指定乘数相乘、再取部分、然后右移的方式将长度较长的指纹数据变为长度较短的索引数据,以32个比特位的指纹数据为例,将其转换为长度较小的索引数据,使得原来具有232种可能性的指纹数据均匀地散列在更小数量的可能性中,以长度较小的索引数据为音频文件的索引建立音频文件的指纹库,可以降低指纹库所对应的哈希表的维度,减小指纹库所占的存储空间,提高在指纹库中进行查找、搜索的效率。
其中,作为一个可选的实施例,上述操作S202对所述指纹数据进行哈希转换,得到索引数据还包括:基于第一数量和黄金分割法则生成指定乘数,则在获得指定乘数之后再执行上述得到索引数据的过程。本实施例在对指纹数据进行哈希转换的过程中,利用黄金分割法则确定与指纹数据相乘的指定乘数,这样得到的指定乘数可以使得哈希转换过程对应的散列更加均匀,得到索引数据的分布更加合理。
下面参考图3A~图3B,结合具体实施例对图2所示的方法做进一步说明。
图3A示意性地示出了根据本发明另一个实施例的音频文件的处理方法的流程图。如图3A所示,该方法包括如下操作:
操作S301,获取音频文件。
操作S302,利用指纹提取算法提取音频文件的指纹数据。
本操作可以利用图3B所示的指纹提取算法提取音频文件的指纹数据。
图3B示意性地示出了根据本发明一个实施例的指纹提取算法的示意图。
如图3B所示,该指纹提取算法首先利用帧对音频文件进行划分,将帧长定义为0.37秒,重叠因子定义为31/32,每个非重叠部分为0.37×1/32≈0.0116秒,即将音频文件均匀划分为多个音频片段,每个音频片段的长度为11.6毫秒。然后,对每个11.6毫秒的音频片段进行傅里叶变换转换为对应的频谱,再将300Hz~2000Hz之间的频带以等对数间隔分为33个无重叠的子带,对于每个子带,计算该子带的能量,将该子带的能量与相邻子带的能量相比,如果能量增加则编码为1,如果能量减少则编码为0,从而得到音频文件对应的32个比特位的指纹数据。其中,之所以选取300Hz~2000Hz之间的频带是因为人耳对音频文件的鉴别主要集中在该范围内,频带之间按照等对数间隔划分是因为人耳对不同频率的反应是非线性的。
在本例中,操作S302得到的指纹数据包括32个比特位,即第一数量为32,然后接着执行图3A所示方法的操作S303。
操作S303,基于第一数量和黄金分割法则生成指定乘数。
本操作中,为了将指纹数据转换为更为合理的索引数据,在设计哈希函数时,需要找到一个理想的乘数,从而实现转换得到的哈希值的良好分布。经过发明人的研究发现,利用黄金分割法则可以成功地找到该乘数,设第一数量为N1,黄金分割比例为λ≈0.6180339887,则指定乘数C为:C=Wλ,其中W代表指纹数据的取值可能性的总数,即W=2N1
例如,第一数量N1=32,则W=232,指定乘数C=232×0.6180339887=2654435769。同理,若第一数量N1=16,则W=216,指定乘数C=40503。
操作S304,将所述指纹数据与指定乘数相乘,得到第一中间结果,将第一中间结果从后向前第一数量个比特位开始的部分作为第二中间结果,截取第二中间结果中第二数量个比特位的部分,得到第二数量个比特位的索引数据。
沿用上文第一数量N1=32,指定乘数C=2654435769的例子,假设指纹数据为256,将指纹数据与指定乘数相乘得到第一中间结果为:
256×2654435769=679535556864
将该第一中间结果转换为二进制为:1001 1110 0011 0111 0111 1001 10111001 0000 0000,由于指纹数据包括32个比特位,则仅用4字节(即32个比特位)来表征该结果,因此只取最后32个比特位,即将第一中间结果从后向前32个比特位开始的部分作为第二中间结果:0011 0111 0111 1001 1011 1001 0000 0000,将第二中间结果转换为10进制为:930724096。此时再截取第二中间结果930724096中从前向后24个比特位的部分(即用24个比特位来表征新结果),即可以得到最终结果:0011 0111 0111 1001 1011 1001,十进制结果为3635641,作为指纹数据转换得到的索引数据,该索引数据包括N2=24个比特位,即在本例中,第一数量N1为32,第二数量N2为24。
同理,在另外一个例子中,第一数量N1=32,指定乘数C=2654435769的例子,假设指纹数据为256,将指纹数据与指定乘数相乘得到第一中间结果为:
256×2654435769=679535556864
将该第一中间结果转换为二进制为:1001 1110 0011 0111 0111 1001 10111001 0000 0000,由于指纹数据包括32个比特位,则仅用4字节(即32个比特位)来表征该结果,因此只取最后32个比特位,即将第一中间结果从后向前32个比特位开始的部分作为第二中间结果:0011 0111 0111 1001 1011 1001 0000 0000,将第二中间结果转换为10进制为:930724096。此时再截取第二中间结果930724096中从前向后28个比特位的部分(即用28个比特位来表征新结果),即可以得到结果:0011 0111 0111 1001 1011 1001 0000,十进制结果为58170256,作为指纹数据转换得到的索引数据,该索引数据包括N2=28个比特位,即在本例中,第一数量N1为32,第二数量N2为28。
操作S305,以索引数据为索引建立音频文件的指纹库,基于所述指纹库对音频文件执行预定操作。
上述过程将指纹数据转换为索引数据,将2N1的第一哈希表转换为2N2的第二哈希表,基于第一哈希表中的指纹数据与第二哈希表中的索引数据之间的转换关系,在第二哈希表中建立了索引数据与音频文件的映射关系,进而建立了以索引数据为索引的音频文件的指纹库。
本操作中,基于所述指纹库对音频文件执行预定操作可以包括:基于所述指纹库对所述音频文件执行存储操作、查找操作、过滤操作、和/或匹配操作,由于索引数据的长度小于指纹数据的长度,以索引数据为索引对音频文件进行上述操作相较于以指纹数据为索引对音频文件进行上述操作,会更加简单、省时、高效、节省资源,下面举例进行说明:
在上述将包括32个比特位的指纹数据转换为包括24个比特位的索引数据的例子中,对于32比特位的指纹数据来说,如果建立以32比特位的指纹数据为索引的音频文件的指纹库,虽然散列程度高且准确,但却存在如下问题:存储32比特位的指纹数据需要232维度的第一哈希表,每个指纹数据包括32个比特位,一共包括232种结果,需要占用巨大的内存空间,从上述巨大的内存空间中查找具体的指纹数据需要消耗大量的时间和资源,并且由于在应用场景下样本音频文件的数量相对于上述第一哈希表是相当小的,即所用到的样本音频文件的指纹数据的数量远远小于上述第一哈希表的长度,又由于应用场景下所用到的样本音频文件的指纹数据在上述第一哈希表中的分布不均匀,使得关于指纹数据的第一哈希表的空间利用率很低,其中很大部分对应的指纹数据不会被使用。相比之下,对于24比特位的索引数据来说,存储24比特位的索引数据仅需要224维度的第二哈希表,大大减小了所占据的内存空间,从该内存空间中查找具体的索引数据所需消耗的时间和资源也大大减少,且由于哈希表变小,索引数据相对于音频文件的散列程度较低,使得应用场景中所用到的音频文件的索引数据在224大小的第二哈希表中分布较为均匀,第二哈希表的空间利用率也被大大提高。
具体地,一首歌包括多个音频文件,一首歌可提取15000个指纹数据,一万首歌共150,000,000个指纹数据。若采用指纹数据为音频文件的索引,对应于大小为232大小的第一哈希表,上述音频文件的指纹数据在232大小的第一哈希表中的空间利用率为3.492%,而若采用索引数据为音频文件的索引,对应于大小为224大小的第二哈希表,上述音频文件的索引数据在224大小的第二哈希表中的空间利用率可以达到894%,可以看出在224大小的第二哈希表中会产生哈希冲突,即一个索引数据对应于多个音频文件,本例中一个索引数据对应8.9个结果。再相比较二者在内存的占用,仅仅以空的哈希表计算,前者占用16GB内存空间,而后者仅仅占用64MB,二者差距达到256倍。当分别以指纹数据和索引数据为索引对音频文件进行操作时,仅比较试图在16GB的内存中找到一个32比特位的具体值和在64MB的内存中找到一个24位的具体值所消耗的计算资源也存在巨大差异。
因此,基于上述分析,本方案利用合理的哈希转换过程,将24比特位的索引数据替代32比特位的指纹数据作为音频文件的索引,在可接收的散列程度和准确度的范围内,大幅度提高音频文件所对应的索引数据在哈希表的空间利用率,优化了音频文件所对应的索引数据在哈希表中的分布,最大限度地提高资源利用率和效率,适用于对于音频文件的一定粒度的查找、匹配、过滤等操作。
上文中仅以具体的指纹数据和索引数据进行举例以说明本方案的实施过程及原理,上述指纹数据和索引数据在符合第一数量大于第二数量的前提下可以根据需要选取,在此不做限制。
示例性装置
在介绍了本发明示例性实施方式的方法之后,接下来,参考图4~图5对本发明示例性实施方式的、音频文件的处理装置进行详细阐述。
图4示意性地示出了根据本发明一个实施例的音频文件的处理装置的框图。如图4所示,该音频文件的处理装置400包括第一获取模块401、第二获取模块402和关联处理模块403。
第一获取模块401,用于获取音频文件的指纹数据,所述指纹数据包括第一数量个比特位。第二获取模块402,用于对所述指纹数据进行哈希转换,得到索引数据,所述索引数据包括第二数量个比特位,第二数量小于第一数量,一个索引数据对应一个或多个指纹数据。关联处理模块403,用于以所述索引数据为索引建立所述音频文件的指纹库。
可见,图4所示的装置通过对音频文件的指纹数据进行哈希转换,得到长度比指纹数据更小的索引数据,虽然长度较大的指纹数据对音频文件来说散列程度更高,但以长度较大的指纹数据对音频文件构造指纹库所需要的存储空间巨大,对音频文件进行操作非常费时、效率低下,本方案对音频文件的指纹数据进一步进行哈希转换,在可接受的程度内将其散列程度降低得到索引数据,优化音频文件的索引分布,令所需要的存储空间大大减小,提高资源利用率,使得对音频文件的操作变得更加省时、高效。
在本发明的一个实施例中,第二获取模块402对所述指纹数据进行哈希转换,得到索引数据包括:第二获取模块402用于将所述指纹数据与指定乘数相乘,得到第一中间结果;将第一中间结果从后向前第一数量个比特位开始的部分作为第二中间结果;截取第二中间结果中第二数量个比特位的部分,得到第二数量个比特位的索引数据。
其中,作为一个可选的实施例,第二获取模块402还用于基于第一数量和黄金分割法则生成指定乘数,然后再将所述指纹数据与指定乘数相乘,得到第一中间结果。
例如第一数量可以为不小于16且不大于64的整数,第二数量为小于第一数量的正整数。
在本发明的一个实施例中,第一获取模块401获取音频文件的指纹数据包括:第一获取模块401用于利用指纹提取算法提取音频文件的指纹数据。
图5示意性地示出了根据本发明另一个实施例的音频文件的处理装置的框图。如图5所示,该音频文件的处理装置500包括:第一获取模块401、第二获取模块402、关联处理模块403和执行模块404。其中第一获取模块401、第二获取模块402和关联处理模块403在上文中已经说明,重复的部分不再赘述。
执行模块404用于在所述关联处理模块403以所述索引数据为索引建立所述音频文件的指纹库之后,基于所述指纹库对所述音频文件执行存储操作、查找操作、过滤操作、和/或匹配操作。
可以看出,本发明的实施例利用合理的哈希转换过程,将长度较小的索引数据替代长度较大的指纹数据作为音频文件的索引,在可接收的散列程度和准确度的范围内,大幅度提高音频文件所对应的索引数据在哈希表的空间利用率,优化了音频文件所对应的索引数据在哈希表中的分布,最大限度地提高资源利用率和效率,适用于对于音频文件的一定粒度的查找、匹配、过滤等操作。
需要说明的是,装置部分实施例中各模块/单元/子单元等的实施方式、解决的技术问题、实现的功能、以及达到的技术效果分别与方法部分实施例中各对应的步骤的实施方式、解决的技术问题、实现的功能、以及达到的技术效果相同或类似,在此不再赘述。
示例性介质
在介绍了本发明示例性实施方式的方法和装置之后,接下来,对本发明示例性实施方式的、音频文件的处理介质进行介绍。
本发明实施例提供了一种介质,存储有计算机可执行指令,所述指令在被处理器执行时用于实现上述方法实施例中任一项所述的音频文件的处理方法。
在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在计算设备上运行时,所述程序代码用于使所述计算设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的音频文件的处理方法中的步骤,例如,所述计算设备可以执行如图2中所示的:操作S201,获取音频文件的指纹数据,所述指纹数据包括第一数量个比特位;操作S202,对所述指纹数据进行哈希转换,得到索引数据,所述索引数据包括第二数量个比特位,第二数量小于第一数量,一个索引数据对应一个或多个指纹数据;以及操作S203,以所述索引数据为索引建立所述音频文件的指纹库。当然,所述计算设备也可以执行如图3A所示的操作步骤。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
图6示意性地示出了根据本发明实施方式的计算机可读存储介质产品的示意图,如图6所示,描述了根据本发明的实施方式的音频文件的处理的程序产品60,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在计算设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆,RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言——诸如Java,C++等,还包括常规的过程式程序设计语言——诸如“C”,语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)一连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
示例性计算设备
在介绍了本发明示例性实施方式的方法、介质和装置之后,接下来,介绍根据本发明的另一示例性实施方式的音频文件的处理计算设备。
本发明实施例还提供了一种计算设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的可执行指令,所述处理器执行所述指令时实现上述方法实施例中任一项所述的音频文件的处理方法。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
在一些可能的实施方式中,根据本发明的音频文件的处理计算设备可以至少包括至少一个处理单元、以及至少一个存储单元。其中,所述存储单元存储有程序代码,当所述程序代码被所述处理单元执行时,使得所述处理单元执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的信息呈现方法中的步骤。例如,所述处理单元可以执行如图2中所示的:操作S201,获取音频文件的指纹数据,所述指纹数据包括第一数量个比特位;操作S202,对所述指纹数据进行哈希转换,得到索引数据,所述索引数据包括第二数量个比特位,第二数量小于第一数量,一个索引数据对应一个或多个指纹数据;以及操作S203,以所述索引数据为索引建立所述音频文件的指纹库。当然,所述计算设备也可以执行如图3A所示的操作步骤。
下面参照图7来描述根据本发明的这种实施方式的音频文件的处理计算设备70。如图7所示的计算设备70仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,计算设备70以通用计算设备的形式表现。计算设备70的组件可以包括但不限于:上述至少一个处理单元701、上述至少一个存储单元702、连接不同系统组件(包括存储单元702和处理单元701)的总线703。
总线703表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、图形加速端口、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储单元702可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)7021和/或高速缓存存储器7022,还可以进一步包括只读存储器(ROM)7023。
存储单元702还可以包括具有一组(至少一个)程序模块7024的程序/实用工具7025,这样的程序模块7024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
计算设备70也可以与一个或多个外部设备704(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与计算设备70交互的设备通信,和/或与使得计算设备70能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/0)接口705进行。并且,计算设备70还可以通过网络适配器706与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器706通过总线703与计算设备70的其它模块通信。应当明白,尽管图中未示出,可以结合计算设备70使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了音频文件的处理装置的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。

Claims (10)

1.一种音频文件的处理方法,包括:
获取音频文件的指纹数据,所述指纹数据包括第一数量个比特位;
对所述指纹数据进行哈希转换,得到索引数据,所述索引数据包括第二数量个比特位,第二数量小于第一数量,一个索引数据对应一个或多个指纹数据;
以所述索引数据为索引建立所述音频文件的指纹库。
2.根据权利要求1所述的方法,其中,对所述指纹数据进行哈希转换,得到索引数据包括:
将所述指纹数据与指定乘数相乘,得到第一中间结果;
将第一中间结果从后向前第一数量个比特位开始的部分作为第二中间结果;
截取第二中间结果中从前向后第二数量个比特位的部分,得到第二数量个比特位的索引数据。
3.根据权利要求2所述的方法,其中,对所述指纹数据进行哈希转换,得到索引数据还包括:基于第一数量和黄金分割法则生成指定乘数。
4.根据权利要求2所述的方法,其中:
第一数量为不小于16且不大于64的整数,第二数量为小于第一数量的正整数。
5.根据权利要求1所述的方法,其中,获取音频文件的指纹数据包括:利用指纹提取算法提取音频文件的指纹数据。
6.根据权利要求1所述的方法,其中,在以所述索引数据为索引建立所述音频文件的指纹库之后,所述方法还包括:基于所述指纹库对所述音频文件执行存储操作、查找操作、过滤操作、和/或匹配操作。
7.一种音频文件的处理装置,包括:
第一获取模块,用于获取音频文件的指纹数据,所述指纹数据包括第一数量个比特位;
第二获取模块,用于对所述指纹数据进行哈希转换,得到索引数据,所述索引数据包括第二数量个比特位,第二数量小于第一数量,一个索引数据对应一个或多个指纹数据;
关联处理模块,用于以所述索引数据为索引建立所述音频文件的指纹库。
8.根据权利要求7所述的装置,其中,所述第二获取模块对所述指纹数据进行哈希转换,得到索引数据包括:
所述第二获取模块,用于将所述指纹数据与指定乘数相乘,得到第一中间结果;将第一中间结果从后向前第一数量个比特位开始的部分作为第二中间结果;截取第二中间结果中从前向后第二数量个比特位的部分,得到第二数量个比特位的索引数据。
9.一种介质,存储有计算机可执行指令,所述指令在被处理器执行时用于实现:
如权利要求1至6中任一项所述的音频文件的处理方法。
10.一种计算设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的可执行指令,所述处理器执行所述指令时实现:
如权利要求1至6中任一项所述的音频文件的处理方法。
CN201810989723.7A 2018-08-28 2018-08-28 音频文件的处理方法、介质、装置和计算设备 Pending CN110866141A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810989723.7A CN110866141A (zh) 2018-08-28 2018-08-28 音频文件的处理方法、介质、装置和计算设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810989723.7A CN110866141A (zh) 2018-08-28 2018-08-28 音频文件的处理方法、介质、装置和计算设备

Publications (1)

Publication Number Publication Date
CN110866141A true CN110866141A (zh) 2020-03-06

Family

ID=69651810

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810989723.7A Pending CN110866141A (zh) 2018-08-28 2018-08-28 音频文件的处理方法、介质、装置和计算设备

Country Status (1)

Country Link
CN (1) CN110866141A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113747098A (zh) * 2021-07-30 2021-12-03 荣耀终端有限公司 一种带有音频标识的照片文件生成方法、照片显示方法和设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102314875A (zh) * 2011-08-01 2012-01-11 北京百度网讯科技有限公司 一种音频文件的识别方法和装置
CN104715033A (zh) * 2015-03-16 2015-06-17 太原理工大学 一种阶梯式音频检索方法
CN105426413A (zh) * 2015-10-31 2016-03-23 华为技术有限公司 一种编码方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102314875A (zh) * 2011-08-01 2012-01-11 北京百度网讯科技有限公司 一种音频文件的识别方法和装置
CN104715033A (zh) * 2015-03-16 2015-06-17 太原理工大学 一种阶梯式音频检索方法
CN105426413A (zh) * 2015-10-31 2016-03-23 华为技术有限公司 一种编码方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MEI CHEN等: "A Fast Retrieval Algorithm Based on Fibonacci Hashing for Audio Fingerprinting Systems", 《ICAIEES 2013》 *
孙宁等: "一种改进的Philips音频指纹检索算法", 《计算机工程》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113747098A (zh) * 2021-07-30 2021-12-03 荣耀终端有限公司 一种带有音频标识的照片文件生成方法、照片显示方法和设备

Similar Documents

Publication Publication Date Title
US11495238B2 (en) Audio fingerprinting
CN112527816B (zh) 数据血缘关系解析方法、系统、计算机设备及存储介质
CN104008064B (zh) 用于多级存储器压缩的方法和系统
KR101625944B1 (ko) 오디오 인식 방법 및 기기
US9450603B2 (en) Compression of integer data using a common divisor
US20180107735A1 (en) Audio generation method, server, and storage medium
CN108829884B (zh) 数据映射方法及装置
JP6586514B2 (ja) オーディオ処理の方法、装置及び端末
US9201754B2 (en) Recording application consumption details
CN111522574B (zh) 差分包生成方法及相关设备
CN114598597B (zh) 多源日志解析方法、装置、计算机设备及介质
CN112035401A (zh) 模型数据处理方法、装置、电子设备及可读介质
US20120324560A1 (en) Token data operations
CN110866141A (zh) 音频文件的处理方法、介质、装置和计算设备
CN110889010A (zh) 音频匹配方法、装置、介质和电子设备
CN109240998B (zh) 可配置的文件解析方法
US8686881B1 (en) Efficient estimation of data compression ratios
CN109783440B (zh) 数据存储方法及数据检索方法、装置、介质、电子设备
CN115809267A (zh) 一种用于生成审计结果的方法、设备、介质及程序产品
US20220237158A1 (en) Method, electronic device, and computer program product for data processing
CN110851452B (zh) 数据表连接处理方法及装置、电子设备和存储介质
CN114090514A (zh) 分布式系统的日志检索方法及装置
CN115136230A (zh) 基于音调对抗网络的无监督歌声语音转换
CN111651338A (zh) 日志格式化时间的获取系统及其方法
CN110659345B (zh) 事实报表的数据推送方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20200306

RJ01 Rejection of invention patent application after publication