潘嘉琦 曹科才 丁嘉存 雷鎮(zhèn)豪 趙 勃
(南京郵電大學自動化學院人工智能學院 南京 210023)
隨著電子信息技術(shù)與控制理論的廣泛應用和普及,無人機技術(shù)得到不斷完善?,F(xiàn)今無人機正走入各個領(lǐng)域,逐漸成為各行各業(yè)生產(chǎn)以及生活中的助推劑[1]。但目前極少有支持語音對講功能的無人機產(chǎn)品以及相關(guān)研究,大部分無人機只支持視頻拍攝功能,而無法實現(xiàn)拾音功能。這浪費了無人機潛在的應用價值。如果能夠?qū)崿F(xiàn)無人機上的語音降噪,實現(xiàn)無人機的語音系統(tǒng),則可以充分挖掘無人機的應用潛力,使無人機擁有更加完備的功能以及更加廣泛的應用。例如當人被困于山崖中,或被困于因地震、洪水形成的的孤島中,救援人員難以抵達,無法與被困人員通信時,無人機可以飛抵被困人員身邊,其搭載的麥克風接收被困人員喊話,從而使得被困人員有效地向救援人員傳遞信息。但如何在無人機發(fā)出較大噪音的環(huán)境中盡可能地拾取有效語音信號,并從帶噪語音信號中還原出盡可能純凈的原始語音是一項技術(shù)難題。
語音降噪問題是近年來的一個研究熱點,對此各國學者提出了諸多方法[2],其中應用較為廣泛的有基本譜減法[3]、LMS自適應濾波[4]、維納濾波[5]、以及獨立成分分析[6~8]等方法。獨立成分分析是近年來較為流行的方法[9],該方法針對人為線性疊加的信號有較好的分離效果,但對于在空氣中自然混合的聲音信號,由于涉及到疊加的非線性以及過程中存在的卷積等問題,難以達到較好的降噪效果。而在經(jīng)典的語音降噪方法中,維納濾波降噪適應性廣、特別是處理平穩(wěn)噪聲效果較好,是較為簡便且應用廣泛的方法[10~11]。經(jīng)過對各種方法的仿真測試比較,發(fā)現(xiàn)維納濾波在在無人機語音系統(tǒng)的中有著較好的效果,因此本文選用維納濾波降噪方法。
此外,為了實現(xiàn)系統(tǒng)中音視頻的實時傳輸,本文基于WebRTC技術(shù),獲取各終端本地的音視頻媒體信息,在無人機與地面終端間建立對等連接,將媒體和數(shù)據(jù)通道關(guān)聯(lián)至該連接,實現(xiàn)流媒體傳輸,并搭建硬件平臺,應用維納濾波降噪算法與We?bRTC技術(shù),最終完成了無人機語音系統(tǒng)的設計與實現(xiàn)。
本文基于維納濾波算法以及WebRTC協(xié)議設計了一種無人機語音系統(tǒng),結(jié)構(gòu)如圖1,本系統(tǒng)實現(xiàn)了以下功能。
圖1 無人機語音系統(tǒng)結(jié)構(gòu)圖
1)通過無人機上搭載的麥克風與攝像頭實時采集原始音視頻信息;
2)通過流媒體傳輸技術(shù)將采集到的音視頻信息實時傳送至地面站;
3)使用維納濾波算法對含噪語音進行降噪,獲得較純凈語音信號;
4)將地面站人員語音信息傳送至無人機終端并通過擴音器播放,實現(xiàn)音頻雙向傳輸。
針對上述系統(tǒng)功能,開展了以下工作。
1)分析無人機噪聲,并針對其特征采用維納濾波降噪算法設計濾波器;
2)搭建相應硬件平臺;
3)分析多種流媒體技術(shù)優(yōu)劣,采用WebRTC技術(shù)實現(xiàn)音視頻雙向交互。
使用Adobe Audition軟件生成含無人機噪音的語音的頻率分析圖,如圖2。
圖2 含無人機噪音的語音頻率分析圖
根據(jù)分析結(jié)果以及相關(guān)資料[12~13],認為無人機噪音有以下特征。
1)噪音是分別來自電機、槳葉、氣流、電流等多種噪音源的多種類型噪音的混合;
2)噪音頻帶較寬,覆蓋0~20kHz的全頻帶;
3)噪音能量主要集中在幾個特定頻率點(電機、槳葉、電流等工作頻率)附近;
4)無人機在飛行狀態(tài)穩(wěn)定的情況下,噪音可近似看作平穩(wěn)噪聲。
圖中0.4kHz~4kHz頻段內(nèi)的間斷出現(xiàn)的頻率成分即為語音,可見語音與無人機噪音頻率雖有重疊,但仍可辨識。因此設計合適的濾波器,可達到語音降噪的效果。
維納濾波過程中,混合信號可表示為
其中s(n)為目標信號,d(n)為附加噪聲信號。
若設計一個濾波器H(z),其單位脈沖響應為h(n),當如輸入混合信號x(n)時,濾波器的輸出為
維納濾波的基本原理即為尋找濾波器H(z),使其輸出與純凈目標信號最為接近,即按照最小均方差準則,使s(n)與的均方誤差取得最小值[14~15]。s(n)與的均方誤差為
設h(n)的長度為l,為取得ε的最小值,將ε對h(n)的每一個元素分別求偏導數(shù),并令其等于0,即:
根據(jù)式(2)、(4)可得到維納-霍夫方程:
令i=1,2,…,l,可得l個方程,解之可得序列h的全部有限個元素h(1),h(2),…,h(l),將其做反z變換,即為目標濾波器H(z)。
實際無人機飛行過程中,無人機產(chǎn)生的噪音會隨著氣流的變化以及無人機運動狀態(tài)的變化而變化,但可將其視為短時平穩(wěn)信號,因此對其做分幀處理。
分幀處理會增加信號的高次諧波分量,加窗處理可使此問題得到改善,這里選用語音信號處理中較為常用的漢明窗進行處理。
對于一段帶噪語音信號,應用3.2小節(jié)所述方法。首先將前導無話段噪聲視為目標信號s(n),將帶噪語音信號視為混合信號x(n)。得到提取估計噪聲的濾波器H(z),對于之后的每一幀帶噪語音信號xj(n)使用濾波器H(z)進行濾波,得到噪音信號的估計,記為(n)。利用譜減法,將x(n)與功率譜相減[16],可得對語音信號的估計,記為
維納濾波實現(xiàn)降噪的算法如下。
函數(shù)功能:對語音與噪聲的混合信號降噪
進行無人機懸停,地面人員喊話“測試,一、二、三”的錄音實驗,并對音頻進行本節(jié)所述的降噪處理,結(jié)果如圖3~6。
圖3 混合信號時域波形
由時域以及頻域的波形可見,降噪處理后的噪音信號成分明顯減少,處理后的語音信號清晰可辨??梢娋S納濾波對于無人機語音系統(tǒng)的降噪應用有著顯著的效果。
圖4 維納濾波降噪處理后信號時域波形
圖5 混合信號頻域圖
圖6 維納濾波降噪處理后信號頻域圖
除維納濾波外,譜減法和獨立成分分析在降噪中也有著廣泛應用。使用3.4小節(jié)測試所使用的音頻進行測試,圖7為譜減法降噪后的時域波形,圖8為加入另一麥克風(得到兩路同步的錄音),使用獨立成分分析后得到的兩路分離信號的時域波形??梢钥闯?,相比于維納濾波,譜減法殘留的噪聲較大,而獨立成分分析幾乎沒有降噪效果,這也佐證了聲音在空氣中自然混合并非單純的線性疊加。
圖7 譜減法降噪處理后信號時域波形
圖8 獨立成分分析分離后信號時域波形
綜上,經(jīng)比較,維納濾波為無人機語音系統(tǒng)中較為理想的降噪方法。
流媒體傳輸實現(xiàn)難點在于控制視頻和音頻的延時[17],視頻延遲與感官的關(guān)系如表1。若要獲得較好的實時傳輸效果,需將延遲控制在800ms以內(nèi)。
表1 視頻延遲與感官的關(guān)系
目前實時流媒體傳輸主流有三種實現(xiàn)方式:HLS[18]、RTMP[19]和WebRTC[20]。
1)HLS(HTTPLive Streaming)是一種把流媒體拆分成多個獨立小文件的技術(shù),按照播放時間請求不同文件,將hls的文件進行解復用后,取出音視頻數(shù)據(jù)交由video播放。其優(yōu)點是使用了傳統(tǒng)http協(xié)議,具有良好的兼容性和穩(wěn)定性,缺點是有較大延時,通常在10s以上。
2)RTMP(Real Time Messaging Protocol)是一套使用長連接的完整流媒體傳輸協(xié)議。相對于HLS請求分片的形式,RTMP由于使用長連接,接收不間斷的數(shù)據(jù)流,因而延遲比HLS小很多,通常是1s~3s,對于低互動需求的直播來說,這種方式的延遲是可以接受的。
3)WebRTC(Web Real Time Communication)由谷歌推出,并在Google、Mozilla、Opera支持下被納入W3C推薦標準。WebRTC致力于高效的實時音視頻通信,做到比RTMP提供更低的延遲和更小的緩沖率,通常能夠?qū)⒀舆t控制在300ms~600ms,能夠應對對實時性要求較高的場景下的需求。
綜合考慮到語音系統(tǒng)對實時性的要求[21]以及實現(xiàn)方式的特點,采用WebRTC實現(xiàn)實時音視頻交互。
4.2.1 WebRTC簡介
WebRTC并不是單個的協(xié)議,而是提供了包括音視頻的采集、編解碼、網(wǎng)絡傳輸、展示等功能的一些列協(xié)議的總稱。
WebRTC主要由三大組件組成,如圖9所示。
圖9 WebRTC組件
1)MediaStream負責獲取用戶本地的多媒體數(shù)據(jù),如調(diào)起攝像頭錄像等。
2)RTCPeerConnection負責建立P2P連接以及傳輸多媒體數(shù)據(jù)。
3)RTCDataChannel提供的一個信令通道,在實現(xiàn)互動的重要元素。
4.2.2 流媒體傳輸過程
建立連接需要的條件如下。
1)需獲取到雙方的IP地址和對應端口號;
2)需獲取雙方所支持的音視頻編解碼格式等軟硬件信息。
滿足上述條件后,即可通過RTCPeerConnec?tion對象建立連接,流程如圖10。
圖10 流媒體傳輸流程
1)獲取各終端本地的音視頻媒體信息
(1)如圖10,地面站終端決定與無人機終端建立連接,首先打開無人機的攝像頭和麥克風陣列,獲取到mediaStream,并把它添加到RTCPeerCon?nection的對象里面,然后創(chuàng)建一個本地的SDP格式(SDP涵蓋了一個指定用戶的描述、時間配置和對媒體的限制等全部信息)的offer,地面站終端將自身的會話描述對象(包含SDP描述符的offer提議信令)發(fā)送至樹莓派服務器。
(2)樹莓派服務器將地面站終端的offer通過websocket服務發(fā)送至無人機終端。
(3)無人機終端收到后創(chuàng)建一個answer,格式、作用和offer一樣,之后將自身的會話描述對象(包含SDP描述符answer應答信令)發(fā)送至樹莓派服務器。
(4)樹莓派服務器轉(zhuǎn)發(fā)應答至地面站終端,當任意一方收到對方的sdp信息后就會調(diào)setRemote?Description記錄起來。
2)在無人機終端與地面站終端間建立對等連接
(1)地面站終端和無人機終端開始交互,確定訪問對方的最佳方式。
為了實現(xiàn)雙方的互聯(lián)互通,由服務器與其中一方(Peer)建立連接,而后路由器將建立一個內(nèi)網(wǎng)與外網(wǎng)端口號的映射關(guān)系并保存,服務器將一方的端口加上IP地址告知另一方(Peer),并使其用該地址進行連接,此即STUN協(xié)議[22]。
STUN協(xié)議有效性受制于用戶的網(wǎng)絡拓撲結(jié)構(gòu)。若路由器的映射關(guān)系既取決于內(nèi)網(wǎng)的IP與端口號,也取決于服務器的IP加端口號,此時將無法建立連接。因為服務器獲取的地址不能給另外一個外網(wǎng)的應用程序使用(會建立不同的映射關(guān)系)。相反如果地址映射表只取決于內(nèi)網(wǎng)機器的IP和端口號則是可行的。對于無法建立連接的情況,WebRTC也提供了解決方法,TURN服務器可以在對等連接的雙方之間增加一個轉(zhuǎn)播,它可以下載、處理并重定向每一個用戶發(fā)過來的數(shù)據(jù)包
最 后,ICE(Interactive Connectivity Establish?ment)則是一個將STUN和TURN結(jié)合在一起的標準,它會判斷雙方的網(wǎng)絡狀況,并用相應的方法來建立雙方的連接。
(2)完成后,地面站終端和無人機終端開始協(xié)商通信密鑰,建立連接。
3)將媒體和數(shù)據(jù)通道關(guān)聯(lián)至該連接
地面站終端和無人機終端開始交換語音、視頻或數(shù)據(jù),雙方建立連接成功后將會觸發(fā)onaddstream事件,提取event.stream,并對音頻應用第3節(jié)所述維納濾波降噪算法,得到最終音視頻流媒體。
為測試無人機語音系統(tǒng)的真實降噪效果,搭建了無人機語音系統(tǒng)硬件平臺,其構(gòu)成主要為四旋翼無人機、麥克風陣列開發(fā)板、樹莓派以及攝像頭模塊。其中麥克風陣列開發(fā)板和攝像頭模塊安裝在無人機正下方。麥克風陣列開發(fā)板同時具備接收、發(fā)送數(shù)據(jù)功能,如圖11。
圖11 系統(tǒng)硬件實物圖
使用無人機語音系統(tǒng)硬件平臺進行無人機懸停,地面人員喊話“測試,一、二、三”的實際錄音測試。經(jīng)測試系統(tǒng)各模塊運行良好,降噪前后對比明顯,降噪后語音較為清晰可辨,其頻譜如圖12~13所示。
圖13 降噪處理后信號時域波形及頻譜分析
無人機自身噪聲大,使得實現(xiàn)無人機語音系統(tǒng)成為難題,目前市面上極少有無人機語音系統(tǒng)的相關(guān)研究,這浪費了無人機的潛在應用價值。本文提出了一種基于維納濾波的無人機語音系統(tǒng)的實現(xiàn)方案,依照最小均方差準則,獲得目標濾波器,對含噪語音濾波獲得無語音噪聲,應用功率譜減法,得到較純凈語音,經(jīng)測試降噪效果優(yōu)良?;赪e?bRTC協(xié)議,實現(xiàn)無人機與地面站的信息交互,最終實現(xiàn)無人機語音系統(tǒng)的降噪以及音頻交互,為無人機噪音下的語音降噪提供了一種解決方案。下一步工作計劃優(yōu)化降噪算法,在爭取更好的降噪效果的同時進一步降低系統(tǒng)延遲,進一步優(yōu)化無人機語音系統(tǒng)。