用於快速音頻搜索的方法和設備的製作方法
2023-07-30 21:08:16 2
專利名稱:用於快速音頻搜索的方法和設備的製作方法
技術領域:
本公開概要地涉及信號處理和多媒體應用,並且更具體但不排他 地,涉及用於快速音頻搜索和音頻指紋的方法和設備。
2.背景糹支術
音頻搜索(例如,為某個音頻剪輯搜索大的音頻流,即使該大的 音頻流損壞/失真)具有許多應用,包括廣播音樂/商業廣告的分析、 網際網路上的版權管理或查找未標記音頻剪輯的元數據等等。典型的音 頻搜索系統是串行的並設計用於單個處理器系統。通常,此類搜索系 統在大的音頻流中搜尋目標音頻剪輯要^L長的時間。然而,在許多情 況下,要求音頻搜索系統在大的音頻資料庫中高效工作,例如,以在 極短的時間(例如,接近實時)內搜索大的資料庫。另外,音頻數據 庫可能已部分或完全失真、損壞和/或壓縮。達要求音頻搜索系統足夠 強勁,以識別與目標音頻剪輯相同那些音頻段,即使那些音頻段可能 已失真、損壞和/或壓縮。因此,希望具有為目標音頻剪輯能夠迅速和 強勁地搜索大的音頻資料庫的音頻搜索系統。
從下面的主題的詳細說明中將明白公開的主題的特徵和優點,其
中
圖l示出一個示例計算系統,其中可使用音頻搜索模塊執行強勁 的並行音頻搜索;
圖2示出另一示例計算系統,其中可使用音頻搜索模塊執行強勁 的並行音頻:溲索;圖3示出仍有的另一示例計算系統,其中可使用音頻搜索模塊執
行強勁的並行音頻搜索;
圖4是執行強勁的音頻搜索的示例音頻搜索模塊的框圖5是示出圖4所示強勁的音頻搜索模塊如何工作的示例;
圖6是在多處理器系統中執行強勁的並行音頻搜索的示例音頻搜
索模塊的框圖7A、 7B和7C示出將大的音頻資料庫劃分成更小的組以便在 多處理器系統中實現強勁的並行音頻搜索的方法;以及
圖8是示出用於在多處理器系統中執行強勁的並行音頻搜索的示 例過程的偽代碼。
具體實施例方式
根據本申請中公開的主題的實施例,可使用 一種強勁的並行搜索 方法,在多處理器系統中為目標音頻剪輯搜索大的音頻流或大的音頻 資料庫。大的音頻資料庫可劃分成多個更小的組。這些更小的組可動 態調度以便由多處理器系統中的可用處理器或處理核處理。處理器或 處理核可通過將每個組劃分成更小的段,從段中提取聲學特徵,以及 使用公共分量高斯混合模型("CCGMM,,)為段建模來並行處理已調 度的組。這些段的長度可與目標音頻剪輯的長度相同。在處理任何組 之前, 一個處理器或處理核可從目標音頻剪輯提取聲學特徵並使用 CCGMM為其建模。可進一步計算在目標音頻剪輯的模型與組的每個 段之間的庫爾貝克-萊布勒(Kullback-Leibler ) (KL)或KL -最大 (KL-max)距離。如果該距離等於或小於預定值,則對應的段被識別 為目標音頻剪輯。
如果距離大於預定值,則處理器或處理核可跳過一定數量的段並 繼續搜尋目標音頻剪輯。 一旦處理器或處理核完成搜索某個組,新的 組便可提供給它處理以便搜尋目標音頻剪輯,直至搜索了所有組。可 確定組的大小以致於減少負載失衡和重疊計算。此外,輸入/輸出(1/0)可優化以提高多個處理器或處理核對音頻組的並行處理的效率。
說明書對公開的主題的"一個實施例"或"實施例"的引用指結合該 實施例描述的特定特徵、結構或特性包括在公開的主題的至少 一個實 施例中。因此,在說明書通篇各個位置出現的短語"在一個實施例中" 不一定全部指同 一個實施例。
圖1示出一個示例計算系統100,其中可使用音頻搜索模塊120 執行強勁的並行音頻搜索。計算系統100可包括耦合到系統互連115 的一個或多個處理器110。處理器110可具有多個或許多處理核(為 描述簡明起見,術語"多個核"將在下文用於包括多個處理核和許多處 理核)。處理器110可包括音頻搜索模塊120以通過多個核進行強勁 的並行音頻搜索。音頻搜索模塊可包括幾個組件,如劃分機制、調度 和多個音頻搜索器(參閱下面圖4-6的更詳細說明)。音頻搜索模塊 的一個或多個組件可位於一個核中,而其它組件位於另 一核中。
音頻搜索模塊可先將大的音頻資料庫劃分成多個更小的組或者將 大的音頻流劃分成更小的部分重疊的子流。其次, 一個核可處理要4叟 尋的音頻剪輯("目標音頻剪輯")以為目標音頻剪輯建立模型。同時, 音頻搜索模塊動態調度更小的音頻組/子流到多個核,這些核並行地將 每個組/子流劃分成段,並且為每個音頻段建立模型。每個段的大小可 等於目標音頻剪輯的大小。高斯混合^^莫型("GMM")具有對包括目標
音頻剪輯和音頻資料庫/流的所有音頻#爻公共的多個高斯分量,可用於 為每個音頻段和目標音頻剪輯建模。 一旦為音頻段建立了模型,便可
計算在段模型與目標音頻剪輯模型之間的庫爾貝克-萊布勒("KL") 或KL-最大距離。如果距離不大於預定值,則音頻段可被識別為目標 音頻剪輯。搜索過程可繼續,直至處理了所有音頻組/子流。
計算系統IOO也可包括耦合到系統互連115的晶片組130。晶片 組130可包括一個或多個集成電^各封裝或晶片。晶片組130可包:^舌一 個或多個裝置接口 135以支持數據傳輸到計算系統100的其它組件 160和/或從其傳輸,其它組件160例如,BIOS固件、鍵盤、滑鼠、存儲裝置、網絡接口等。晶片組130可耦合到外圍組件互連(PCI)總線 170。晶片組130可包括提供到PCI總線170的接口的PCI橋145。 PCI 橋145可提供處理器110以及其它組件160與例如音頻裝置180和磁 盤驅動器190等外圍裝置之間的數據路徑。雖然未示出,但其它裝置 也可耦合到PCI總線170。
另外,晶片組130可包括耦合到主存儲器150的存儲器控制器 125。主存儲器150可存儲由處理器110的多個核或系統中包括的任 何其它裝置運行的指令的序列和數據。存儲器控制器125可訪問主存 儲器150以響應與處理器IIO的多個核和計算系統100中其它裝置相 關聯的存儲器事務。在一個實施例中,存儲器控制器150可位於處理 器IIO或一些其它電路系統中。主存儲器150可包括提供可尋址存儲 位置的各種存儲器裝置,存儲器控制器125可從這些位置讀取數據和 /或將數據寫入這些位置。主存儲器150可包括一個多個不同類型的存 儲器裝置,如動態隨機訪問存儲器(DRAM)裝置、同步DRAM (SDRAM) 裝置、雙倍數據速率(DDR) SDRAM裝置或其它存儲器裝置。
圖2示出另一示例計算系統200,其中可使用音頻搜索模塊240 執行強勁的並行音頻搜索。系統200可包括多個處理器,如處理器O 220A。系統200中的一個或多個處理器可具有許多核。系統200可包 括音頻搜索模塊240以通過多個核進行強勁的並行音頻搜索。音頻4叟 索模塊可包括幾個組件,如劃分機制、調度和多個音頻搜索器(參閱 下面圖4-6的更詳細說明)。音頻搜索模塊的一個或多個組件可位於 一個核中,而其它組件位於另一核中。系統200中的處理器可l吏用系 統互連210相互連接。系統互連210可以是前端總線(FSB)。每個處理 器可通過系統互連連接到輸入/輸出(IO)裝置及存儲器230。所有核可 從存儲器230接收音頻數據。
圖3示出仍有的另一示例計算系統300,其中可4吏用音頻4叟索才莫 塊340執行強勁的並行音頻搜索。在系統300中,連接多個處理器(例 如,320A、 320B、 320C和320D)的系統互連310是基於鏈路的點對點連接。每個處理器可通過鏈路集線器(links hub)(例如,330A、 330B、 330C和330D)連接到系統互連。在一些實施例中,鏈路集線 器可與協調系統存儲器往來信息傳送的存儲器控制器在相同位置。一 個或多個處理器可具有許多核。處理器300可包括音頻搜索模塊340 以通過多個核進行強勁的並行音頻搜索。音頻搜索模塊可包括幾個組 件,如劃分機制、調度和多個音頻搜索器(參閱下面圖4-6的更詳細 說明)。音頻搜索模塊的一個或多個組件可位於一個核中,而其它組 件位於另 一核中。系統300中的每個處理器/核可通過系統互連連接到 共享存儲器(圖中未示出)。所有核可從共享存儲器接收音頻數據。
在圖2和圖3中,音頻搜索模塊(即,240和340 )可先將大的音 頻資料庫劃分成多個更小的組或者將大的音頻流劃分成更小的部分 重疊的子流。其次, 一個核可處理要搜尋的音頻剪輯("目標音頻剪輯") 以為目標音頻剪輯建立模型。同時,音頻搜索^t塊動態調度更小的音 頻組/子流到多個核,這些核並行地將每個組/子流劃分成段,並且為 每個音頻段建立模型。每個段的大小可等於目標音頻剪輯的大小。高 斯混合模型("GMM")具有對包括目標音頻剪輯和音頻資料庫/流的 所有音頻段公共的多個高斯分量,可用於為每個音頻段和目標音頻剪 輯建模。 一旦為音頻段建立了模型,便可計算在段模型與目標音頻剪 輯模型之間的庫爾貝克-萊布勒("KL")或KL-最大距離。如果距 離不大於預定值,則音頻段可被識別為目標音頻剪輯。搜索過程可繼 續,直至處理了所有音頻組/子流。
圖4是執行強勁的音頻搜索的示例音頻搜索模塊400的框圖。音 頻搜索模塊400包括特徵提取器410、建模機制420和決策器430。特 徵提取器410可接收輸入音頻流(例如,目標音頻剪輯、大的音頻流 的子流等),並從輸入音頻流提取聲學特徵。在輸入音頻流是為目標 音頻剪輯要搜索的音頻流時,特徵提取器可在音頻流上應用滑動窗口 以將它劃分成多個重疊的段。窗口具有與目標音頻剪輯相同的長度。 輸入音頻流的每個段(目標音頻流只具有一個段)還進一步分離成幀。
10每個幀可具有相同的長度並且可與其相鄰幀重疊。例如,在一個實
施例中,幀長度可以是20毫秒,幀之間的重疊為10毫秒。可為每個 幀提取特徵向量,特徵向量可包括諸如傅立葉係數、美爾頻率倒譜系 悽t (Mel-Frequency cepstral coefficient) 、 i普平坦度、均4直、方差及其 其它導數等特徵。來自音頻段中所有幀的特徵向量形成特徵向量序 列。
兩個相鄰段之間的重疊是為了降低丟失兩個相鄰段之間任何目標 音頻剪輯的可能性。重疊越長,丟失的可能性越低。在一個實施例中, 重疊可等於段的長度減去幀的長度以避免丟失任何匹配。然而,更長 的重疊意味著更多的計算。因此,在計算負載與丟失可能性之間應存 在平衡(例如,重疊等於或小於1/2的段長度)。任何情況下,用於 兩個段之間重疊的幀的特徵向量只需要提取一次。
建模機制420可基於特徵提取器410提取的音頻段特徵向量序列, 為音頻段建立模型。根據使用的模型,建模機制將估計用於模型的參 數。在一個實施例中,公共分量高斯混合模型("CCGMM")可用於 為音頻段建模。CCGMM包括跨所有段公共的多個高斯分量。對於每 個段,建模機制估計用於公共高斯分量的混合加權的特定集合。在另 一個實施例中,其它模型(例如,隱馬爾可夫模型)可用於為音頻,殳 建模。在一個實施例中,可只為目標音頻剪輯建模;並且音頻段的特 徵向量序列可直接用於確定音頻段是否基本上與目標音頻剪輯相同。
決策器430可確定輸入音頻流中的某個音頻段是否足夠類似,佳: 得該音頻段能被識別為目標音頻剪輯的副本。為實現此目標,決策器 可通過比較音頻段的模型與目標音頻剪輯的模型而得出相似性度量。 在一個實施例中,相似性度量可以是兩個模型之間計算的距離。在另 一個實施例中,相似性度量可以是音頻段模型與目標音頻剪輯模型相 同的概率。而在又一個實施例中,相似性度量可以通過比較音頻段的 特徵向量序列與目標音頻剪輯的模型而得出。例如,在隱馬爾可夫模 型("HMM")用於為目標音頻剪輯建^t時,基於維特比的算法可用於基於音頻段的特徵向量序列和目標音頻剪輯的HMM,計算在音頻段 與目標音頻剪輯之間的似然得分。
基於相似性度量的值,決策器可確定音頻段是否能被識別為目標 音頻剪輯。例如,如果相似性度量的值不大於預定閾值(例如,相似 性度量是音頻段模型與目標音頻剪輯之間的距離),則音頻段可被識 別為基本上與目標音頻剪輯相同。類似地,如果相似性度量的值不小 於預定閾值(例如,相似性度量是音頻段基本上與目標音頻剪輯相同 的似然得分),則音頻段可被識別為基本上與目標音頻剪輯相同。另 一方面,如果基於相似性度量而發現音頻段基本上不同於目標音頻剪 輯,則可跳過緊接該音頻段隨後的一定數量的段。要跳過的段的實際 數量將取決於經驗數據和/或相似性度量的值。通過跳過多個隨後的 段,不太可能在相似性度量指示當前段與目標音頻剪輯極不相同時丟 失任何目標音頻剪輯,這是因為用於將輸入音頻流劃分成段的窗口逐 漸向前滑動,並且因此從一個段到下一個段存在相似性度量的持續 性。
圖5是示出圖4所示強勁的音頻搜索模塊如何工作的示例。目標 音頻剪輯510由特徵提取器接收,該提取器在框530A將該剪輯分段 成幀,並產生特徵向量序列(540),每幀一個特徵向量。特徵向量可以 是x維向量(其中,x>=l),這是因為特徵向量可包括一個或多個參 數。在框570A,特徵向量序列540可使用如下所示的GMM建模
GMM,屍W(x)包括具有分量加權W.w、均值《和協方差2T的M個高 斯分量,其中/=1, 2,…,M;其中,k表示段k,並且N表示高 斯分布。對於目標音頻剪輯,只有一個段,因此無需使用k識別段。 然而,對於輸入音頻流520, 一般有不止一個段,並且因此希望識別 對於不同l殳的GMM。
在圖5所示的示例中,庫爾貝克-萊布勒(KL)或KL-最大距離用作相似性度量。為簡化KL-最大距離計算,假設用於所有音頻段
的GMM共享高斯分量的公共集合,即,對於第i個高斯分量,均值CaO 和方差(Z)跨不同音頻段相同。因此,等式(l)變為
對於每個音頻段,只需要對公共高斯分量估計加權『嚴的集合,爿l, 2, M。給定對於段k的特徵向量序列,該序列具有r個特徵向量, A(戶l,2,...,7),加4又可估計如下
其中,w"或wr是對於第i或第j個段的通用加權,可通過基於一些 樣本音頻文件的實驗獲得或使用隨機值初始化。
為目標音頻剪輯510要被搜索的輸入音頻流520,可由特徵提取 器接收。在框530B,特徵提取器將輸入音頻流劃分成部分重疊的^:。 對於每個段,特徵提取器還將段劃分成多個部分重疊的幀並從每個幀 提取特徵向量。框560示出對於輸入音頻流520的特徵向量序列,並 且也示出音頻流如何劃分成部分重疊的段。例如,大小與目標音頻剪 輯長度相同的窗口可應用到輸入音頻流520。為了說明的目的,示出 了獲得4殳560A的用於目標音頻剪輯的特;f正向量序列的窗口, ^旦由於 只有一個段, 一般無需將窗口應用於目標音頻剪輯。移動的窗口應用 到輸入音頻流以獲得多個部分重疊的段,如560B和560C。從段560B 到段560C移動時間t,其中,t小於窗口大小。
每個音頻段使用CCGMM建模,例如,段560B在框570B建模, 而段560C在框570C建才莫。用於輸入音頻流520的每個段和用於目標 音頻剪輯510的模型具有帶不同加權集合的公共高斯分量。在一個實 施例中,特徵向量可從逐幀從整個輸入音頻流提取以產生用於整個輸 入音頻流的長特徵向量序列。長度為NxFL(其中,N是正整數,並 且FL是幀長度)的窗口隨後應用到長的特徵向量序列。窗口內的特
13徵向量構成用於音頻段的特徵向量,該向量用於建立CCGMM。窗口 向前移動t時間。
要確定段是否基本上與目標音頻剪輯相同,可如下計算段的才莫型 與目標音頻剪輯之間的KL -最大距離
如果如此計算的KL-最大距離低於預定閾值,則音頻剪輯可視為被 牙企測到。在應用到輸入音頻流520上的窗口在時間中向前移動時,距 離一般示出從一個時間步到下一時間步的一定持續性。換言之,如果 距離太大,則緊接當前段隨後的一個或多個段不太可能匹配目標音頻 剪輯。因此,根據距離的值,可跳過搜索相同音頻流/子流中緊接地隨 後的一定數量的段。
圖6是在多處理器系統中執行強勁的並行音頻搜索的示例音頻搜 索模塊600的框圖。音頻搜索模塊600包括劃分機制610、調度程序
620、 1/O優化器630及多個音頻搜索器(例如,640A.....640N)。
劃分機制610可將大的音頻流劃分成多個更小的子流和/或將大的音 頻資料庫劃分成多個更小的組。圖7A、 7B和7C示出將大的音頻數 據庫劃分成更小的組以便在多處理器系統中實現強勁的並行音頻搜 索的方法。圖7A示出包含單個大的音頻流710的示例資料庫。劃分 機制可將音頻流710劃分成多個更小的子流,如712、 714和716,每 個子流構成一個組。子流的長度能夠互不相同,但為簡明起見,它通 常是一致的。為避免丟失目標音頻剪輯的任何正確檢測,每個子流與 其緊接地隨後的子流重疊;並且兩個相鄰子流(例如,712和714, 714和716)之間的重疊應等於或長於屍A^a^-/,其中,iWC7^是目 標音頻剪輯中的幀總數。
圖7B示出包括多個較小音頻流(例如,720、 725、 730、 735和 740)的另一示例資料庫。在一個實施例中,劃分才幾制610可將數據 庫劃分成多個更小的組,每個組只由一個音頻流構成。在另一個實施 例中,如圖7B所示,劃分^L制可將資料庫劃分成多個更小的組,其中一些組的每個只由一個音頻流構成,而其它組的每個由不止一個小
的音頻流構成。圖7C示出還有的另一示例資料庫,該資料庫包括一 些專交小的音頻流(例如,750, 755和760 )及一些大的音頻流(例如, 770)。劃分機制可將那些較小的音頻流置於組中,每個組只由一個 音頻流構成或者一些組只由一個音頻流構成(例如,750),而其它 組由不止一個小的音頻流構成(例如,755和760可分組在一起)。 對於諸如770等大的音頻流,劃分機制可通過使用如圖7A中所示的 方法,將它劃分成多個部分重疊的更小子流(例如,712和714), 每個子流構成一個組。
另外,劃分機制將大的音頻資料庫劃分成大小適當的組,以減少 多個處理器並行處理中的負載失衡和重疊計算(在大的音頻流劃分成 多個重疊的更小子流的情況下)。更小的組大小可產生大的重疊計算, 而更大的組大小可導致相當大的負載失衡。在一個實施例中,組大小 可以是目標音頻剪輯大小的大約25倍。
轉回到圖6,調度程序620可將大的資料庫的多個組動態調度到 多處理器系統中的多個處理器中,每個處理器一次有一個組處理。調 度程序定期檢查系統中處理器的可用性,並指配音頻組以供每個可用 處理器處理以及搜尋目標音頻剪輯。如果另一處理器隨後變為可用, 則調度程序可將一個組指配到此處理器。調度程序在處理器完成搜索 其以前指配的組後立即將未搜索的音頻組指配到處理器,而無論其它
處理器是否完成其搜索。實際上,即使對於大小相同的組,搜尋相同 的目標音頻剪輯對於不同處理器可佔用不同的時間量,這是因為要跳 過的段數從一個段到另 一個段可以不同。使用如上概迷的動態調度可 進一步有效地減少負載失衡。
I/O優化器630可優化系統互連(例如,連接共享系統存儲器與 系統中處理器的系統總線)上的I/O信息傳送。I/O優化器可決定在開 始時不從石茲盤將要^^尋的整個音頻資料庫加載到存儲器中,同時為每 個處理器定義數據範圍。另外,I/O優化器可讓每個處理器一次只從存儲器讀取部分其指配的段。通過優化I/0信息傳送,1/0優化器可減 少I/O爭用,實現I/O操作和計算的重疊,並有助於提高計算效率。 因此,音頻搜索的可擴展性能大大提高。
音頻搜索模塊音頻600也包括多個音頻搜索器640A到640N。每 個音頻搜索器(例如,640A)位於處理器中以便處理指配到處理器的 組和搜尋目標音頻剪輯。類似於圖4中所示的音頻搜索模塊400,音 頻搜索器包括特徵提取器(例如,410)、建模機制(例如,420)和 決策器(例如,430)。每個音頻搜索器通過將指配到它的音頻組中 的音頻流劃分成長度與目標音頻剪輯相同的部分重疊的段,為每個段 提取特徵向量序列以及使用如等式(1)到(4)中所示的CCGMM為每個 段建^^莫,為目標音頻剪輯對指配到它的音頻組進行串行活動搜索。另 外,由所有音頻搜索器使用的用於目標音頻剪輯的CCGMM只需由音 頻搜索器之一估計一次。每個音頻搜索器計算用於每個段的模型與目 標音頻剪輯之間的KL-最大距離。基於KL-最大距離,音頻搜索器 可確定是否檢測到目標音頻剪輯。另外,如果對於當前段的KL-最 大距離大於閾值,則每個音頻搜索器可跳過在當前段隨後的多個段。
圖8是示出用於在多處理器系統中執行強勁的並行音頻搜索的示 例過程800的偽代碼。在802行,可初始化音頻搜索模塊,例如,可 打開目標音頻剪輯文件和音頻資料庫文件,並且可初始化全局參數。 在804行,可如圖7A、 7B和7C所示將大的音頻資料庫劃分成NG 個更小的組。在806行,可為目標音頻剪輯建立模型(例如,CCGMM )。 在808行,可動態調度NG個音頻組到可用處理器,並且可開始已調 度的組的並行處理。808行使用建立並行實現的一個示例指令,並且 其它的並行實現指令也可使用。
810行到846行示出多處理器系統中的處理器如何並行處理NG 個組的每個組及搜尋目標。值得注意的是,為便於說明,812到846 行中的過程示為從第一個組開始,直至最後一個組的迭代。實踐中, 如果有幾個處理器可用,則幾個組由這些可用處理器並行處理。在814行,每個組中的 一些或所有音頻流如果在時間上比目標音頻剪輯更
長,則這些流可進一步劃分成NS個部分重疊的段。816行開始對於 組的每個段的迭代過程,在818行到832行中示出。在820行,可從 段提取特徵向量序列(逐幀)。在822行,可為段建立模型(例如, 如等式(1)到(3)中所示的CCGMM)。在824行,可計算在段模型與目 標音頻剪輯模型之間的距離(例如,如等式(4)中所示的KL-最大距 離)。在826行,可基於在824行中計算的距離和預定閾值#1,確定 段是否匹配目標音頻剪輯。如果距離小於闊值#1,則段匹配目標音頻 剪輯。在828行,可基於824行中計算的距離和預定閾值#2,確定是 否可跳過搜索相同音頻流/子流中隨後的多個段(例如,M個段)。如 果距離大於閾值#2,則可跳過搜索M個段。在一個實施例中,要跳過 的段數可視距離值而變化。在830行,搜索結果(例如,每個組中匹 配段的索引或開始時間)可存儲在處理組的處理器本地的陣列中。在 842行,來自所有處理器的本地陣列的搜索結果可匯總並輸出給用戶。
使用如圖8概述的強勁的並行搜索策略以及諸如I/O優化等其它 技術,可在多處理器系統中大大^是高在大的音頻資料庫中對目標音頻 剪輯的搜索速度。 一個實驗示出,與對相同的目標音頻剪輯進行相同 的音頻流的串行搜索相比,在27小時音頻流中對15秒目標音頻剪輯 的搜索速度在16路(16-way) Unisys系統上增大了 11倍。
在一個實施例中,可使用修改的搜索策略。使用此策略,可為目 標音頻剪輯的前&個幀(10= 1 )建立初步模型(例如,CCGMM)以 及用於整個目標音頻剪輯的完整模型。因此,初步模型(例如, CCGMM)可先為音頻段的前&個幀(10= l)建立。在活動搜索期間, 每個音頻段的前K個幀的初步模型可先與目標音頻剪輯的前K個幀的 初步模型進行比較以產生初步相似性度量。如果初步相似性度量指示
這兩個初步模型明顯類似,則完整的模型可為整個音頻段建立並與整 個目標音頻剪輯的完整模型進行比較;否則,將不為音頻段建立完整 的模型,並且可通過先為下一個,殳的前K個幀建立初步模型並將此初步模型與目標音頻剪輯的初步模型進行比較而搜索下一個段。此修改
的搜索策略可進一步減少計算負載。
雖然公開的主題的示例實施例是參照圖1-8中的框圖和流程圖進 行描述,但本領域的技術人員將容易理解,可備選地使用許多實現公 開的主題的其它方法。例如,可更改流程圖中框的運行順序,和/或可 更改、消除或組合所述框/流程圖中的一些框。
在上述說明中,已描述了公開的主題的各種方面。為便於解釋, 陳述了特定的數字、系統和配置以便提供主題的詳盡理解。然而, 受益於此公開的本領域的技術人員將明白,可無需這些特定細節而實 踐主題。在其它情況下,忽略、簡化、組合或分離了熟知的特^t、組 件或模塊以便不混淆公開的主題。
公開的主題的各種實施例可以硬體、固件、軟體或其組合的形式 實現,並且可參照或者結合程序代碼進行描述,如指令、函數、過程、 數據結構、邏輯、應用程式、用於模擬、仿真的格式或設計表示及設 計的製造,在程序代碼由機器訪問時可導致機器執行任務,定義抽象 數據類型或低端硬體上下文,或者產生結果。
對於仿真,程序代碼可表示使用硬體描述語言或另 一功能性描述 語言的硬體,這些語言實質上提供設計的硬體預期如何執行的模型。 程序代碼可以是彙編或機器語言或可編譯和/或解釋的數據。此外,在 本領域中以 一種或另 一種形式將軟體表述為採取動作或產生結果是 常見的。此類表述只是表示使處理器執行動作或產生結果的處理系統 運4亍程序代碼的 一種簡短方式。
程序代碼可存儲在例如易失性和/或非易失性存儲器中,如存儲裝 置和/或相關聯機器可讀或機器可訪問介質,包括固態存儲器、硬碟驅 動器、軟盤、光儲存器、磁帶、快閃記憶體、記憶棒、數字視頻磁碟、數字
多功能光碟(DVD)等及更奇特的介質,如才幾器可訪問生物狀態保持儲 存器。機器可讀介質可包括用於以機器可讀形式存儲、發射或接收信 息的任何機制,並且介質可包括有形介質,通過它可傳遞將程序代碼編碼的載波或電、光、聲或其它形式的傳播信號,如天線、光纖、通 信接口等。程序代碼可以分組、串行數據、並行數據、傳播信號等形 式發射,並且可以壓縮或加密格式使用。
程序代碼可在可編程才幾器上運行的程序中實現,可編程機器例如 有移動或固定計算機、個人數字助理、機頂盒、蜂窩電話和尋呼機及 其它電子裝置,每個機器包括處理器、可由處理器讀取的易失性和/ 或非易失性存儲器、至少一個輸入裝置和/或一個或多個輸出裝置。程 序代碼可應用到使用輸入裝置輸入的數據以執行所述實施例和生成 輸出信息。輸出信息可應用到一個或多個輸出裝置。本領域的技術 人員可理解,公開主題的實施例能以各種計算機系統配置實踐,包括 多處理器或多核處理器系統、微型計算機、大型計算機及實際上可嵌 入任何裝置的普通或微型計算機或處理器。公開主題的實施例也能 在分布式計算環境中實踐,在這些環境中,任務可由通過通信網絡鏈 接的遠程處理裝置執行。
雖然操作可描述為有序過程,但一些操作實際上可並行、同時和/ 或在分布式環境中執行,並且程序代碼存儲在本地和/或遠程以^更由單 或多處理器機器訪問。另外,在不脫離公開主題的精神的情況下,在 一些實施例中可重新安排操作的順序。程序代Z馬可由嵌入式控制器佳L 用或結合嵌入式控制器使用。
雖然公開的主題已參照說明性實施例描述,但此描述並無限制意 義。公開的主題的相關領域的技術人員明白,說明性實施例的各種修 改及主題的其它實施例均應-見為在/>開的主題的範圍內。
權利要求
1.一種用於在多處理器系統中為目標音頻剪輯搜索音頻資料庫的方法,包括將所述音頻資料庫劃分成多個組;為所述目標音頻剪輯建立模型;動態調度所述多個組到所述多處理器系統中的多個處理器;以及由所述多個處理器並行處理所述已調度的組以搜尋所述目標音頻剪輯。
2. 如權利要求1所述的方法,其中劃分所述音頻資料庫包括為所 述多個組的每個組確定大小,確定所述大小以減少所述多個組的並行 處理中的負載失衡和所述多個組中的重疊計算的量。
3. 如權利要求1所述的方法,其中為所述目標音頻剪輯建立模型 包括從所述目標音頻剪輯提取特徵向量序列,並基於高斯混合模型("GMM")為所述特徵向量序列建才莫,所述GMM包括多個高斯分量。
4. 如權利要求3所述的方法,其中為所述特徵向量序列建模包括 為所述多個高斯分量的每個分量估計混合加權。
5. 如權利要求1所述的方法,其中並行處理所述已調度的組包括將所述已調度的組的每個組劃分成至少一個段;以及 對於每個段,對所述段提取特徵向量序列,以及基於高斯混合模型("GMM")為所述特徵向量序列建模, 所述GMM包括多個高斯分量。
6. 如權利要求5所述的方法,其中所述至少一個段的每個在時間 上具有與所述目標音頻剪輯的長度相同的長度。
7. 如權利要求5所述的方法,其中如果在音頻流中有不止一個 段,則每個段與緊接在該段前的段部分重疊。
8. 如權利要求5所述的方法,其中所述多個高斯分量對不同段和 所述目標音頻剪輯是^^共的。
9. 如權利要求8所述的方法,其中為所述特徵向量序列建模包括 為所述多個高斯分量的每個分量估計混合加權。
10. 如權利要求9所述的方法,還包括對於每個段, 計算在所述段的GMM與所述目標音頻剪輯的GMM之間的庫爾貝克-萊布勒("KL")距離;以及如果所述KL距離小於預定閾值,則確定所述段匹配所述目標音 頻剪輯。
11. 如權利要求IO所述的方法,還包括,如果所述KL距離大於 預定值,則跳過處理一定數量的段,段的所述數量取決於所述KL距 離的值。
12. 如權利要求l所述的方法,其中所述多處理器系統包括由所 述多個處理器共享的存儲器。
13. —種用於在多處理器系統中為目標音頻剪輯搜索音頻資料庫 的設備,包括劃分衝莫塊,將所述音頻資料庫劃分成多個組; 調度程序,動態調度所述多個組到所述多處理器系統中的多個處 理器;以及音頻搜索^^莫塊,用於所述多個處理器的每個處理器以便由所述多 個處理器並行處理所述已調度的組以搜尋所述目標音頻剪輯。
14. 如權利要求13所述的設備,其中所述劃分模塊還為所述多個 組的每個組確定大小,確定所述大小以減少所述多個組的並行處理中 的負載失^f和所述多個組中的重疊計算的量。
15. 如權利要求13所述的設備,其中音頻搜索模塊包括 特徵提取器,將輸入音頻流劃分成至少一個段,並且從所述至少一個段的每個提取特徵向量序列,所述至少一個段在時間上具有與所 述目標音頻剪輯的長度相同的長度;以及建模模塊,基於高斯混合模型("GMM")為關於每個段的所述 特徵向量序列建模,所述GMM包括多個高斯分量,所述多個高斯分 量在所有段中是公共的。
16. 如權利要求15所述的設備,其中音頻搜索模塊之一還通過從 所述目標音頻剪輯提取特徵向量序列並通過使用所述GMM為所述特 徵向量序列建糹莫來進一步處理所述目標音頻剪輯,所述GMM包括對 所述目標音頻剪輯和所述輸入音頻流的段公共的多個高斯分量。
17. 如權利要求16所述的設備,其中音頻搜索模塊還包括決策器 以計算所述輸入音頻流的段的GMM與所述目標音頻剪輯的GMM之 間的庫爾貝克-萊布勒("KL")距離;並且基於所述KL距離確定所 述段是否匹配所述目標音頻剪輯。
18. 如權利要求17所述的設備,其中所述決策模塊還基於所述 KL距離確定要跳過處理的段的數量。
19. 一種包括含有指令的機器可讀介質的物品,所述指令在由處 理平臺運行時促使所述處理平臺執行操作,包括將所述音頻資料庫劃分成多個組; 為所述目標音頻剪輯建立模型;動態調度所述多個組到所述多處理器系統中的多個處理器;以及 由所述多個處理器並行處理所述已調度的組以搜尋所述目標音 頻剪輯。
20. 如權利要求19所述的物品,其中劃分所述音頻資料庫包括為 所述多個組的每個組確定大小,確定所述大小以減少所述多個組的並 行處理中的負載失衡和所述多個組中的重疊計算的量。
21. 如權利要求19所述的物品,其中為所述目標音頻剪輯建立才莫 型包括從所述目標音頻剪輯提取特徵向量序列,並基於高斯混合模型("GMM")為所述特徵向量序列建模,所述GMM包括多個高斯分量。
22. 如權利要求21所迷的物品,其中為所迷特徵向量序列建才莫包 括為所述多個高斯分量的每個分量估計混合加權。
23. 如權利要求19所述的物品,其中並行處理所述已調度的組包括將所述已調度的組的每個組劃分成至少一個段;以及 對於每個段,為所述段提取特徵向量序列,以及基於高斯混合模型("GMM")為所述特徵向量序列建模, 所述GMM包括多個高斯分量。
24. 如權利要求22所述的物品,其中所述至少一個段的每個在時 間上具有與所述目標音頻剪輯的長度相同的長度。
25. 如權利要求22所述的物品,其中如果在音頻流中有不止一個 段,則每個段與緊接在該段前的段部分重疊。
26. 如權利要求22所述的物品,其中所述多個高斯分量對不同段 和所述目標音頻剪輯是7>共的。
27. 如權利要求26所述的物品,其中為所述特徵向量序列建才莫包 括為所述多個高斯分量的每個分量估計混合加權。
28. 如權利要求27所述的物品,其中,所述操作還包括對於每 個段,計算在所述段的GMM與所述目標音頻剪輯的GMM之間的庫爾 貝克-萊布勒("KL")距離;以及如果所述KL距離小於預定閾值,則確定所述段匹配所述目標音 頻剪輯。
29. 如權利要求28所述的物品,其中所述操作還包括如果所述 KL距離大於預定值,則跳過處理一定數量的段,段的所述數量取決 於所述KL距離的值。
30. 如權利要求19所述的物品,其中所述多處理器系統包括由所 述多個處理器共享的存儲器。
全文摘要
根據本申請中公開的主題的實施例,可使用一種強勁的並行搜索方法,在多處理器系統中為目標音頻剪輯搜索大的音頻資料庫。該大的音頻資料庫可劃分成多個更小的組,這些組動態調度到系統中的可用處理器。處理器可通過將每個組劃分成更小的段,從段中提取聲學特徵,以及使用公共分量高斯混合模型(「CCGMM」)為段建模來並行處理已調度的組。一個處理器也可從目標音頻剪輯提取聲學特徵並使用CCGMM為其建模。可進一步計算在目標音頻剪輯與每個段之間的庫爾貝克-萊布勒(KL)距離。基於KL距離,可確定匹配目標音頻剪輯的段;和/或可跳過多個隨後的段。
文檔編號G06F17/00GK101553799SQ200680055729
公開日2009年10月7日 申請日期2006年7月3日 優先權日2006年7月3日
發明者Y·陳 申請人:英特爾公司