国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種針對(duì)音頻指紋庫(kù)數(shù)據(jù)的多級(jí)索引方法

      文檔序號(hào):8445632閱讀:488來(lái)源:國(guó)知局
      一種針對(duì)音頻指紋庫(kù)數(shù)據(jù)的多級(jí)索引方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及音頻指紋識(shí)別技術(shù)領(lǐng)域,具體涉及一種針對(duì)音頻指紋庫(kù)數(shù)據(jù)的多級(jí)索引方法。
      【背景技術(shù)】
      [0002]音頻指紋識(shí)別(俗稱“聽(tīng)音識(shí)曲”)是一種新興的音樂(lè)搜索技術(shù),該技術(shù)通過(guò)分析音頻文件的頻譜,提取稱為“音頻指紋”的數(shù)字特征,并使用數(shù)字特征構(gòu)建“海量音頻指紋庫(kù)”,部署于網(wǎng)絡(luò)服務(wù)器上,客戶端可將錄制的未知音頻片段發(fā)送到服務(wù)器,服務(wù)器使用相同的算法提取“音頻指紋”,然后通過(guò)搜索算法在海量音頻指紋庫(kù)中查找相似特征,并根據(jù)找到的若干特征推測(cè)目標(biāo)音頻文件,將結(jié)果返回給客戶端即完成了整個(gè)識(shí)別過(guò)程。音頻指紋識(shí)別是一種兼具數(shù)據(jù)密集型和計(jì)算密集型的應(yīng)用:海量音頻指紋庫(kù)必須包含足夠多的音頻文件的特征,才能保證應(yīng)用的識(shí)別率,該規(guī)模通常為千萬(wàn)級(jí),而音頻指紋的數(shù)量更是為數(shù)十億級(jí)的,這導(dǎo)致搜索算法的計(jì)算量巨大?,F(xiàn)有技術(shù)中的音頻指紋一般可以表示為key-value對(duì),目前的搜索算法一般借助二叉樹(shù)或hash表實(shí)現(xiàn),首先通過(guò)key,找到海量音頻指紋庫(kù)中所有具有key的指紋的所有value,然后遍歷value,找到與查詢指紋中的value相同的所有value,假設(shè)key的平均value數(shù)目為10000,平均一次查詢包含指紋2000個(gè),則每次識(shí)別至少需要2000萬(wàn)次比較,龐大的計(jì)算量嚴(yán)重的影響了搜索的性能,而實(shí)際上,key的value數(shù)目分布較為不平均,因此搜索性能尚存在極大的優(yōu)化潛力,其搜索速度亟待獲得進(jìn)一步的提尚。
      [0003]因此,研發(fā)一種針對(duì)海量音頻指紋庫(kù)數(shù)據(jù)的高效的索引方法,以提高搜索引擎的搜索速度,進(jìn)而提高搜索的效率成為一種必需。

      【發(fā)明內(nèi)容】

      [0004]為此,本發(fā)明提供一種針對(duì)音頻指紋庫(kù)數(shù)據(jù)的多級(jí)索引方法和設(shè)備,解決現(xiàn)有技術(shù)中海量音頻指紋庫(kù)搜索性能低下,比較查詢時(shí)計(jì)算次數(shù)偏高的技術(shù)問(wèn)題。
      [0005]為此,本發(fā)明提供一種針對(duì)音頻指紋庫(kù)數(shù)據(jù)的多級(jí)索引方法,包括:將所述音頻指紋庫(kù)數(shù)據(jù)中每一個(gè)音頻指紋的value的數(shù)據(jù)位切分成索引部分和指紋數(shù)據(jù)部分,其中,所述索引部分為多級(jí)索引;將所述索引部分中的各級(jí)通過(guò)指針指向下一級(jí);以及將所述索引部分的最后一級(jí)的指針指向所述指紋數(shù)據(jù)部分。
      [0006]根據(jù)本發(fā)明的一個(gè)實(shí)施方式,其中,所述索引部分位于所述音頻指紋的數(shù)據(jù)位的前一半;所述指紋數(shù)據(jù)部分位于所述音頻指紋的數(shù)據(jù)位的后一半。
      [0007]根據(jù)本發(fā)明的一個(gè)實(shí)施方式,其中,所述方法還包括:構(gòu)建索引列表,其中,將所述索引列表中的每一級(jí)包含多個(gè)索引位;將位于所述索引列表中前一級(jí)的每一個(gè)索引位與位于后一級(jí)的多個(gè)索引位相對(duì)應(yīng);將位于最后一級(jí)的索引位均與其所指向的指紋數(shù)據(jù)相對(duì)應(yīng)。
      [0008]根據(jù)本發(fā)明的一個(gè)實(shí)施方式,其中,所述索引部分為二級(jí)索引。
      [0009]根據(jù)本發(fā)明的一個(gè)實(shí)施方式,其中,所述二級(jí)索引中,每一級(jí)索引所占據(jù)的數(shù)據(jù)位的數(shù)量相同。
      [0010]根據(jù)本發(fā)明的一個(gè)實(shí)施方式,其中,所述音頻指紋的value的數(shù)據(jù)位為32位或64位。
      [0011]根據(jù)本發(fā)明的一個(gè)實(shí)施方式,其中,所述二級(jí)索引,分別為第一級(jí)索引和第二級(jí)索引;步驟“構(gòu)建索引列表”還進(jìn)一步包括將所述索引部分結(jié)構(gòu)序列化存儲(chǔ),步驟如下:在所述第一級(jí)索引后分別依次存放指向其自身的若干個(gè)第二級(jí)索引的數(shù)據(jù)位,及被所述第二級(jí)索引指向的指紋數(shù)據(jù),以形成與所述第一級(jí)索引的數(shù)據(jù)位相同數(shù)量的數(shù)據(jù)塊;將上述數(shù)據(jù)塊依次存儲(chǔ)。
      [0012]根據(jù)本發(fā)明的一個(gè)實(shí)施方式,其中,所述索引列表的存在形式為數(shù)組。
      [0013]為此,本發(fā)明提供一種針對(duì)音頻指紋庫(kù)數(shù)據(jù)的多級(jí)索引設(shè)備,包括:用于將所述音頻指紋庫(kù)數(shù)據(jù)中每一個(gè)音頻指紋的value的數(shù)據(jù)位切分成索引部分和指紋數(shù)據(jù)部分的裝置,其中,所述索引部分為多級(jí)索引;用于將所述索引部分中的各級(jí)通過(guò)指針指向下一級(jí)的裝置;以及用于將所述索引部分的最后一級(jí)的指針指向所述指紋數(shù)據(jù)部分的裝置。
      [0014]根據(jù)本發(fā)明的一個(gè)實(shí)施方式,其中,所述多級(jí)索引設(shè)備還包括:用于構(gòu)建索引列表的裝置,包括:用于將所述索引列表中的每一級(jí)包含多個(gè)索引位的裝置;用于將位于所述索引列表中前一級(jí)的每一個(gè)索引位與位于后一級(jí)的多個(gè)索引位相對(duì)應(yīng)的裝置;用于將位于最后一級(jí)的索引位均與其所指向的指紋數(shù)據(jù)相對(duì)應(yīng)的裝置。
      [0015]本發(fā)明通過(guò)將位于音頻指紋庫(kù)數(shù)據(jù)中每一個(gè)音頻指紋的value的數(shù)據(jù)位切分成索引部分和指紋數(shù)據(jù)部分,為實(shí)現(xiàn)多級(jí)索引提供了數(shù)據(jù)結(jié)構(gòu)方面的技術(shù)支持;檢索時(shí)僅需在滿足上一級(jí)索引條件的value中檢索滿足下一級(jí)索引條件的value,由于采用逐級(jí)比較,位于下一級(jí)的檢索量遠(yuǎn)低于上一級(jí),極大地降低了檢索數(shù)據(jù)所需的訪問(wèn)量,降低數(shù)據(jù)比較所需的運(yùn)算次數(shù),有效的提高了音頻指紋庫(kù)數(shù)據(jù)的索引效率。進(jìn)一步的,由于本發(fā)明的數(shù)據(jù)處理僅為將位于音頻指紋庫(kù)數(shù)據(jù)中每一個(gè)音頻指紋的value的數(shù)據(jù)位進(jìn)行切分,切分后的value的各部分?jǐn)?shù)據(jù)依舊以指針的形式保持彼此關(guān)聯(lián),在沒(méi)有破壞切分前value的原始數(shù)據(jù)信息的前提下,還有利于為“將value進(jìn)行序列化存儲(chǔ)”提供數(shù)據(jù)結(jié)構(gòu)上的技術(shù)支持,進(jìn)而更有利于實(shí)現(xiàn)節(jié)約存儲(chǔ)空間。
      [0016]優(yōu)選的,本發(fā)明將切分后的value的前一半作為索引部分,將切分后的value的后一半作為指紋數(shù)據(jù)部分,僅利用value的前一半作為檢索該value的索引碼,在不影響索引準(zhǔn)確率的前提下,減少索引比對(duì)時(shí)所需的計(jì)算量。
      [0017]優(yōu)選的,本發(fā)明為了更方便索引,構(gòu)建了數(shù)據(jù)格式與索引部分相一致的索引列表,索引列表的構(gòu)建為進(jìn)一步實(shí)現(xiàn)將value進(jìn)彳丁序列化存儲(chǔ)及進(jìn)彳丁尚效的音頻指紋數(shù)據(jù)索引提供了有力的技術(shù)支持。查找音頻指紋數(shù)據(jù)時(shí)僅需訪問(wèn)索引列表既能完成對(duì)“待查找value”所需進(jìn)行的數(shù)據(jù)檢索。
      [0018]優(yōu)選的,本發(fā)明通過(guò)采用二級(jí)索引,并構(gòu)建與其適配的索引列表,實(shí)現(xiàn)將索引部分結(jié)構(gòu)序列化存儲(chǔ),使內(nèi)存的使用更加緊湊,可有效減少內(nèi)存碎片的產(chǎn)生;其中,索引列表用于維護(hù)第二級(jí)索引相對(duì)于第一級(jí)索引的偏移位置。
      [0019]優(yōu)選的,本發(fā)明提出了將32位或64位的整數(shù)切分,并構(gòu)建多級(jí)索引的方法,可以在搜索時(shí)迅速縮小查找范圍和需要比較的數(shù)據(jù)量,從而可以減少計(jì)算量,提升查詢性能。
      [0020]優(yōu)選的,本發(fā)明還提供一種針對(duì)音頻指紋庫(kù)數(shù)據(jù)的多級(jí)索引設(shè)備,為實(shí)現(xiàn)本發(fā)明上述索引功能提供更好的硬件結(jié)構(gòu)支持。
      【附圖說(shuō)明】
      [0021]為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
      [0022]圖1為本發(fā)明實(shí)施例1中針對(duì)音頻指紋庫(kù)數(shù)據(jù)的多級(jí)索引方法示意圖。
      [0023]圖2為本發(fā)明實(shí)施例2中切分后value的結(jié)構(gòu)示意圖;
      [0024]圖3為本發(fā)明實(shí)施例3中針對(duì)音頻指紋庫(kù)數(shù)據(jù)的多級(jí)索引方法示意圖;
      [0025]圖4為本發(fā)明實(shí)施例4中針對(duì)音頻指紋庫(kù)數(shù)據(jù)的多級(jí)索引方法示意圖;
      [0026]圖5為本發(fā)明實(shí)施例5中針對(duì)音頻指紋庫(kù)數(shù)據(jù)的多級(jí)索引設(shè)備結(jié)構(gòu)示意圖;
      [0027]圖6為本發(fā)明實(shí)施例6中針對(duì)音頻指紋庫(kù)數(shù)據(jù)的多級(jí)索引設(shè)備結(jié)構(gòu)示意圖;
      [0028]圖7為本發(fā)明實(shí)施例7中value結(jié)構(gòu)拆分示意圖;
      [0029]圖8為本發(fā)明實(shí)施例7中多級(jí)索引結(jié)構(gòu)構(gòu)建方法示意圖;
      [0030]圖9為本發(fā)明實(shí)施例7中索引結(jié)構(gòu)序列化存儲(chǔ)方式示意圖。
      【具體實(shí)施方式】
      [0031]下面結(jié)合說(shuō)明書(shū)附圖及實(shí)施例,對(duì)本發(fā)明的【具體實(shí)施方式】作進(jìn)一步詳細(xì)描述。以下實(shí)施例僅用于說(shuō)明本發(fā)明,但不能用來(lái)限制本發(fā)明的范圍。
      [0032]實(shí)施例1:
      [0033]不失一般性,如圖1所示,本發(fā)明提供一種針對(duì)音頻指紋庫(kù)數(shù)據(jù)的多級(jí)索引方法,包括:
      [0034]S1000:將所述音頻指紋庫(kù)數(shù)據(jù)中每一個(gè)音頻指紋的value的數(shù)據(jù)位切分成索引部分和指紋數(shù)據(jù)部分,其中,所述索引部分為多級(jí)索引;
      [0035]S2000:將所述索引部分中的各級(jí)通過(guò)指針指向下一級(jí);以及
      [0036]S3000:將所述索引部分的最后一級(jí)的指針指向所述指紋數(shù)據(jù)部分。
      [0037]本發(fā)明通過(guò)將位于音頻指紋庫(kù)數(shù)據(jù)中每一個(gè)音頻指紋的value的數(shù)據(jù)位切分成索引部分和指紋數(shù)據(jù)部分,為實(shí)現(xiàn)多級(jí)索引提供了數(shù)據(jù)結(jié)構(gòu)方面的技術(shù)支持;檢索時(shí)僅需在滿足上一級(jí)索引條件的value中檢索滿足下一級(jí)索引條件的value,由于采用逐級(jí)比較,位于下一級(jí)的檢索量遠(yuǎn)低于上一級(jí),極大地降低了檢索數(shù)據(jù)所需的訪問(wèn)量,降低數(shù)據(jù)比較所需的運(yùn)算次數(shù),有效的提高了音頻指紋庫(kù)數(shù)據(jù)的索引效率。進(jìn)一步的,由于本發(fā)明的數(shù)據(jù)處理僅為將位于音頻指紋庫(kù)數(shù)據(jù)中每一個(gè)音頻指紋的value的數(shù)據(jù)位進(jìn)行切分,切分后的value的各部分?jǐn)?shù)據(jù)依舊以指針的形式保持彼此關(guān)聯(lián),在沒(méi)有破壞切分前value的原始數(shù)據(jù)信息的前提下,還有利于為“將value進(jìn)行序列化存儲(chǔ)”提供數(shù)據(jù)結(jié)構(gòu)上的技術(shù)支持,進(jìn)而更有利于實(shí)現(xiàn)節(jié)約存儲(chǔ)空間。
      [0038]實(shí)施例2:
      [0039]優(yōu)選的,如圖2所示,本發(fā)明將切分后的value的前一半作為索引部分YN,將切分后的value的后一半作為指紋數(shù)據(jù)部分SJ,僅利用value的前一半作為檢索該value的索引碼,在不影響索引準(zhǔn)確率的前提下,減少索引比對(duì)時(shí)所需的計(jì)算量。
      [0040]實(shí)施例3:
      [0041]優(yōu)選的,如圖3所示,本發(fā)明在實(shí)施例1的基礎(chǔ)上,在針對(duì)音頻指紋庫(kù)數(shù)據(jù)的多級(jí)索引方法的步驟中進(jìn)一步包括步驟:
      [0042]S4000:構(gòu)建索引列表,其中,包括:
      [0043]S4100:將所述索引列表中的每一級(jí)包含多個(gè)索引位;
      [0044]S4200:將位于所述索引列表中前一級(jí)的每一個(gè)索引位與位于后
      [0045]一級(jí)的多個(gè)索引位相對(duì)應(yīng);
      [0046]S4300:將位于最后一級(jí)的索引位均與其所指向的指紋數(shù)據(jù)相對(duì)應(yīng)。
      [0047]本發(fā)明為了更方便索引,構(gòu)建了數(shù)據(jù)格式與索引部分相一致的索引列
      當(dāng)前第1頁(yè)1 2 
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1