CN104679847B - 一种构建在线实时更新海量音频指纹库的方法和设备 - Google Patents

一种构建在线实时更新海量音频指纹库的方法和设备 Download PDF

Info

Publication number
CN104679847B
CN104679847B CN201510079627.5A CN201510079627A CN104679847B CN 104679847 B CN104679847 B CN 104679847B CN 201510079627 A CN201510079627 A CN 201510079627A CN 104679847 B CN104679847 B CN 104679847B
Authority
CN
China
Prior art keywords
audio
frequency fingerprint
key value
index list
fingerprint
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.)
Active
Application number
CN201510079627.5A
Other languages
English (en)
Other versions
CN104679847A (zh
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.)
Gaodi Network Technology (Beijing) Co., Ltd.
Original Assignee
Gaodi Network Technology (beijing) 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 Gaodi Network Technology (beijing) Co Ltd filed Critical Gaodi Network Technology (beijing) Co Ltd
Priority to CN201510079627.5A priority Critical patent/CN104679847B/zh
Publication of CN104679847A publication Critical patent/CN104679847A/zh
Priority to KR1020150162353A priority patent/KR20160100211A/ko
Priority to KR1020150170033A priority patent/KR102431806B1/ko
Priority to KR1020150181165A priority patent/KR20160100219A/ko
Priority to KR1020160004208A priority patent/KR101740271B1/ko
Priority to DE102016001035.5A priority patent/DE102016001035A1/de
Application granted granted Critical
Publication of CN104679847B publication Critical patent/CN104679847B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/32User authentication using biometric data, e.g. fingerprints, iris scans or voiceprints
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • G06F16/2386Bulk updating operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/60Information retrieval; Database structures therefor; File system structures therefor of audio data
    • G06F16/61Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6272Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database by registering files or documents with a third party

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Library & Information Science (AREA)
  • Management Or Editing Of Information On Record Carriers (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)

Abstract

本发明提供一种构建在线实时更新音频指纹库的方法和设备,解决现有技术中海量音频指纹库不方便在线实时更新的技术问题。其中,构建在线实时更新音频指纹库的方法,包括:建立具有相同key值的音频指纹与所述key值的对应关系;建立包含每个key值与其对应音频指纹的索引列表,使索引列表中的每一个key值均以指针的形式指向其对应的音频指纹;以及将具有相同key值的音频指纹连续存储。本发明可使在线服务引擎支持实时添加、删除歌曲指纹,而且不会影响搜索服务,避免了离线建库、重启服务所带来的繁琐和耗时的工作,同时保证了海量音频指纹库的数据时效性,实现了秒级的数据更新需求响应能力。

Description

一种构建在线实时更新海量音频指纹库的方法和设备
技术领域
本发明涉及音频指纹识别技术领域,具体涉及一种构建在线实时更新海量音频指纹库的方法和设备。
背景技术
音频指纹识别(俗称“听音识曲”)是一种新兴的音乐搜索技术,该技术通过分析音频文件的频谱,提取称为“音频指纹”的数字特征,并使用数字特征构建“海量音频指纹库”,部署于网络服务器上,客户端可将录制的未知音频片段发送到服务器,服务器使用相同的算法提取“音频指纹”,然后通过搜索算法在海量音频指纹库中查找相似特征,并根据找到的若干特征推测目标音频文件,将结果返回给客户端即完成了整个识别过程。音频指纹识别是一种兼具数据密集型和计算密集型的应用:海量音频指纹库必须包含足够多的音频文件的特征,才能保证应用的识别率,该规模通常为千万级;搜索算法的计算量巨大,为了保证搜索速度,通常首先离线构建指纹库,并进行序列化处理生成一个文件,以使数据连续存储,避免过多指针跳转操作,然后将索引文件完全加载到内存中提供检索服务。
现有技术中海量音频指纹库的更新方法,由于索引数据连续存储在一块内存中,通常的解决方案很难支持在线添加、删除音频指纹索引数据,故每次更新均需将服务器重启。图1所示,现有的解决方案一般将海量音频指纹索引库划分为多个固定小的音频指纹库(块1、块2……块n),积攒一定数量的新数据后,需要离线重建最后一个不满的音频指纹库(块n),然后重新启动服务(重启服务更新块n),将最新的音频指纹库替换到线上。由此可知,离线建库,重启服务的索引数据更新方法具有操作繁琐、更新不及时等固有缺陷,无法提供及时的新歌搜索服务,因此,研发一种在线实时更新海量音频指纹库索引数据的方法成为一种必需。
发明内容
为此,本发明提供一种构建在线实时更新音频指纹库的方法和设备,解决现有技术中海量音频指纹库不方便在线实时更新的技术问题。
为此,本发明提供一种构建在线实时更新音频指纹库的方法,包括:建立具有相同key值的音频指纹与所述key值的对应关系;建立包含每个key值与其对应音频指纹的索引列表,使索引列表中的每一个key值均以指针的形式指向其对应的音频指纹;以及将具有相同key值的音频指纹连续存储。
根据本发明的一个实施方式,其中,建立具有相同key值的音频指纹与所述key值的对应关系包括:将具有相同key值的音频指纹划分为同一数组;并且其中,建立包含每个key值与其对应音频指纹的索引列表包括:使所述索引列表包括数量与key值数量相同的数组。
根据本发明的一个实施方式,其中,进一步包括:在线添加音频指纹,包括:将待添加音频指纹按照其对应key值进行分组,每组中的所述待添加音频指纹具有相同的对应key值;在所述索引列表中查找与所述对应key值相同的key值,以定位待更新音频指纹;复制所述待更新音频指纹;将具有相同key值的待更新音频指纹和所述待添加音频指纹连续存放,以获得新音频指纹;将所述索引列表中指向所述待更新音频指纹的key值的指针,指向所述新音频指纹;将所述待更新音频指纹延迟删除。
根据本发明的一个实施方式,其中,若所述待添加音频指纹中的key值不包含在所述索引列表中,则将其视为新建key值;将所述新建key值连续添加至所述索引列表中后,将与所述新建key值相对应的音频指纹连续存放在所述待更新音频指纹中。
根据本发明的一个实施方式,其中,进一步包括:在线删除音频指纹,包括:将待删除音频指纹按照所述key值进行分组,每组中的所述待删除音频指纹具有相同的对应key值;在所述索引列表中查找与所述对应key值相同的key值,以定位待消除音频指纹;复制所述待消除音频指纹;将复制的所述待消除音频指纹中与位于所述分组中音频指纹相同的音频指纹删除,获得新音频指纹;将所述索引列表中指向所述待消除音频指纹的key值处的指针,指向所述新音频指纹;将所述待消除音频指纹延迟删除。
根据本发明的一个实施方式,其中,所述延迟删除,通过后台线程加以实现。
为此,本发明提供一种构建在线实时更新音频指纹库的设备,包括:用于建立具有相同key值的音频指纹与所述key值的对应关系的装置;用于建立包含每个key值与其对应音频指纹的索引列表的装置,所述索引列表中的每一个key值均以指针的形式指向其对应的音频指纹;以及用于将具有相同key值的音频指纹连续存储的装置。
根据本发明的一个实施方式,其中,进一步包括:用于在线添加音频指纹的装置,包括:用于将待添加音频指纹按照其对应key值进行分组,每组中的所述待添加音频指纹具有相同的对应key值的装置;用于在所述索引列表中查找与所述对应key值相同的key值,以定位待更新音频指纹的装置;用于复制所述待更新音频指纹的装置;用于将具有相同key值的待更新音频指纹和所述待添加音频指纹连续存放,以获得新音频指纹的装置;用于将所述索引列表中指向所述待更新音频指纹的key值的指针,指向所述新音频指纹的装置;用于将所述待更新音频指纹延迟删除的装置。
根据本发明的一个实施方式,其中,进一步包括:用于在线删除音频指纹的装置,包括:用于将待删除音频指纹按照所述key值进行分组,每组中的所述待删除音频指纹具有相同的对应key值的装置;用于在所述索引列表中查找与所述对应key值相同的key值,以定位待消除音频指纹的装置;用于复制所述待消除音频指纹的装置;用于将复制的所述待消除音频指纹中与位于所述分组中音频指纹相同的音频指纹删除,获得新音频指纹的装置;用于将所述索引列表中指向所述待消除音频指纹的key值处的指针,指向所述新音频指纹的装置;用于将所述待消除音频指纹延迟删除的装置。
本发明通过提供一种构建在线实时更新音频指纹库的方法,可使在线服务引擎支持实时添加、删除歌曲指纹,可在1秒钟之内完成,而且不会影响搜索服务,避免了离线建库、重启服务所带来的繁琐和耗时的工作,同时保证了海量音频指纹库的数据时效性,可随时将最新的歌曲添加到在线服务,并可将过期或出现问题的歌曲从在线服务中删除,实现了秒级的数据更新需求响应能力,对于数据即服务的音频检索服务来说意义重大。
进一步的,本发明打破了严格数据连续性的限制条件,将海量音频指纹库按照键(key值)进行划分,每个键(key值)的音频指纹(value)依然是连续存放的,这样,虽带来了少量了地址跳转操作,但避免了多个索引块的设计,索引结构为一个整体,搜索时无需遍历多个索引块,因此,整体性能有所提高。
进一步的,本发明提出的通过更新并替换每个键(key值)的音频指纹(value)的方法实现了在线实时添加、删除歌曲指纹,并通过异步、延迟删除过期数据,异步持久化数据到文件中等方法,可保证在线搜索服务不受索引更新工作的影响,从而实现了对实时数据更新需求的响应。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中海量音频指纹库更新方法示意图;
图2为本发明实施例1中构建在线实时更新音频指纹库的方法流程图;
图3为本发明实施例1中具有相同key值的音频指纹与所述key值的对应关系示意图;
图4为本发明实施例2中索引列表的一个实施方式步骤示意图;
图5为本发明实施例2中索引列表结构示意图;
图6为本发明实施例2中建立包含每个key值与其对应音频指纹的索引列表的具体操作流程示意图;
图7为本发明实施例3中构建在线实时更新音频指纹库的方法流程图;
图8为本发明实施例3中在线添加音频指纹操作流程图;
图9为本发明实施例3中延迟删除操作流程图;
图10为本发明实施例3中特殊情况下在线添加音频指纹操作流程图;
图11为本发明实施例4中在线添加音频指纹操作流程图;
图12为本发明实施例4中在线删除音频指纹操作流程图;
图13为本发明实施例5中构建在线实时更新音频指纹库的设备结构示意图;
图14为本发明实施例6中构建在线实时更新音频指纹库的设备结构示意图;
图15为本发明实施例6中用于在线添加音频指纹的装置结构示意图;
图16为本发明实施例7中构建在线实时更新音频指纹库的设备结构示意图;
图17为本发明实施例7中用于在线删除音频指纹的装置结构示意图;
图18为本发明支持在线实时更新的海量音频指纹库结构示意图;
图19为本发明在线实时添加音频指纹的方法示意图;
图20为本发明在线实时删除音频指纹的方法示意图。
具体实施方式
下面结合说明书附图及实施例,对本发明的具体实施方式作进一步详细描述。以下实施例仅用于说明本发明,但不能用来限制本发明的范围。
本发明中所涉及词汇中:“连续存放”的含义为将新添加的文件内容信息继续补充添加在原有文件信息之后,类似于继续按序号继续添加下一序列的文件资料或将文件并列存放在与之前同类型文件相同文件地址之下,具有并列依次存放的含义;“延迟删除”的含义为,将待删除文件延迟一定时间后在删除,删除前,待删除文件可以正常被访问浏览,待进行中的访问结束后在将文件删除,本发明优选的删除方案是延迟后,通过后台线程进行异步删除,不影响当前线程的正常使用。
实施例1:
不失一般性,如图2所示,为解决现有技术中海量音频指纹库不方便在线实时更新的技术问题,本发明提供一种构建在线实时更新音频指纹库的方法,包括:
S1000.建立具有相同key值的音频指纹与key值的对应关系;
S2000.建立包含每个key值与其对应音频指纹的索引列表,使索引列表中的每一个key值均以指针的形式指向其对应的音频指纹;以及
S3000.将具有相同key值的音频指纹连续存储。
虽然,同一首歌曲会具有多个音频指纹,且每个音频指纹会具有一个key值,但相同的key值会在现有技术中多首不同的歌曲中重复出现;故,在众多歌曲中必然会存在多个音频指纹具有相同的key值;因此如图3所示,本发明首先需要执行步骤S1000,建立具有相同key值的音频指纹与key值的对应关系。
为了满足快速寻找所要定位的待更新的音频指纹,本发明的步骤S2000需要建立包含每个key值与其对应音频指纹的索引列表,使索引列表中的每一个key值均以指针的形式指向其对应的音频指纹;以及步骤S3000将具有相同key值的音频指纹连续存储。
在索引列表中key值以数组的形式按照:key1、key2、key3……的格式依次存放,并将“key1、key2、key3……”依次指向分别与其相对应的若干个音频指纹;然后将具有相同key值的音频指纹(value)连续存储在与其相对应的key值之后,如:若value1和value4具有相同的key值——key1值,则需在key1值后存储有value1和value4
实施例2:
优选的,本发明上述索引列表通过建立依次排列的多个数组来实现,进而,如图4所示,步骤S1000进一步包括:
S1100:将具有相同key值的音频指纹划分为同一数组。
例如:如图:5所示:将key1与value1和value4划分为第一个数组,其余的顺序依次排列。
进一步的,如图6所示,步骤S2000中,建立包含每个key值与其对应音频指纹的索引列表进一步包括:
S2100:使索引列表包括数量与key值数量相同的数组。
如图5所示:有多少个key就会在纵列上存在多少个相应的数组,位于不同数组中的key可能同时对应着多个音频指纹(value)。
实施例3:
优选的,由于现有技术中需要在线添加的音频文件的数量通常会很多,每个音频文件通常包含若干个key值,每个key值均对应一个音频指纹,但这些音频指纹中经常存在很多的音频指纹具有相同的key值,故如图7所示,本发明进一步包括步骤:
S4000:在线添加音频指纹。
进一步的,如图8所示,步骤S4000包括:
S4100:将待添加音频指纹按照其对应key值进行分组,每组中的待添加音频指纹具有相同的对应key值,方便下一步依次按照每一分组的对应key值在索引列表中定位及补充添加音频指纹,以组为单位添加音频指纹能够极大的提升添加速度,进一步节省地址访问的次数与时间。
S4200:在索引列表中查找与对应key值相同的key值,以定位待更新音频指纹;复制待更新音频指纹,之后的添加操作均在复制形成的复制文本中操作,不影响音频指纹库更新过程中的在线访问。
S4300:在复制文件中,将具有相同key值的待更新音频指纹和待添加音频指纹连续存放,以获得新音频指纹,此时新音频指纹即为添加音频指纹后的复制文件。
S4400:将所述索引列表中指向所述待更新音频指纹的key值的指针,指向新音频指纹后在线更新操作完毕,新的音频指纹已按照相应的key值添加至音频指纹库中,并在索引列表中获得相应的位置定位指针。
S4500:将待更新音频指纹延迟删除这一步骤,为对原有的被复制的音频指纹文件采取的后续删除工作,目的为删除多余的文件,以释放多余文件在服务器中所占据的存储空间。
优选的,由于删除操作与当前的运行进程无关,故可另起线程,在服务器不繁忙时做延迟删除处理,故如图9所示,在步骤S4500中,进一步包括步骤:
S4510:延迟删除,通过后台线程加以实现。
优选的,若待添加音频指纹中的key值不包含在索引列表中,则如图10所示,步骤S4500之后进一步包括:
S4600:将新key值视为新建key值;
S4700:将新建key值连续添加至索引列表中后形成更新后的索引列表;
S4800:将与新建key值相对应的音频指纹连续存放在待更新音频指纹中,所新添加的音频指纹的访问地址即为索引列表中新增的新建key值。
实施例4:
优选的,由于为了及时清除位于音频指纹库中过时的音频文件,如图11所示,故本发明进一步包括:
S5000:在线删除音频指纹。
进一步的,如图12所示,步骤S5000进一步包括:
S5100:依照试图删除的所有音频文件所具有的音频指纹,汇总出所有待删除的音频指纹;
S5200:将待删除音频指纹按照key值进行分组,每组中的待删除音频指纹具有相同的对应key值,方便以组为单位进行定位和删除;
S5300:在索引列表中查找与所述对应key值相同的key值,以定位待消除音频指纹;
S5400:复制待消除音频指纹,类似于添加操作,之后的删除作业均在复制后形成的文件中进行,不会影响在线访问;
S5500:将复制的待消除音频指纹中与位于分组中音频指纹相同的音频指纹删除,获得新音频指纹,此时删除工作完毕,只需修改定位指针即可;
S5600:将索引列表中指向待消除音频指纹的key值处的指针,指向新音频指纹,此时在线删除工作完毕依据相应key值访问的音频指纹已不再包含已删除的音频指纹。
S5700:由于将待消除音频指纹何时删除已不再影响当前的访问进程,故本发明可选择将待消除音频指纹延迟删除。
优选的,步骤S5700可选择在服务器不繁忙的时段另起后台线程删除即可,即释放了空间又能减轻服务器的工作负担。
实施例5:
为使本领域技术人员更好的应用本技术方案,如图13所示,本发明进一步提供一种构建在线实时更新音频指纹库的设备,其中,包括:
用于建立具有相同key值的音频指纹与key值的对应关系的装置100;用于建立包含每个key值与其对应音频指纹的索引列表的装置200,索引列表中的每一个key值均以指针的形式指向其对应的音频指纹;以及用于将具有相同key值的音频指纹连续存储的装置300。
实施例6:
此外,如图14所示,本发明一种构建在线实时更新音频指纹库的设备还进一步包括:用于在线添加音频指纹的装置400。
进一步的,如图15所示,用于在线添加音频指纹的装置400的结构包括:用于将待添加音频指纹按照其对应key值进行分组,每组中的所述待添加音频指纹具有相同的对应key值的装置410;用于在所述索引列表中查找与所述对应key值相同的key值,以定位待更新音频指纹的装置420;用于复制所述待更新音频指纹的装置430;用于将具有相同key值的待更新音频指纹和所述待添加音频指纹连续存放,以获得新音频指纹的装置440;用于将所述索引列表中指向所述待更新音频指纹的key值的指针,指向所述新音频指纹的装置450;用于将所述待更新音频指纹延迟删除的装置460。
实施例7:
进一步的,为了让本技术方案更易于实现,如图16所示,本发明一种构建在线实时更新音频指纹库的设备还进一步包括:用于在线删除音频指纹的装置500。
进一步的,如图17所示,用于在线删除音频指纹的装置500的结构包括:用于将待删除音频指纹按照所述key值进行分组,每组中的待删除音频指纹具有相同的对应key值的装置510;用于在索引列表中查找与对应key值相同的key值,以定位待消除音频指纹的装置520;用于复制待消除音频指纹的装置530;用于将复制的待消除音频指纹中与位于分组中音频指纹相同的音频指纹删除,获得新音频指纹的装置540;用于将索引列表中指向待消除音频指纹的key值处的指针,指向新音频指纹的装置550;用于将待消除音频指纹延迟删除的装置560。
根据上述技术方案,具体实施方式如下:
(1)使用所有音频数据的音频指纹数据构建全局海量音频指纹库,并按照key值进行划分,存储在硬盘上,如每个key值一个文件,并通过一定规则存储在指定目录;具体结构如图18所示。
(2)在内存中构建一个数组,记作keylist,数组的下标与key值保持一致,数组的元素初始化为空指针,然后将每个key的文件各自加载到一块连续的内存中,记作values,并将数组中对应下标位置的数据更新为指向对应的values的指针。
(3)搜索时,先通过key在keylist中找到values,然后再在values中过滤符合条件的数据即可。
图19所示,在需要在线添加歌曲指纹时,添加歌曲指纹(由n个(key,value)对组成,n通常为几千),本发明的实施方式如下:
分组:将歌曲指纹按照key值分组,以方便以组为单位将具有相同
key值的音频指纹以插入的方式添加;
定位:根据每组的key值,在索引列表(keylist)中找到要更新的音频指纹(values)记作values-old;索引列表中包含在线使用中的音频指纹库内的所有key值及所有音频指纹与这些所有key值中相应的key值的对应关系,对应关系优选通过指针的形式来实现;
复制,并插入:复制values-old中的内容,并将key组内的所有value与values-old组合,重新构建keylist中key位置应该指向的values-new;
偏移指针:将keylist中key位置的指针指向values-new。
替换、异步删除旧数据:为避免values-old的指针仍在被使用,可将values-old的指针加入一个队列,通过后台线程延迟删除。
异步更新文件:异步更新硬盘上与key对应的文件内容为values-new。
需要说明的是步骤:偏移指针替换、异步删除旧数据为双线程并行操作,不具备时间上的先后顺序的比较。
图20所示,在需要在线删除歌曲指纹时,删除歌曲指纹(由n个(key,value)对组成,n通常为几千)时,若按照现有技术中的做法不仅影响在线访问,删除操作动作过于繁琐,重复运算次数过多,故本发明改进后的实施方式如下:
分组:依照待删除音频文件清单中所统计出的待删除的音频指纹,将待删除音频指纹按照key值进行分组;
定位:根据每组的key值,在索引列表(keylist)中找到要更新的values,记作values-old;
复制,并删除:复制values-old中的内容,在values找到目标value,并删除,将剩下的数据重新组织为values-new。
偏移指针:将keylist中key-new位置的指针指向values-new。
替换、异步删除旧数据:为避免values-old的指针仍在被使用,可将values-old的指针加入一个队列,通过后台线程延迟删除。
异步更新文件:异步更新硬盘上与key对应的文件内容为values-new。
以上发明仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变型,这些改进和变型也应视为本发明的保护范围。
应该注意的是,上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。

Claims (7)

1.一种构建在线实时更新音频指纹库的方法,包括:
建立具有相同key值的音频指纹与所述key值的对应关系;
建立包含每个key值与其对应音频指纹的索引列表,使索引列表中的每一个key值均以指针的形式指向其对应的音频指纹;以及
将具有相同key值的音频指纹连续存储;
进一步地,在线添加音频指纹,包括:
将待添加音频指纹按照其对应key值进行分组,每组中的所述待添加音频指纹具有相同的对应key值;
在所述索引列表中查找与所述对应key值相同的key值,以定位待更新音频指纹;
复制所述待更新音频指纹;
将具有相同key值的待更新音频指纹和所述待添加音频指纹连续存放,以获得新音频指纹;
将所述索引列表中指向所述待更新音频指纹的key值的指针,指向所述新音频指纹;
将所述待更新音频指纹延迟删除。
2.根据权利要求1所述的方法,其中,
建立具有相同key值的音频指纹与所述key值的对应关系包括:
将具有相同key值的音频指纹划分为同一数组;
并且其中,
建立包含每个key值与其对应音频指纹的索引列表包括:
使所述索引列表包括数量与key值数量相同的数组。
3.根据权利要求1所述的方法,其中,
若所述待添加音频指纹中的key值不包含在所述索引列表中,则将其视为新建key值;
将所述新建key值连续添加至所述索引列表中后;
将与所述新建key值相对应的音频指纹连续存放在所述待更新音频指纹中。
4.根据权利要求1所述的方法,进一步包括:
在线删除音频指纹,包括:
将待删除音频指纹按照所述key值进行分组,每组中的所述待删除音频指纹具有相同的对应key值;
在所述索引列表中查找与所述对应key值相同的key值,以定位待消除音频指纹;
复制所述待消除音频指纹;
将复制的所述待消除音频指纹中与位于所述分组中音频指纹相同的音频指纹删除,获得新音频指纹;
将所述索引列表中指向所述待消除音频指纹的key值处的指针,指向所述新音频指纹;
将所述待消除音频指纹延迟删除。
5.根据权利要求3或4所述的方法,其中,所述延迟删除,通过后台线程加以实现。
6.一种构建在线实时更新音频指纹库的设备,包括:
用于建立具有相同key值的音频指纹与所述key值的对应关系的装置;
用于建立包含每个key值与其对应音频指纹的索引列表,使索引列表中的每一个key值均以指针的形式指向其对应的音频指纹的装置;以及
用于将具有相同key值的音频指纹连续存储的装置;
用于在线添加音频指纹的装置,包括:
用于将待添加音频指纹按照其对应key值进行分组,每组中的所述待添加音频指纹具有相同的对应key值的装置;
用于在所述索引列表中查找与所述对应key值相同的key值,以定位待更新音频指纹的装置;
用于复制所述待更新音频指纹的装置;
用于将具有相同key值的待更新音频指纹和所述待添加音频指纹连续存放,以获得新音频指纹的装置;
用于将所述索引列表中指向所述待更新音频指纹的key值的指针,指向所述新音频指纹的装置;
用于将所述待更新音频指纹延迟删除的装置。
7.根据权利要求6所述的设备,进一步包括:
用于在线删除音频指纹的装置,包括:
用于将待删除音频指纹按照所述key值进行分组,每组中的所述待删除音频指纹具有相同的对应key值的装置;
用于在所述索引列表中查找与所述对应key值相同的key值,以定位待消除音频指纹的装置;
用于复制所述待消除音频指纹的装置;
用于将复制的所述待消除音频指纹中与位于所述分组中音频指纹相同的音频指纹删除,获得新音频指纹的装置;
用于将所述索引列表中指向所述待消除音频指纹的key值处的指针,指向所述新音频指纹的装置;
用于将所述待消除音频指纹延迟删除的装置。
CN201510079627.5A 2015-02-13 2015-02-13 一种构建在线实时更新海量音频指纹库的方法和设备 Active CN104679847B (zh)

Priority Applications (6)

Application Number Priority Date Filing Date Title
CN201510079627.5A CN104679847B (zh) 2015-02-13 2015-02-13 一种构建在线实时更新海量音频指纹库的方法和设备
KR1020150162353A KR20160100211A (ko) 2015-02-13 2015-11-19 대용량 오디오 핑거프린트 데이터베이스의 온라인 실시간 업데이팅을 구성하기 위한 방법 및 장치
KR1020150170033A KR102431806B1 (ko) 2015-02-13 2015-12-01 대량 오디오 지문 데이터베이스의 온라인 실시간 업데이트를 구축하는 방법과 장치
KR1020150181165A KR20160100219A (ko) 2015-02-13 2015-12-17 대규모 오디오 지문인식 데이터베이스의 온라인 실시간 업데이트를 구성하기 위한 방법 및 디바이스
KR1020160004208A KR101740271B1 (ko) 2015-02-13 2016-01-13 온라인 상에서 실시간으로 업데이트되는 대규모 오디오 핑거프린트 데이터베이스의 구축 방법 및 장치
DE102016001035.5A DE102016001035A1 (de) 2015-02-13 2016-02-01 Verfahren und Vorrichtung zum Aufbau einer Online-Aktualisierung von grossen Audio-Fingerabdruck-Datenbanken in Echtzeit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510079627.5A CN104679847B (zh) 2015-02-13 2015-02-13 一种构建在线实时更新海量音频指纹库的方法和设备

Publications (2)

Publication Number Publication Date
CN104679847A CN104679847A (zh) 2015-06-03
CN104679847B true CN104679847B (zh) 2019-03-15

Family

ID=53314889

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510079627.5A Active CN104679847B (zh) 2015-02-13 2015-02-13 一种构建在线实时更新海量音频指纹库的方法和设备

Country Status (3)

Country Link
KR (4) KR20160100211A (zh)
CN (1) CN104679847B (zh)
DE (1) DE102016001035A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108334514B (zh) * 2017-01-20 2020-11-03 北京京东尚科信息技术有限公司 数据的索引方法以及装置
CN107066861B (zh) * 2017-03-20 2020-01-14 Oppo广东移动通信有限公司 一种指纹事件的处理方法及移动终端
CN106970813A (zh) * 2017-03-31 2017-07-21 广东欧珀移动通信有限公司 软件升级控制方法、装置及电子设备
CN107731220B (zh) 2017-10-18 2019-01-22 北京达佳互联信息技术有限公司 音频识别方法、装置和服务器
KR102494591B1 (ko) 2018-09-18 2023-02-03 삼성전자주식회사 전자 장치, 그 제어 방법 및 전자 시스템
CN109597024B (zh) * 2018-11-19 2020-05-12 南京财经大学 基于异步传感数据的室内区域定位方法及系统
CN109657093A (zh) * 2018-11-27 2019-04-19 腾讯音乐娱乐科技(深圳)有限公司 音频检索方法、装置及存储介质
CN109726307A (zh) * 2018-12-26 2019-05-07 合肥凯捷技术有限公司 一种跨网互联音频大数据存储检索方法
CN109871463B (zh) * 2019-03-06 2024-04-09 腾讯音乐娱乐科技(深圳)有限公司 音频处理方法、装置、电子设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101777075A (zh) * 2010-02-05 2010-07-14 上海全土豆网络科技有限公司 并行音频指纹检索方法
CN104123300A (zh) * 2013-04-26 2014-10-29 上海云人信息科技有限公司 数据分布式存储系统及方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102289518B (zh) 2011-09-13 2013-03-27 盛乐信息技术(上海)有限公司 音频指纹检索库的更新方法及系统
CN103870516B (zh) * 2012-12-18 2019-10-25 北京三星通信技术研究有限公司 检索图像的方法、实时绘画提示方法及其装置
CN103995890A (zh) 2014-05-30 2014-08-20 杭州智屏软件有限公司 一种实时音频指纹检索库数据更新和检索方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101777075A (zh) * 2010-02-05 2010-07-14 上海全土豆网络科技有限公司 并行音频指纹检索方法
CN104123300A (zh) * 2013-04-26 2014-10-29 上海云人信息科技有限公司 数据分布式存储系统及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
海量音频指纹数据的存储与检索研究;王润涛;《万方数据知识服务平台》;20140731;第24-26页,图4-4

Also Published As

Publication number Publication date
KR20160100216A (ko) 2016-08-23
CN104679847A (zh) 2015-06-03
KR101740271B1 (ko) 2017-05-26
KR20160100226A (ko) 2016-08-23
KR102431806B1 (ko) 2022-08-12
DE102016001035A1 (de) 2016-08-18
KR20160100211A (ko) 2016-08-23
KR20160100219A (ko) 2016-08-23

Similar Documents

Publication Publication Date Title
CN104679847B (zh) 一种构建在线实时更新海量音频指纹库的方法和设备
JP4669067B2 (ja) 動的フラグメントマッピング
CN1983266B (zh) 闪速类介质中存储事务记录的文件系统
CN107918612B (zh) 键值存储系统数据结构的实现方法和装置
CN105808284B (zh) 一种增量升级方法及应用其的服务器
EP3103025B1 (en) Content based organization of file systems
US8849876B2 (en) Methods and apparatuses to optimize updates in a file system based on birth time
EP3362916B1 (en) Signature-based cache optimization for data preparation
WO2017065885A1 (en) Distributed pipeline optimization data preparation
CN103870588B (zh) 一种在数据库中使用的方法及装置
JP5886447B2 (ja) ロケーション非依存のファイル
CN106970958B (zh) 一种流文件的查询与存储方法和装置
CN104424219B (zh) 一种数据文件的管理方法及装置
CN103186622B (zh) 一种全文检索系统中索引信息的更新方法以及装置
CN107766374B (zh) 一种海量小文件存储读取的优化方法和系统
US20120303628A1 (en) Partitioned database model to increase the scalability of an information system
US20160019206A1 (en) Methods and systems to identify and use event patterns of application workflows for data management
US10909086B2 (en) File lookup in a distributed file system
CN104461384B (zh) 一种数据写入方法及存储设备
CN109189772A (zh) 用于无文件系统存储介质的文件管理方法及系统
CN105468644B (zh) 一种用于在数据库中进行查询的方法与设备
US20170161050A1 (en) Methods for Downloading and Installing Computer Software Applications on Demand
WO2017065888A1 (en) Step editor for data preparation
CN117473117A (zh) 一种视频循环存储方法、系统及计算机
CN107430546A (zh) 一种文件更新方法及存储设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20190201

Address after: 102208 Unit 1, Building 21, No. 10, Courtyard 9, Huilongguan Town, Changping District, Beijing 2501

Applicant after: Gaodi Network Technology (Beijing) Co., Ltd.

Address before: 100000 Institute of Automation, No. 3 Graduate School, Nanyi No. 1, Zhongcun, Haidian District, Beijing

Applicant before: Wang Lei

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant