專利名稱:一種在音頻中嵌入和解出水印的方法和裝置的制作方法
技術領域:
本發明涉及信息隱藏技術,尤其涉及一種基于隨機擴頻碼的在數字音頻中嵌入和解出水印的方法和裝置。
背景技術:
隨著計算機網絡技術和多媒體技術的飛速發展,人們獲取數字多媒體文件更加便捷。但是,隨之而來的是針對數字多媒體文件的大量非授權拷貝和下載及其他非法獲取和使用。數字水印就是一項應運而生的,能進行所有權認證和追蹤非授權行為等應用的信息隱藏技術。在數字音頻領域的應用中,數字水印必須保證在經過一系列的音頻處理之后水印信息仍然是完整準確的,這是水印安全性方面的最重要的屬性。因此,在保證水印的安全性方面的技術層出不窮。數字水印技術發展到今天已經發展出了大量的算法。雖然水印算法的嵌入域包括了時域、幅頻域、相頻域、小波域、奇異值分解域等,但其中主流的嵌入方法分為擴頻和量化兩大類。相對于量化的方法,擴頻方法的優勢在于安全性高,有很強的抵御攻擊的能力。因此,在數字音頻應用領域,擴頻的水印嵌入方法更適合應用在抗混音攻擊的場合。音頻水印的混音攻擊是指混合多個含有音頻水印的音頻文件,從而導致水印無法解出或者解出大量錯碼的情況。對加過水印的音頻進行混音之后,各個音頻的水印碼之間會產生相互干擾,導致了在解碼的時候擴頻碼的相關得分受到很大干擾,產生大量的錯碼。
發明內容
本發明的目的是提供一種能夠克服至少上述缺陷之一的在音頻中嵌入和解出水印的方法和裝置。在本發明的第一方面,提供了一種在音頻中嵌入水印的方法,其中,所述水印包括多個水印幀,所述水印幀包括同步頭和信息位,所述方法包括根據第一隨機數從第一擴頻碼池中取出第一擴頻碼,根據第二隨機數從第二擴頻碼池中取出第二擴頻碼,其中,所述第一擴頻碼池和所述第二擴頻碼池是預先建立的,所述第一隨機數和所述第二隨機數的取值范圍分別由所述第一擴頻碼池和所述第二擴頻碼池中的擴頻碼的數量決定;用所述第一擴頻碼將編碼后的第二隨機數和同步位一起作為當前水印幀的同步頭嵌入所述音頻;以及用所述第二擴頻碼將水印信息作為當前水印幀的信息位嵌入所述音頻。在本發明的第二方面,提供了一種在音頻中嵌入水印的裝置,其中,所述水印包括多個水印幀,所述水印幀包括同步頭和信息位,所述裝置包括包括擴頻碼生成模塊,用于根據第一隨機數從第一擴頻碼池中取出第一擴頻碼,根據第二隨機數從第二擴頻碼池中取出第二擴頻碼,其中,所述第一擴頻碼池和所述第二擴頻碼池是預先建立的,所述第一隨機數和所述第二隨機數的取值范圍分別由所述第一擴頻碼池和所述第二擴頻碼池中的擴頻碼的數量決定;同步頭嵌入模塊,用于用所述第一擴頻碼將編碼后的第二隨機數和同步位一起作為當前水印幀的同步頭嵌入所述音頻;信息位嵌入模塊,用于用所述第二擴頻碼將水印信息作為當前水印幀的信息位嵌入所述音頻。在本發明的第三方面,提供了一種從音頻中解出水印的方法,所述水印包括多個水印幀,所述水印幀包括同步頭和信息位,所述同步頭是用第一擴頻碼池中的第一擴頻碼嵌入所述音頻的,所述信息位是用第二擴頻碼池中的第二擴頻碼嵌入所述音頻的,所述同步頭中包含所述第二擴頻碼的公鑰,所述方法包括根據所述第一擴頻碼池中的擴頻碼和所述音頻得到所述公鑰;根據所述公鑰從所述第二擴頻碼池中得到所述第二擴頻碼;以及根據所述第二擴頻碼和所述音頻得到所述信息位中的水印信息。在本發明的第四方面,提供了一種從音頻中解出水印的裝置,所述水印包括多個水印幀,所述水印幀包括同步頭和信息位,所述同步頭是用第一擴頻碼池中的第一擴頻碼嵌入所述音頻的,所述信息位是用第二擴頻碼池中的第二擴頻碼嵌入所述音頻的,所述同步頭中包含所述第二擴頻碼的公鑰,所述裝置包括公鑰獲取模塊,用于根據所述第一擴頻碼池中的擴頻碼和所述音頻得到所述公鑰;第二擴頻碼獲取模塊,用于根據所述公鑰從所述第二擴頻碼池中得到所述第二擴頻碼;以及信息位獲取模塊,用于根據所述第二擴頻碼和所述音頻得到所述信息位中的水印信息。本發明充分利用了不同擴頻碼之間的不相關性,采用了一種隨機使用擴頻碼的方法讓混音音頻中各個水印分量把相互干擾降到最低,大大提高了水印解碼的正確率。同時,考慮到使用所有擴頻碼進行相關檢測,會讓計算量猛增,還提出了一種新的幀結構,讓計算量大大降低。另外,提出了一種多同步技術,這讓各個混合分量都能在解碼時同時得到同步,解決了以往的同步技術只能讓一個混音分量得到同步的問題。從而實現了能夠抵御混音攻擊的數字音頻水印算法。
圖1是根據本發明實施例的水印幀的結構示意圖;圖2是根據本發明實施例的在音頻中嵌入水印的方法的流程圖;圖3是根據本發明實施例的從音頻中解出水印的方法的流程圖;圖4是根據本發明實施例的在音頻中嵌入水印的裝置的示意圖;以及圖5是根據本發明實施例的從音頻中解出水印的裝置的示意圖。
具體實施例方式下面通過附圖和實施例,對本發明的技術方案做進一步的詳細描述。本發明充分利用了不同擴頻碼之間的不相關性,采用一種隨機使用擴頻碼的方法讓各個混合水印分量把相互干擾降到最低,大大提高了水印解碼的正確率。同時,考慮到進行相關檢測所使用的擴頻碼的數量增加會讓計算量猛增,還提出了一種新的水印幀結構,讓計算量大大降低。另外,提出了一種多同步技術,這讓各個混合水印分量都能在解碼時同時得到同步,解決了以往的同步技術只能讓一個混音分量得到同步的問題。從而實現了能夠抵御混音攻擊的數字音頻水印算法。圖1是根據本發明實施例的水印幀的結構示意圖如圖1所示,根據本發明實施例的水印幀包括同步頭、信息位和空白位,其中,同步頭可以包括同步位1、信息位擴頻碼公鑰和同步位2。同步頭的結構可以是以同步位I開頭,后面接著是信息位擴頻碼公鑰,最后是同步位2的形式,當然也可以有其他形式,比如取消同步位I或2。同步位是預先設定的,它標明了同步頭的到來,沒有具體的信息含義;在水印解出的水印擴頻序列進行檢測時,會得到一個較高的分數,其正負只表示其位置是否正確,比如可以將同步位設定為1111。信息位擴頻碼公鑰包含了用于信息位的擴頻碼的加密信息。信息位包含有水印的詳細內容,空白位表示每個水印幀之間的音頻長度。圖2是根據本發明實施例的在音頻中嵌入水印的方法的流程圖。根據本發明實施例的音頻水印嵌入方法是通過在未嵌入水印的音頻中順序嵌入多個水印幀,最終得到嵌入了水印的音頻。每個水印幀嵌入音頻的過程基本類似,下面僅詳細描述在音頻中嵌入一個水印幀的情況。在步驟201,根據第一隨機數從第一擴頻碼池中取出第一擴頻碼,根據第二隨機數從第二擴頻碼池中取出第二擴頻碼,其中,所述第一擴頻碼池和所述第二擴頻碼池是預先建立的,所述第一隨機數和所述第二隨機數的取值范圍分別由所述第一擴頻碼池和所述第二擴頻碼池中的擴頻碼的數量決定。首先,可以初始化兩個擴頻碼池,第一個擴頻碼池用于嵌入水印幀的同步頭,第二個擴頻碼池用于嵌入水印幀的信息位。例如,第一擴頻碼池和第二擴頻碼池中的擴頻碼個數可以分別為5和128。接下來,分別產生取值范圍在1-5和1-128之間的第一和第二隨機數,用第一隨機數從第一擴頻碼池中取出對應的第一擴頻碼,用第二隨機數從第二擴頻碼池中取出對應的第二擴頻碼。可見,用于信息位的擴頻碼是從大量擴頻碼中選取的,使得同一種擴頻碼在混音時相遇的可能性降低。另外,用于同步頭的擴頻碼也是隨機的。但是,由于在水印解出的同步過程中,所有第一個擴頻碼池的擴頻碼都需要與音頻計算相關得分,過多的第一擴頻碼的數量會導致同步過程的計算量大大增加。因此,在折中計算量和性能之后,可以選擇同步頭所用的擴頻碼數量為5。因為同步頭比較短,因此重合的可能性比較小。在步驟202,根據所述第一擴頻碼,將編碼后的第二隨機數和同步位一起作為當前水印幀的同步頭嵌入所述音頻文件中,其中,編碼后的第二隨機數是所述的信息位擴頻碼公鑰,用于在水印解出時解碼得到所述第二擴頻碼。例如,由于采用BCH進行編碼可以有很好的容錯功能,因此可以將第二隨機數用糾錯碼BCH碼進行編碼后作為所述信息位擴頻公鑰嵌入音頻文件。在步驟203,根據所述第二擴頻碼,將所述水印信息編碼后作為當前水印幀的信息位嵌入所述音頻文件中。在步驟204,將第三隨機數編碼后作為當前水印幀的空白位嵌入所述音頻文件中,其中,在當前水印幀嵌入之后,在所述音頻文件中跳過一段長度再進行下一水印幀的嵌入,所述一段長度由所述第三隨機數決定。例如,可以將信息位的長度轉換成對應的數值,以該數值為第三隨機數的取值范圍得到所述第三隨機數。在傳統的水印嵌入中,音頻中嵌入的一個水印幀一個緊接著一個,在音頻文件混音時可能將同步頭會重疊在一起;在采用隨機長度的空白位之后,每個嵌入的水印幀的長度是隨機的,這種水印音頻在混音時不會產生傳統技術那樣的同步頭重疊的周期性錯誤。當然,即使沒有空白位的存在本發明的水印嵌入依然能夠實現。上面描述了在音頻文件中嵌入一個水印幀的流程。本發明的水印嵌入方法順序地嵌入水印幀,例如,在跳過空白位指示的音頻長度后繼續下一次水印幀的嵌入,直到該音頻文件結束,從而生成嵌入了水印的音頻。應當指出,在嵌入水印幀之前,應當首先對音頻進行快速傅里葉變換得到音頻的相位譜和幅度譜。然后,上述的水印幀嵌入過程是將其嵌入所述幅度譜,嵌入過程可以使用平衡調制和心理聲學模型來保證其穩健性和不可感知性;在幅度譜中嵌入水印幀之后,需要對所述相位譜和嵌入水印的幅度譜進行快速傅里葉逆變換,最終得到嵌入水印的音頻。圖3是根據本發明實施例的從音頻中解出水印的方法的流程圖。應當指出,根據本發明實施例的音頻水印解出方法可以應用于根據本發明實施例的音頻嵌入方法生成的水印音頻,也可以應用于由多個根據本發明實施例的音頻嵌入方法產生的水印音頻混音生成的音頻。如嵌入過程所述,所述水印包括多個水印幀,所述水印幀包括同步頭和信息位,所述同步頭是用第一擴頻碼池中的第一擴頻碼嵌入所述音頻的,所述信息位是用第二擴頻碼池中的第二擴頻碼嵌入所述音頻的,所述同步頭中包含所述第二擴頻碼的公鑰。在步驟301,根據所述第一擴頻碼池中的擴頻碼和嵌入水印的音頻(下稱水印音頻),得到用于嵌入信息位的擴頻碼的公鑰,如下詳述。首先,分別逐幀計算所述第一擴頻碼池中的每個擴頻碼與水印音頻的相關得分,從而得到多個幀得分隊列。每個幀得分隊列包括針對所述第一擴頻碼池中的一個擴頻碼與音頻的多幀相關得分,所述幀得分隊列可以用具有預定容量的先入先出存儲器來實現。然后,分別從每個幀得分隊列中選取一部分相關得分來計算同步位。如果多個幀得分隊列中出現了滿足所有同步位信息并且該部分相關得分之和超過預定閾值的隊列,則將相關得分之和的計算逐幀后移,注意,相關得分之和針對的是一個預定數量的相關得分。如果所述相關得分之和在逐幀后移的過程中達到峰值,則可以將該峰值點確定為對應的第一擴頻碼的同步頭位置,從而確定達到峰值的該幀的相關得分為滿足同步條件的相關得分。如果沒有出現滿足所有同步位信息并且該部分的相關得分之和超過閾值的隊列,則彈出幀得分隊列中最早進入的相關得分,重新計算同步位,直到找到滿足條件的隊列為止。最后,從滿足同步條件的該幀相關得分中計算出第二擴頻碼的公鑰。在步驟302,根據公鑰從第二擴頻碼池中得到第二擴頻碼。對所述公鑰進行解碼得到第二隨機數,根據所述第二隨機數從所述第二擴頻碼池中取出所述第二擴頻碼。在步驟303,根據所述第二擴頻碼和所述水印音頻解出所述信息位中的水印信息。根據所述第二擴頻碼與滿足同步條件的水印音頻幀進行相關得分計算,從該幀相關得分中計算出信息位中的水印信息。在步驟304,逐幀計算所述第二擴頻碼與水印音頻的相關得分。在步驟305,將多幀的第二擴頻碼與所述水印音頻的相關得分與預定閾值進行比較,根據比較結果輸出所述水印信息。如果多幀的信息位的相關得分之和低于預定閾值,則將此次同步判斷為誤同步或者判斷為同步頭中的信息位擴頻碼公鑰無法被糾錯碼糾錯,將此次同步判斷為無效同步,丟棄結果;反之,則將解碼得出的水印信息為有效結果輸出。然后,一直這樣同時進行同步和解碼的相關檢測過程直到整個水印音頻文件結束。圖4是根據本發明實施例的在音頻中嵌入水印的裝置的示意圖。根據本發明實施例的音頻水印嵌入方法是通過在未嵌入水印的音頻中順序嵌入多個水印幀,最終得到嵌入了水印的音頻。每個水印幀嵌入音頻的過程基本類似,下面僅詳細描述在音頻中嵌入一個水印幀的情況。擴頻碼生成模塊根據第一隨機數從第一擴頻碼池中取出第一擴頻碼,根據第二隨機數從第二擴頻碼池中取出第二擴頻碼,其中,所述第一擴頻碼池和所述第二擴頻碼池是預先建立的,所述第一隨機數和所述第二隨機數的取值范圍分別由所述第一擴頻碼池和所述第二擴頻碼池中的擴頻碼的數量決定。首先,可以初始化兩個擴頻碼池,第一個擴頻碼池用于水印幀的同步頭,第二個擴頻碼池用于水印幀的信息位。例如,第一擴頻碼池和第二擴頻碼池中的擴頻碼個數可以分別為5和128。接下來,擴頻碼生成模塊分別產生取值范圍在1-5和1-128之間的第一和第二隨機數,用第一隨機數從第一擴頻碼池中取出對應的第一擴頻碼,用第二隨機數從第二擴頻碼池中取出對應的第二擴頻碼。可見,用于信息位的擴頻碼是從大量擴頻碼中選取的,使得同一種擴頻碼在混音時相遇的可能性降低。另外,用于同步頭的擴頻碼也是隨機的。但是,由于在水印解出的同步過程中,由于所有的擴頻碼都需要與音頻計算相關得分,過多的第一擴頻碼的數量會導致同步過程的計算量大大增加。因此,在折中計算量和性能之后,可以選擇同步頭所用的擴頻碼數量為5。因為同步頭比較短,因此重合的可能性比較小。同步頭嵌入模塊根據所述第一擴頻碼,將編碼后的第二隨機數和同步位一起作為當前水印幀的同步頭嵌入所述音頻文件中,其中,編碼后的第二隨機數是所述的信息位擴頻碼公鑰,用于在水印解出時解碼得到所述第二擴頻碼。例如,由于采用BCH進行編碼可以有很好的容錯功能,因此可以將第二隨機數用糾錯碼BCH碼進行編碼后作為所述信息位擴頻公鑰嵌入音頻文件。信息位嵌入模塊根據所述第二擴頻碼,將所述水印信息編碼后作為當前水印幀的信息位嵌入所述音頻文件中。空白位嵌入模塊將第三隨機數編碼后作為當前水印幀的空白位嵌入所述音頻文件中,其中,在當前水印幀嵌入之后,在所述音頻文件中跳過一段長度再進行下一水印幀的嵌入,所述一段長度由所述第三隨機數決定。例如,可以將信息位的長度轉換成對應的數值,以該數值為第三隨機數的取值范圍得到所述第三隨機數。在傳統的水印嵌入中,音頻中嵌入的一個水印幀一個緊接著一個,在音頻文件混音時可能將同步頭會重疊在一起;在采用隨機長度的空白位之后,每個嵌入的水印幀的長度是隨機的,這種水印音頻在混音時不會產生傳統技術那樣的同步頭重疊的周期性錯誤。當然,即使沒有空白位的存在本發明的水印嵌入依然能夠實現。上面描述了在音頻文件中嵌入一個水印幀的流程。本發明的水印嵌入方法順序地嵌入水印幀,例如,在跳過空白位指示的音頻長度后繼續下一次水印幀的嵌入,直到該音頻文件結束,從而生成嵌入了水印的音頻。應當指出,在嵌入水印幀之前,快速傅里葉變換模塊首先對音頻進行快速傅里葉變換得到音頻的相位譜和幅度譜。然后,上述的水印幀嵌入過程是將其嵌入所述幅度譜,嵌入過程可以使用平衡調制和心理聲學模型來保證其穩健性和不可感知性;在幅度譜中嵌入水印幀之后,快速傅里葉逆變換模塊對所述相位譜和嵌入水印的幅度譜進行快速傅里葉逆變換,最終得到嵌入水印的音頻。圖5是根據本發明實施例的從音頻中解出水印的裝置的示意圖。應當指出,根據本發明實施例的音頻水印解出方法可以應用于根據本發明實施例的音頻嵌入方法生成的水印音頻,也可以應用于由多個根據本發明實施例的音頻嵌入方法產生的水印音頻混音生成的音頻。如嵌入過程所述,所述水印包括多個水印幀,所述水印幀包括同步頭和信息位,所述同步頭是用第一擴頻碼池中的第一擴頻碼嵌入所述音頻的,所述信息位是用第二擴頻碼池中的第二擴頻碼嵌入所述音頻的,所述同步頭中包含所述第二擴頻碼的公鑰。公鑰獲取模塊根據所述第一擴頻碼池中的擴頻碼和嵌入水印的音頻(下稱水印音頻),得到用于嵌入信息位的擴頻碼的公鑰,如下詳述。首先,分別逐幀計算所述第一擴頻碼池中的每個擴頻碼與水印音頻的相關得分,從而得到多個幀得分隊列。每個幀得分隊列包括針對所述第一擴頻碼池中的一個擴頻碼與音頻的多幀相關得分,所述幀得分隊列可以用具有預定容量的先入先出存儲器來實現。然后,分別從每個幀得分隊列中選取一部分相關得分來計算同步位。如果多個幀得分隊列中出現了滿足所有同步位信息并且該部分相關得分之和超過預定閾值的隊列,則將相關得分之和的計算逐幀后移,注意,相關得分之和針對的是一個預定數量的相關得分。如果所述相關得分之和在逐幀后移的過程中達到峰值,則可以將該峰值點確定為對應的第一擴頻碼的同步頭位置,從而確定達到峰值的該幀的相關得分為滿足同步條件的相關得分。如果沒有出現滿足所有同步位信息并且該部分的相關得分之和超過閾值的隊列,則彈出幀得分隊列中最早進入的相關得分,重新計算同步位,直到找到滿足條件的隊列為止。最后,從滿足同步條件的該幀相關得分中計算出第二擴頻碼的公鑰。第二擴頻碼獲取模塊根據公鑰從第二擴頻碼池中得到第二擴頻碼。第二擴頻碼獲取模塊對所述公鑰進行解碼得到第二隨機數,根據所述第二隨機數從所述第二擴頻碼池中取出所述第二擴頻碼。信息位獲取模塊根據所述第二擴頻碼和所述水印音頻解出所述信息位中的水印信息。信息位獲取模塊根據所述第二擴頻碼與滿足同步條件的水印音頻幀進行相關得分計算,從該幀相關得分中計算出信息位中的水印信息。然后,逐幀計算所述第二擴頻碼與水印音頻的相關得分,將多幀的第二擴頻碼與所述水印音頻的相關得分與預定閾值進行比較,根據比較結果輸出所述水印信息。如果多幀的信息位的相關得分之和低于預定閾值,則將此次同步判斷為誤同步或者判斷為同步頭中的信息位擴頻碼公鑰無法被糾錯碼糾錯,將此次同步判斷為無效同步,丟棄結果;反之,則將解碼得出的水印信息為有效結果輸出。一直這樣同時進行同步和解碼的相關檢測過程直到整個水印音頻文件結束。專業人員應該還可以進一步意識到,結合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結合來實現,為了清楚地說明硬件和軟件的可互換性,在上述說明中已經按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執行,取決于技術方案的特定應用和設計約束條件。專業技術人員可以對每個特定的應用來使用不同方法來實現所描述的功能,但是這種實現不應認為超出本發明的范圍。結合本文中所公開的實施例描述的方法或算法的步驟可以用硬件、處理器執行的軟件模塊,或者二者的結合來實施。軟件模塊可以置于隨機存儲器(RAM)、內存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或技術領域內所公知的任意其它形式的存儲介質中。以上所述的具體實施方式
,對本發明的目的、技術方案和有益效果進行了進一步詳細說明,所應理解的是,以上所述僅為本發明的具體實施方式
而已,并不用于限定本發明的保護范圍,凡在本發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。
權利要求
1.一種在 音頻中嵌入水印的方法,其中,所述水印包括多個水印幀,所述水印幀包括同步頭和信息位,所述方法包括: 根據第一隨機數從第一擴頻碼池中取出第一擴頻碼,根據第二隨機數從第二擴頻碼池中取出第二擴頻碼,其中,所述第一擴頻碼池和所述第二擴頻碼池是預先建立的,所述第一隨機數和所述第二隨機數的取值范圍分別由所述第一擴頻碼池和所述第二擴頻碼池中的擴頻碼的數量決定; 用所述第一擴頻碼將編碼后的第二隨機數和同步位一起作為當前水印幀的同步頭嵌入所述音頻;以及 用所述第二擴頻碼將水印信息作為當前水印幀的信息位嵌入所述音頻。
2.根據權利要求1所述的方法,其中,所述水印幀還包括空白位,所述方法還包括: 將第三隨機數編碼后作為當前水印幀的空白位嵌入所述音頻,其中,在當前水印幀嵌入之后,在所述音頻中跳過一段長度后進行下一水印幀的嵌入,所述一段長度由所述第三隨機數決定。
3.根據權利要求1所述的方法,還包括: 對所述音頻進行快速傅里葉變換得到所述音頻的相位譜和幅度譜,其中,所述水印幀被嵌入所述幅度譜; 對所述相位譜和嵌入水印的幅度譜進行快速傅里葉逆變換,得到嵌入水印的音頻。
4.一種從音頻中解出水印的方法,所述水印包括多個水印幀,所述水印幀包括同步頭和信息位,所述同步頭是用第一擴頻碼池中的第一擴頻碼嵌入所述音頻的,所述信息位是用第二擴頻碼池中的第二擴頻碼嵌入所述音頻的,所述同步頭中包含所述第二擴頻碼的公鑰,所述方法包括: 根據所述第一擴頻碼池中的擴頻碼和所述音頻得到所述公鑰; 根據所述公鑰從所述第二擴頻碼池中得到所述第二擴頻碼;以及 根據所述第二擴頻碼和所述音頻得到所述信息位中的水印信息。
5.根據權利要求4所述的方法,其中,所述根據所述第一擴頻碼池中的擴頻碼和所述音頻得到所述公鑰的步驟包括: 分別逐幀計算所述第一擴頻碼池中的每個擴頻碼與所述音頻的相關得分,得到多個幀得分隊列,每個幀得分隊列包括針對所述第一擴頻碼池中的一個擴頻碼和所述音頻的多幀相關得分; 根據每個幀得分隊列中的多幀相關得分找出滿足第一同步條件的幀得分隊列; 在所述滿足第一同步條件的幀得分隊列中找出滿足第二同步條件的相關得分;以及 從所述滿足第二同步條件的相關得分中計算出所述第二擴頻碼的公鑰。
6.根據權利要求4所述的方法,還包括: 逐幀計算所述第二擴頻碼與所述音頻的相關得分;以及 將所述第二擴頻碼與所述音頻的多幀相關得分與預定閾值進行比較,根據比較結果輸出所述信息位中的水印信息。
7.—種在音頻中嵌入水印的裝置,其中,所述水印包括多個水印幀,所述水印幀包括同步頭和信息位,所述裝置包括: 擴頻碼生成模塊,用于根據第一隨機數從第一擴頻碼池中取出第一擴頻碼,根據第二隨機數從第二擴頻碼池中取出第二擴頻碼,其中,所述第一擴頻碼池和所述第二擴頻碼池是預先建立的,所述第一隨機數和所述第二隨機數的取值范圍分別由所述第一擴頻碼池和所述第二擴頻碼池中的擴頻碼的數量決定; 同步頭嵌入模塊,用于用所述第一擴頻碼將編碼后的第二隨機數和同步位一起作為當前水印幀的同步頭嵌入所述音頻; 信息位嵌入模塊,用于用所述第二擴頻碼將水印信息作為當前水印幀的信息位嵌入所述音頻。
8.根據權利要求7所述的裝置,還包括: 快速傅里葉變換模塊,用于對所述音頻進行快速傅里葉變換得到所述音頻的相位譜和幅度譜,其中,所述水印幀被嵌入所述幅度譜; 快速傅里葉逆變換模塊,用于對所述相位譜和嵌入水印的幅度譜進行快速傅里葉逆變換,得到嵌入水印的音頻。
9.根據權利要求7所述的裝置,其中,所述水印幀還包括空白位,所述裝置還包括: 空白位嵌入模塊,用于將第三隨機數編碼后作為當前水印幀的空白位嵌入所述音頻,其中,在當前水印幀嵌入之后,在所述音頻中跳過一段長度后進行下一水印幀的嵌入,所述一段長度由所述第三隨機數決定。
10.一種從音頻中解出水印的裝置,所述水印包括多個水印幀,所述水印幀包括同步頭和信息位,所述同步頭是用第一擴頻碼池中的第一擴頻碼嵌入所述音頻的,所述信息位是用第二擴頻碼池中的第二擴頻碼嵌入所述音頻的,所述同步頭中包含所述第二擴頻碼的公鑰,所述裝置包括: 公鑰獲取模塊,用于根據所述第一擴頻碼池中的擴頻碼和所述音頻得到所述公鑰;第二擴頻碼獲取模塊,用于根據所述公鑰從所述第二擴頻碼池中得到所述第二擴頻碼;以及 信息位獲取模塊,用于根據所述 第二擴頻碼和所述音頻得到所述信息位中的水印信肩、ο
全文摘要
本發明涉及一種在音頻中嵌入和解出水印的方法和裝置。本發明充分利用了不同擴頻碼之間的不相關性,采用了隨機使用擴頻碼來嵌入水印幀,降低了各個混音音頻中的各個水印分量之間的相互干擾,大大提高了水印解碼的正確率。同時,考慮到使用所有擴頻碼進行相關檢測會讓計算量猛增,提出了一種新的幀結構,讓計算量大大降低。另外,提出了一種多同步技術,這讓各個水印分量都能在解碼同時得到同步,解決了以往的同步技術只能讓一個混音分量得到同步的問題。從而實現了能夠抵御混音攻擊的數字音頻水印算法。
文檔編號G10L19/018GK103077724SQ20121058556
公開日2013年5月1日 申請日期2012年12月28日 優先權日2012年12月28日
發明者顏永紅, 郭宇弘, 趙學敏, 劉建 申請人:中國科學院聲學研究所, 上海中科高等研究院, 北京中科信利技術有限公司