洪鵬程,黃一才,郁 濱 信息工程大學,鄭州 450001
藍牙是一種短距離無線通信技術,現已成為智能手機的標準配置,可方便與手機連接。針對移動通信存在的竊聽等安全問題[1],在藍牙終端中實現語音實時加解密,可以保證語音在手機、無線信道和基站中安全傳輸。
和數據信道相比,移動通信網的語音信道具有高優先權、高覆蓋率、實時性強、可用性強和可靠性強等特點[2]。但是語音信道的聲碼器使用有損的、有記憶的壓縮編碼,不允許非語音特征數據通過。文獻[3]總結歸納了前人提出的在聲碼器上傳輸加密信號方法,核心思想均是將加密信息轉換成類語音進行傳輸,其中以波形碼本方案的傳輸性能最佳。但是大多數研究方案均在仿真環境實現,沒有考慮在實際應用的同步方法[3-5]。
由于類語音信號從藍牙終端經手機、移動通信網等信道的傳輸過程中經歷了多次編解碼,因而存在延遲、失真、丟幀等特點,使得收發兩端的數據難以同步。只有對接收到的類語音數據準確同步才能解調和解密。
現有的語音同步方案中,多采用外同步方法,如添加時間戳或同步幀等同步頭[6-8],這種方式可用于方便對語音幀頭控制的場景,但由于同步頭本身難以通過移動通信網語音信道傳輸,并不適合純語音流數據的同步。文獻[9]以線性調頻信號為同步結構,設計了一種端到端語音加密通信的同步方案,能夠實現語音端到端的同步,但該方案存在的問題不斷自相關檢驗需要消耗大量計算資源。文獻[10]指出在語音頻段300~3 400 Hz的正弦波對聲碼器的穿透性好,且優于線性調頻信號,因此,正弦波可以用作移動通信網端到端的加密語音同步頭。
文獻[11]為了實現語音同步,對波形、頻域和倒譜檢測3 種數字語音處理方法進行了分析與對比,但是3 種方案均存在計算量偏大等問題。呂麗平等[12]指出以基于聲學特征的方法實現語音端點檢測的實時性強且簡單有效,這對同步信號檢測同樣具有啟發意義。使用的聲學特征包括時域特征,如短時過零率、平均能量以及自相關性等,和頻率特征,如倒譜距離法、頻帶方差法和譜熵法等[13]。但文獻[12]設計的端點檢測誤差范圍是3幀,而這使得加密語音信號不能恢復。文獻[14]指出使用滑動窗口逐個進行滑動匹配,雖然保證了準確性,但是帶來了較大的計算開銷。文獻[15-17]針對低信噪比情形設計了端點檢測方案,算法實時性較差。
因此,本文設計了面向語音加密傳輸的兩級同步機制。利用正弦信號的易檢測性,通過滑動窗口對過零次數、樣點值和的絕對值以及樣點值絕對值的和3個時域特征進行檢測,用以捕捉同步頭范圍;利用波形符號的可透傳性,通過模板匹配確定同步頭精確的起始點。
本章先描述相關定義,再分析同步在端到端加密中的意義。
定義1(滑動窗口)語音檢索基本單位,寬度為W,其中的語音數據記為w(k),1 ≤k≤W。
為了利用正弦信號的周期性,使W包含的采樣點數正好包含頻率為fsin的同步正弦信號一個周期采樣點的整數倍,即設置W為fs fsin整數倍,其中fs為語音采樣率,fsin為同步所使用的正弦信號的頻率。
定義2(短時過零次數)指滑動窗口內過零次數,用表示。
定義3(樣點值和的絕對值)指滑動窗口所有語音樣點值和的絕對值,用表示。
定義4(樣點值絕對值的和)指滑動窗口所有語音樣點值絕對值的和,用表示。
定義5(保持態)指保持同步的狀態。
定義6(捕捉態)指正在尋找同步的狀態。
語音在保持態和捕捉態中轉換。語音通信開始時,接收方處于捕捉態,當接收方完成初始同步后進入到保持態。為了保證語音正常傳輸,需要能對當前狀態定期檢測,當檢測到失步時通過同步恢復調整,重新進入保持態,其狀態轉換如圖1所示。

圖1 同步狀態轉換圖
定義7(波形符號)指采樣點數固定為L的一組類語音片斷,用Si={si0.,si1,…,si(L-1)}表示,1 ≤i≤N。
定義8(調制碼本)與數據集{0,1,…,N-1} 一一對應的一組波形符號,用表示,其中N=2n。
定義9(解調碼本)使用調制碼本傳輸隨機數據訓練得到的一組與調制碼本一一對應的波形符號,用表示,用于提高解調成功率。
波形碼本包括調制碼本和解調碼本。
語音傳輸過程中,模數轉換、壓縮/解壓、加密/解密、類語音調制/解調和同步等操作均在藍牙終端中處理,而在手機和移動通信網中不進行任何改動,移動通信網端到端加密整體通信流程如圖2所示。
在發送方,發送語音在藍牙終端通過模數轉換后,首先通過數據壓縮去冗余,然后進行加密以保證數據安全,接著將加密數據進行類語音調制使其能在語音信道上傳輸,具體方法是將數據以n比特為一組轉換為十進制i,并映射為對應波形符號Si,最后在得到的類語音波形符號插入同步頭通過手機以及移動通信網傳輸。

圖2 移動通信網端到端加密通信流程
在接收方實現一個對稱過程,首先要找到并去掉語音同步頭,然后進行類語音解調,具體方法是接收方將接收到的波形與解調碼本中的波形符號{SO0,SO1,…,SON-1}一一求余弦距離,將余弦距離最大的波形符號對應的序號作為接收的數據,之后再進行解密及解壓和數模轉換操作。
由上述過程可知:(1)同步在整個傳輸過程中起到了一個對接作用,接收方只有準確地檢測到初始同步頭,才能正常進行接下來的類語音解調和解密等操作。(2)初始同步后的語音傳輸同樣需要檢測同步狀態,在檢測到失步時,能夠使語音自行同步。(3)在實現同步方案時,需要考慮同步方案的計算量,若計算量過大,則會造成數據處理出現延時和紊亂,同樣會影響后續操作進行。
同步設計包括初始同步和周期同步兩部分,前者用于在連接建立之初使系統同步,后者用于定期地檢測系統是否同步,并在當檢測到失步情況下,重新進行同步。因此分別設計初始同步頭和周期同步頭,如圖3所示。

圖3 同步頭設計
兩者設計異同如下。
(1)相同之處
初始同步頭和周期同步頭都由前導和后導組成。其中,前導使用正弦信號,便于接收方通過時域特性確定后導范圍,后導使用類語音信號,用于進一步匹配確定精確的后導起始點。因為前導和后導只有具備語音特征才能穿透聲碼器,因此所選正弦信號的頻率在300~3 400 Hz之間,后導所選的類語音信號為調制碼本中的波形符號。
(2)不同之處
一是兩者前導長度不同,初始同步頭的正弦信號長度R1要比周期同步頭的正弦信號長度R2要長。因為在初始同步時,需要保證即使在R1部分信號由于傳呼建立等原因丟失的情況下,R1仍然能被接收方檢測出。而周期同步頭為了在正常語音中的占比小,在保證能被檢測到的情況下,R2的長度要盡可能短。
二是兩者后導所選擇的類語音不同。初始同步頭只在開始使用,只需要在調制碼本中選用一個波形符號即可,如S0。而周期同步頭則在后續語音傳輸中都會存在,當檢測到失步狀態時,還要用于重新同步,這就需要根據周期性同步頭能判斷同步到再次同步之間所丟的數據,以使接收方知道在失步期間的數據量,方便進行下一步操作。基于此,周期同步頭的后導按序循環選用調制碼本中的波形符號。
語音初始同步建立包括確定后導起始點范圍和確定后導起始點兩個階段,前者用于初步定位后導起始點范圍,后者用于在后導起始點范圍內尋找到準確的后導起始點。
3.1.1確定后導起始點范圍
時域提取特征包括過零次數Z、樣點值和絕對值E以及樣點值絕對值和F,相比頻率特征計算量少。如果提取特征均在設置范圍區間則認定為檢測到正弦信號。
在接收方,以寬度為W、步長為W的滑動窗口對接收到的語音數據提取特征并進行檢測。當滑動窗口檢測到正弦信號時,即表示接收方已經檢測到初始同步頭前導,由于發送的正弦信號長度R1較長,所以接下來幾個窗口仍可能是正弦信號,直到檢測到滑動窗口內數據為非正弦信號時,則判定當前檢索窗口包含同步頭后導起始點,并稱之為待匹配窗口,檢測時可能出現的兩種情況如圖4所示:
(1)后導起始點位于滑動窗口內部;
(2)后導起始點位于滑動窗口邊界及附近。
為了減小第二種情況對結果的干擾,使得初始同步頭后導起始點未出現在待匹配窗口內,將待匹配窗口向前增加A個采樣點,因此待匹配窗口的采樣點數目為W+A個。

圖4 初始同步頭檢索示意圖
綜上所述,確定后導起始點范圍流程如圖5 所示,其中flag_sin0 和flag_sin1 分別表示前一個和當前滑動窗口的正弦信號檢測標志,初始值為0,當檢測到正弦信號時其值為1。在接收方,通過該流程,最終可以得到包含W+A個采樣點的待匹配窗口。
考慮到語音信道對正弦信號傳輸影響,為提高檢測準確性,通過在語音信道多次實際傳輸正弦信號后,統計得出時域特征Z、E、F的參考范圍[Zmin,Zmax] 、Emax 和 [Fmin,Fmax]。

圖5 初始同步頭檢索示意圖
3.1.2確定后導起始點范圍
當得到待匹配窗口后,需要進一步確定后導在待匹配窗口中的起始點,記待匹配窗口內采樣值為D={d0,d1,…,d(W+A-1)}。由于待匹配窗口標記的是同步語音可能存在的起始點,而后導長度為L,還需要使用待匹配窗口后的L-1 個語音數據{d(W+A),d(W+A+1),…,d(W+A+L-1)},并將其和待匹配窗口合稱為待檢語音窗{d0,d1,…,d(W+A+L-1)}。
若選擇調制碼本中的S0作為后導,則以S0對應的SO0={so00.,so01,…,so0(L-1)}為匹配模板。因為SO0采樣點數為L,所以對待檢語音窗以窗口寬度為L,步長為1進行滑動窗口匹配,如圖6所示。

圖6 初始同步確定后導起始點示意圖
具體檢索過程如下。當前被檢語音窗口為Di={di.,di+1,…,di+L-1},用于表示后導與Di待檢索語音之間的絕對距離,j表示后導起始點在待匹配窗口中的位置。
步驟1 初始化i=0;
步驟2 計算匹配模板和當前被檢語音Di之間的絕對距離
步驟3i=i+1,如果i≤W+A-1,跳入步驟2;
步驟4 計算j=arg minDIS1i,將j作為后導起始點,結束。
語音同步檢測恢復包括兩個方面:一是通過周期同步頭能夠正常檢測語音是否處于同步狀態;二是當檢測到失步時,能自行調整恢復到同步狀態。
3.2.1同步檢測
為減少周期同步頭在正常語音中所占比重,同時又能在至少一個完整窗口檢測到前導,將前導長度設置為檢索窗口兩倍,即R2=2W。
在接收方,語音完成初始同步后進入同步保持態。在該狀態下只需要對周期同步頭中的后導進行檢測,就能確定當前傳輸的語音是否處于同步狀態。由于后導是循環選擇調制碼本中的波形符號Si(0 ≤i≤N-1),若在第1次接收到周期同步頭后導時,與解調碼本中的波形符號SO0對比判決,則在第t次時,與SOtmodN比對判決。判決方法是求接收到的后導與波形符號的絕對距離,將第t次接收到的后導記為St',將St'和SOtmodN的絕對距離記為
當DIS2t小于閾值TH(其值實驗統計得出)時,即判斷成功檢測到同步信號。為了保證系統的可靠性,只有當連續兩次求解的絕對距離大于TH時,才認定系統不再處于同步狀態,且接收方則由同步保持態轉成捕捉態。
3.2.2同步恢復
假設在第t次接收到后導時能夠正確驗證,而在t+1 和t+2 連續兩次匹配后導失敗后,接收方則認定系統不再同步,接收方將以寬度為W、步長為W的滑動窗口進行檢測。
(1)確定后導起始點范圍
與初始同步建立不同的是,由于周期同步頭的前導較短,檢測正弦信號時可能出現的兩種情況如圖7所示。

圖7 周期同步頭檢索示意圖
由圖7 可知,兩種情況的共同點是,當某一滑動窗口檢測到正弦信號時,下一滑動待匹配窗口包含了周期同步頭后導起始點,即待匹配窗口。為防止初始同步頭檢測點位于滑動窗口邊界附近使結果判斷不準確帶來的影響,將待匹配窗口向后增加A 個采樣點,具體檢測流程如圖8所示。

圖8 同步恢復確定后導起始點流程圖
(2)確定后導起始點
確定后導起始點在找出后導起始點同時,還需要判斷上一次成功同步到這一次同步之間發送數據的周期。因此和初始同步確定起始點相比,接收方用作匹配模板的對象不一樣,前者對象是固定的,而后者為調制碼本中的所有波形符號。在這里重點對如何選擇解調碼本中的波形符號與待檢語音窗對比進行描述。
首先將解調碼本中的波形符號SO(t+3)modN作為匹配模板與待檢語音窗匹配找到起始點,如果該起點對應的絕對距離小于閾值TH,則判定匹配成功;否則,待檢語音窗按相同方法與下一個波形符號SO(t+4)modN匹配,直到判定成功為止。
假設經過k次匹配,即待檢語音窗與SO(t+k+2)modN匹配成功,則認定上一次同步成功距離本次匹配成功之間共丟失了(k+2)T的數據(T為同期同步頭插入正常語音的周期)。同時,為了保證系統可靠性,若下一個同期同步頭的后導與SO(t+k+3)modN匹配成功才進入保持態,否則保持捕捉態,且重新確定待匹配窗口。
在該過程中,因為待檢語音窗與解調碼本中的波形符號按序循環匹配,如果回到第一次匹配的波形符號仍不成功,則同步失敗,即方案可接受的發送數據丟包時長要小于NT。但一般情況,T大于1 s,N一般大于16,所以方案實際可允許丟包時間是在可接受范圍內的。
仿真環境為MATLAB,其中移動通信網的聲碼器采用ETSI標準的AMR聲碼器(編碼速率為12.2 Kb/s),藍牙語音編解碼器采用SIG 規定的CVSD 編碼。通過仿真實驗模擬語音信道對方案進行評估,檢測其能否實現語音初始自同步,以及在發生丟幀情況下,接收方是否能夠檢測到當前同步狀態,并自適應恢復同步。
設置兩組實驗,研究波形符號采樣點數L和滑動窗口寬度W對本文方案的影響。
針對同步建立方案,事先生成發送數據并在數據前加入隨機長度語音信號,用于模擬通話接通前的等待時間。針對同步檢測恢復方案,在一段正常語音中間截斷隨機長度的語音,用于檢測方案同步檢測和同步恢復成功恢復率。
實驗中的共同參數設置如下:實驗次數1 000次,前導選擇的正弦波頻率fsin=1 000 Hz,R1=480,R2=2W,A=8(通過驗證當A>8 時,對實驗結果不再有影響),波形碼本的波形符號數量為32個。
(1)初始同步建立實驗
對波形符號采樣點數L=40,36,30,20 進行測試。其他參數設置,記,取x=7 ,即W=56 ,[Zmin,Zmax]=[13,14],Emax=0.2,[Fmin,Fmax]=[13.2,14.5],閾值TH分別為3、2.8、2.5、2.2。
(2)同步檢測恢復實驗
取x=7,6,5,4,即W分別為56,48,40,32 進行測試。[Zmin,Zmax]、Emax和[Fmin,Fmax]設置如表1;其他參數設置,波形符號采樣點數L=40,閾值TH=3。

表1 參數設置
(1)初始同步建立實驗
實驗結果如圖9所示,只有當確定后導起始點精確到采樣點時才算同步成功。

圖9 初始同步建立實驗結果
當波形符號采樣點數L減小時,兩類同步成功率均會降低。當波形符號采樣點數達到40 時,其初始同步和周期同步成功率均能達到99%以上。實驗發現,未初始同步成功的情況與實際結果偏差較小,仍可通過周期同步實現真同步。
(2)同步檢測恢復實驗
實驗結果如圖10 所示。當滑動窗口寬度W值減小時,兩類同步成功率均會降低。當W為56 時,兩類同步成功率均能達到99%以上。

圖10 同步檢測恢復實驗結果
當參數設置為W=56,N=32,L=40,A=8,R1=600時,將本文方案和文獻[9]對比,結果如表2所示。

表2 結果對比
相比文獻[9],本文方案的計算量具有較大優勢,在確定后導起始點范圍時一般只需要計算檢索窗口的過零次數,需要計算55次加法,在確定后導起始點時計算量最大,但也僅為2 560次加法。此外,本文方案還能同步狀態檢測和恢復同步狀態,更適合用于移動通信網中無同步幀情形下的語音同步。
針對藍牙加密語音同步問題,利用正弦信號和波形符號,設計了初始同步頭和周期同步頭,提出了語音初始同步建立方案和語音同步檢測恢復方案,在實現同步的提前下,還具有較小計算量。本文工作也為下一步通過藍牙設備實現移動通信網語音加解密提供了技術支持。