• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于多普勒雷達的發(fā)音動作檢測與命令詞識別

      2020-05-09 02:59:48吳鵬飛凌震華
      小型微型計算機系統 2020年2期
      關鍵詞:命令發(fā)音語音

      吳鵬飛,凌震華

      (中國科學技術大學 語音與語言信息處理國家工程實驗室,合肥 230027)

      1 引 言

      語音是從肺部呼出的氣流通過聲門、聲道等各種器官作用而產生的,人類在發(fā)音時需要調動多個發(fā)音器官,如軟腭、舌、牙齒、唇等[1].發(fā)音器官在發(fā)音過程中的位置和運動稱作發(fā)音動作特征(articulatory feature).發(fā)音動作特征相對于語音的聲學特征具有變化緩慢、可解釋性強、不易受聲學噪聲影響等優(yōu)點[2],因此已有研究人員將發(fā)音動作特征應用到語音識別和語音合成方法的研究中,以提高噪聲環(huán)境下的識別準確率[3]、實現靜默語音接口[4]和增強合成語音的自然度與靈活可控性[5]等.

      發(fā)音動作特征可以用多種技術手段采集,例如X射線微束影像[6]、磁共振成像[7]、圖像采集外部發(fā)音器官運動[8]、表面肌電[9]及電磁發(fā)音儀[10]等.這些發(fā)音動作特征采集手段雖然能有效檢測發(fā)音器官運動,但往往存在侵入人體、非便攜、成本高等問題.近年來,基于微波雷達的面部姿態(tài)[11]和舌部動作識別[12]方法被提出,這些方法利用微波雷達的多普勒特性檢測面部肌肉的微小動作,在簡單的面部動作和舌部動作識別任務中取得了良好的性能.微波雷達采集方法具有無侵入性、成本低等優(yōu)點,且適用靜默語音場景,因此本文使用多普勒微波雷達采集發(fā)音動作,研究基于所采集動作的命令詞識別方法.相對于先前的簡單舌部動作檢測任務[12],命令詞識別中發(fā)音動作特征的組合模式更加復雜;相對于傳統語音識別任務,本文所研究方法不依賴聲學特征,僅使用多普勒微波雷達采集的發(fā)音動作特征來完成命令詞的識別,這對于高噪聲、隱私保密等場景中的語音控制具有應用價值.

      本文首先設計實現了一個基于多普勒微波雷達的發(fā)音動作采集系統,基于該系統采集了2個說話人的發(fā)音動作信息以構建命令詞識別數據庫.利用所采集的微波雷達數據,本文研究了基于支持向量機和基于卷積神經網絡的命令詞識別算法.實驗結果顯示,本文設計的數據采集系統可以有效記錄命令詞發(fā)音過程中的發(fā)音動作特征,本文提出的基于卷積神經網絡的微波雷達數據分類方法可以取得90%以上的命令詞識別準確率.該方法可用于靜默語音控制,在一些高噪聲、或者無法發(fā)聲的環(huán)境下實現通信和語音控制.

      2 數據采集系統

      2.1 原理簡介

      多普勒微波雷達是基于多普勒效應設計的.所謂多普勒效應,即物體相對于波源移動時觀察到的反射波的頻率與發(fā)射波的發(fā)射頻率之間會因物體相對波源的運動方向不同而產生差異.若目標靠近波源,則接收頻率大于發(fā)射頻率;反之,若目標遠離波源,則接收頻率小于發(fā)射頻率.該雷達基于此效應設計,包含一個發(fā)射器和一個接收器,通過計算發(fā)射器和接收器之間的頻率差即可得到所檢測動作的運動速度.現假設fr為接收波的頻率,ft為發(fā)射波的頻率,v為物體的運動速度,c為光速,則fr與ft的關系可表示為式(1).

      (1)

      頻率偏移fd=fr-ft,當v?c時,有fd=2vft/c.由于人在發(fā)音時臉部肌肉運動速度有限,因此這個頻率一般在10Hz以下[12].

      本文采用的雷達為24GHz的K波段多普勒雷達探測器K-LC2,使用連續(xù)波模式,解調方式為正交解調,解調輸出為I、Q雙通道輸出,其中I通道為解調后的真實的頻移信號,Q通道為I通道相移90°.后得出的信號,發(fā)射信號與接收信號之間的相位差可通過式(2)得出[12].

      (2)

      其中λ為波長,?0為初始相位.由該式可知θ可以度量包括運動速度和方向在內的目標運動信息.

      已有工作[12]表明該微波雷達可以有效檢測到舌部來回運動、舌位保持等動作帶來的微小面部肌肉運動.另一方面,人在發(fā)音時面部、舌部、下顎等多個部位同樣會產生微小的肌肉動作,并且相同的發(fā)音時這些動作具有類似的模式,本文旨在研究基于該微波雷達數據檢測發(fā)音動作并進行命令詞識別的方法.

      2.2 系統框架

      本文設計實現的數據采集系統框圖如圖1所示.該系統平行采集兩路信號:一路是語音信號,語音通過一個USB接口的電容麥克風錄制;另一路包括三個雷達的輸出數據,共6個通道,雷達輸出數據經處理后由單片機通過串口發(fā)送至PC上.

      圖1 數據采集系統框圖Fig.1 Flow chat of data acquisition system

      2.3 硬件實現

      本文設計了一個可佩戴的頭盔用于放置微波雷達.為了減少對于發(fā)音人正常朗讀的影響,要求設備體積不能太大.因此本文使用了三個K-LC2雙通道24GHz微波雷達,該微波雷達具有體積小、抗噪性能強的優(yōu)點.三個雷達分別定位于發(fā)音人的左、右臉頰和下巴處,用于檢測發(fā)音時這些部位的動作.

      雷達的輸出信號是經解調的頻移信號,該信號是一個交流小信號,在本文的應用場景內,其幅值范圍為[-80 mv,80mv],這個特性決定它無法直接被單片機的片上ADC直接采集.首先,對于片上ADC來說,由于其采集范圍為[0,3.3V],因此其無法采集交流信號;其次,信號幅度小容易導致無法采集到信號的有用成分.因此,需要設置相應的電壓放大、抬升電路,雷達輸出信號經過本文設計的電壓放大、抬升電路后,其電壓范圍為[350mv,1.95V],適合單片機上ADC的信號采集.最后,單片機將采樣的數據經串口發(fā)送至PC端用于分析處理.

      2.4 軟件實現

      由圖1可知,語音和雷達數據最終被傳入PC上,故需要在PC端設計相應的處理、接收的上位機程序.本文中,語音數據使用ffmpeg工具錄制,串口數據使用現有的串口函數庫接收并寫入文件中.本文設計的上位機程序共有兩個線程,其中一個線程負責啟動ffmpeg用以錄制語音,啟動完成后,該線程即結束;另一個線程負責與下位機的通信和串口數據的讀取與保存.兩個線程協同工作,從而保證語音數據與雷達數據在時間上對齊,以便后續(xù)進行命令詞的切分.

      3 基于雷達數據的命令詞識別

      3.1 數據庫構建

      已有的基于發(fā)音動作檢測的語音識別方法研究通常從孤立詞或孤立音素的識別入手.例如,在文獻[13]中作者使用了含有9個詞語和13個音素的語料集合來研究基于電磁發(fā)音儀的靜默語音識別方法;類似地,文獻[14]中作者為研究聲道的電磁傳輸與反射特性對音素識別的影響,構建了一個含有25個音素的微波信號數據庫.參考上述工作,本文利用第2節(jié)中介紹的數據采集系統,構建了一個含有兩個說話人的命令詞識別數據庫.該數據庫使用一個含有10個命令詞的詞表,如表1所示.每個說話人對詞表進行10遍朗讀,每遍朗讀中這10個詞之間的順序隨機打亂,同時保證前后兩個詞不是相同的詞,以減少錄音中的語序影響.

      表1 本文使用的10個命令詞詞表Table 1 Ten command words in this paper

      本文中的數據庫是在一個專業(yè)的隔音密閉錄音室完成的.錄制時說話人佩戴好頭盔,朗讀屏幕上顯示的命令詞,在其前方安置電容麥克風.為減少其他操作給說話人帶來的干擾,屏幕上命令詞的更換操作由錄音室外的控制人進行.在錄音過程中,說話人被要求盡量不要有其余額外的臉部動作以減少干擾,同時在每個命令詞的前后,留有1秒左右的靜音段以方便后續(xù)處理.

      在數據采集過程中,雷達數據采樣率設為500Hz.為便于切分得到每個命令詞的起止位置,該數據庫還同步錄制了命令詞的語音音頻,音頻采樣率為48kHz.

      3.2 數據預處理

      對每位發(fā)音人,錄音得到的原始雷達數據是經ADC量化的、含有100個命令詞的整段數據.為滿足后續(xù)實驗需要,本文對原始雷達數據進行了數據預處理,包括真實電壓值轉換、去均值、濾波、切分、降采樣等.

      串口接收到的數據是經片上的12比特ADC量化的數字量化等級值,故這個值在0-4095之間,根據式(3)可將其轉換為真實的電壓值.

      V=ADC_value·3.3/4096

      (3)

      其中ADC_value為串口直接接收的數據,V為被轉換的真實電壓值.以上處理后的電壓往往含有較大的直流成分,因此本文利用全局均值進行了去均值操作.此外,采集到的數據含有一定噪聲.針對這個問題,本文設計了一個截止頻率為10Hz的20階數字低通濾波器用于濾除噪聲.

      本文在命令詞的錄音過程中采取的是單個說話人連續(xù)錄制的方式,因此對單個說話人來說,得到的雷達數據是100個命令詞及它們之間的靜音段按時間先后排列組成的.為了開展命令詞識別方法研究,需要將這100個命令詞從連續(xù)的數據流中切分出來.為此,本文在數據庫構建過程中同步錄制了命令詞的語音數據,通過對語音數據的VAD處理[15]可以得到每個命令詞的起止時刻.由于雷達數據和語音數據是同步錄制的,且發(fā)音動作可能先于語音產生而晚于語音結束,我們對以上VAD邊界前后各延伸0.5秒后得到每個命令詞的雷達數據起止位置,并依據此位置進行數據切分.考慮到發(fā)音動作特征的緩變特性,本文對切分后的命令詞微波雷達數據進行8倍下采樣到62.5Hz以減少數據量.

      至此,經過以上預處理步驟后,一個具有兩個說話人、每個說話人100個命令詞數據段的微波雷達數據庫構建完成.

      3.3 特征選擇

      本文使用使用兩種特征進行基于雷達數據的命令詞識別:

      1)幀級的雷達數據;

      2)從幀級雷達數據中提出的命令詞段統計參數,本文參考已有工作[16]使用的波形統計參數如表2所示.

      表2 本文使用的波形統計參數Table 2 Waveform statistical parameters

      這兩種特征各有其優(yōu)點,直接使用幀級的雷達數據可以最大化地保留原始信息,但是在分類時需要考慮由于發(fā)音速度差異帶來的數據不等長問題;使用從波形中提取的統計參數可以無需考慮數據長度不等的問題,但是會帶來一定的信息損失.

      3.4 分類模型

      本文研究了兩種分類方法用于命令詞的識別,即支持向量機方法和卷積神經網絡[17]方法,下面將分別進行介紹.

      圖2 CNN模型結構示意圖Fig.2 CNN model struct

      3.4.1 PCA-LDA-SVM分類模型

      我們使用雷達數據的段級統計參數構建支持向量機模型.支持向量機是一種按監(jiān)督學習方式對數據進行二元分類的廣義線性分類器,其可通過引入核方法進行非線性分類.它的目的是尋找一個超平面來對樣本集進行分割,分割的原則是間隔最大化,最終轉化為一個凸二次規(guī)劃問題來求解.其輸入為每個樣本的多維特征,輸出為該樣本對應的類別.支持向量機是針對二分類任務設計的,對多分類任務要進行專門的推廣.本文使用“一對多余(OVR)”策略[18]將其推廣至10分類任務,核函數使用徑向基函數.

      考慮到特征維數有60維而樣本數目較少,故在使用支持向量機進行分類時,首先對特征使用主成分分析(Principle Component Analysis,PCA)和線性判別分析(Linear Discriminat Analysis,LDA)進行降維處理.經PCA和LDA降維后,使用SVM分類不會產生過擬合,且在相對低維的空間進行分類效果會更好.另外,考慮到使用原始波形數據維度太高,降維后信息損失過于嚴重,故在使用SVM方法時,未使用原始數據作為特征.

      3.4.2 CNN分類模型

      卷積神經網絡(Convolutional Neural Network,CNN)是一類包含卷積計算且具有深度結構的神經網絡,其具有平移不變性等多個優(yōu)點,對圖片、語音等時序數據具有很好的學習能力.在本文的任務中,由于CNN具有平移不變性,在使用幀級特征時,可以應對由于語速、發(fā)音起止位置等因素的不一致帶來的影響.本文中使用的CNN結構如圖2所示,其中“@”前數字表示該層特征通道的數目,若某層無該符號,則代表該層只有1個通道.該結構中,池化時選擇最大池化,激活函數使用修正線性單元(Rectified Linear Uint,ReLU)[19].

      在使用CNN進行分類時,本文對比使用了幀級雷達數據和段級統計參數兩種特征,若使用原始波形作為輸入,則輸入層中的N是所有樣本的最大時間長度,其余樣本補零為該長度;若使用統計參數作為輸入,則各樣本的輸入長度相等,即N為10.

      4 實驗與結果

      4.1 實驗配置

      由于數據庫中樣本數目有限,實驗使用5-折交叉驗證的方法進行訓練集和測試集的劃分,即對每個說話人的100個雷達數據,隨機劃分為5組,保證這5組中樣本類別是均衡的(即每個命令詞都有2個樣本).實驗時每次從這5組中取一組作為測試集,剩余4組作為訓練集,如此重復5次直至每一組都曾被挑選作為測試集,最后將5次測試結果的均值作為最終的評估結果.

      實驗中構建了以下三個模型用于對比分析:

      1)SVM_seg:使用段級的統計參數作為特征.首先將各樣本的6個通道的10維統計參數拼接成一個60維特征向量,然后使用PCA與LDA進行降維,經實驗調試后,先使用PCA將該特征向量將至20維,然后繼續(xù)使用LDA將其降維至8維,最后使用SVM對降維后向量進行分類;

      2)CNN_seg:使用段級統計參數作為特征輸入,但輸入與SVM_seg不同,此處將每個通道的10維段級統計參數組合成10*6的矩陣;

      3)CNN_frm:使用幀級的雷達數據作為特征輸入.首先計算所有樣本的最大長度N,然后其余樣本補至長度N,輸入即為N*6大小的矩陣.

      基于上述三個模型,每個模型均進行單話者建模、多話者建模實驗.其中單話者建模指的是訓練集和測試集均使用單個說話人的數據,每個說話人分開進行實驗;而多話者建模指的是訓練集和測試集中同時含有兩個說話人的訓練數據.使用5-折交叉驗證進行實驗,每個模型、每種實驗方式均重復1000次以獲得一個平均結果.

      4.2 實驗結果與分析

      4.2.1 單話者建模命令詞識別結果

      表3為在單話者建模實驗中,兩個說話人使用各模型的分類準確率情況.其結果顯示,在單話者建模實驗中,CNN_seg模型的結果最差,SVM_seg其次,而CNN_frm模型的結果最好,對兩個說話人的命令詞識別準確率都在90%以上.CNN_seg的識別結果不盡如人意,相對于CNN_frm,此模型只是使用的輸入數據不同,說明在此模型配置下,數據之間的模式不再那么容易區(qū)分,其原因可能是在提取統計參數時丟失了部分與命令詞標簽相關的信息;SVM_seg的識別準確率在80%左右,這個結果雖比CNN_frm稍差,但是也表明本文命令詞數據庫中的數據具備一定模式,使用傳統的SVM方法也可以取得一定性能;CNN_frm模型的結果最好,說明CNN可以充分利用幀級特征的優(yōu)勢,從而達到最優(yōu)的分類效果.

      表3 單話者建模命令詞識別準確率(%)Table 3 Recognition accuracy of single-speaker modeling(%)

      圖3是說話人1各模型某次測試結果對應的歸一化混淆矩陣圖,在混淆矩陣圖中,縱向表示真實標簽,橫向表示預測標簽,圖中數字為預測準確率.首先,三個模型都具有較明顯的對角趨勢,但混淆程度各有不同,CNN_frm模型的結果近乎對角陣,而CNN_seg模型的結果比較分散.其次,對比CNN_seg與SVM_seg兩個模型,可以看出雖然兩者都有一定的誤分類結果,但是CNN_seg在混淆矩陣圖上更為分散,以“上升”與“左邊”兩個標簽為例,這兩個標簽在測試過程中都出現了4個不同的預測結果;SVM_seg系統則不然,其很大一部分誤分類都是被誤分類為“右方”.這兩個模型的原始輸入相同,但是后者首先進行了PCA降維去除了40維之多的冗余信息,然后使用LDA再次降維至8維,使得其結果具有更小的混淆度.

      圖3 各模型測試結果混淆矩陣圖Fig.3 Confusion matrix of three models

      對比CNN_frm與CNN_seg兩個模型,可以明顯地看出使用幀級的雷達數據作為輸入的模型可以有效地避免上述問題,且能達到比傳統SVM方法更好的結果.前者的輸入是段級的統計參數,這些統計參數在一定程度上丟失了原始雷達數據的時序性與部分模式信息.

      4.2.2 多話者建模命令詞識別結果

      多話者建模實驗的結果如圖4所示.對比表3和圖4可見在多話者建模實驗中,SVM的性能有較明顯地下降,而使用CNN的模型仍保持和單話者建模實驗中相近的水平,從而再次證明CNN模型可以較好勝任本文的命令詞識別任務.

      圖4 多話者建模命令詞識別結果Fig.4 Recognition accuracy of multi-speaker modeling

      SVM性能下降的一個可能原因是兩個說人在命令詞數據模式上具有較大的差別,SVM并沒有足夠的能力同時學習到兩個說話人的發(fā)音動作特征.為驗證這個猜想,本文設計了一個話者交叉的多人建模補充實驗,該實驗使用一個說話人的全部數據作為訓練數據,另一個說話人的全部數據作為測試數據,仍使用前述的CNN_frm模型,結果顯示測試集分類正確率僅為20%左右,此實驗證明兩個說話人的模式差異性較大.在多人建模實驗中,雖然測試集和訓練集都包含了相同的2個說話人,但是SVM模型的性能卻由于兩個說話人模式的差異性出現一定的下降;而CNN模型卻幾乎沒有性能損失,可見CNN模型可以同時學習兩個說話人各自的特征模式.

      綜合單話者建模實驗與多話者建模實驗結果,可以得出一個在本文任務中性能最佳的模型,即CNN_frm,該模型無論在單話者建模還是多話者建模任務中,都保持了90%以上的分類正確率.實驗結果證明本文構建的發(fā)音動作檢測系統確實能檢測到發(fā)音相關的參數,而后續(xù)提出的基于CNN與幀級雷達數據的模型可以從中提取出與命令詞相關的模式并很好地將它們進行分類.

      5 結 論

      本文構建了一個基于多普勒微波雷達的發(fā)音動作檢測系統,并基于此系統錄制了一個含有兩個說話人共200個樣本的命令詞識別數據庫.基于此數據庫,設計了三個模型進行對比實驗,通過對比實驗得出了一個基于CNN和原始數據的命令詞識別分類模型,該模型在命令詞識別任務上可以達到90%以上的準確率.多話者建模實驗的結果顯示,不同人的發(fā)音動作數據模式之間差異較大,對于如SVM之類學習能力不夠的傳統方法,會嚴重影響其分類性能,而本文構建的CNN模型可以較好的同時學習到多個說話人的數據模式.后續(xù)計劃包括錄制更多說話人數據、研究話者無關的命令詞識別方法等.

      猜你喜歡
      命令發(fā)音語音
      Hickory, Dickory, Dock
      只聽主人的命令
      魔力語音
      基于MATLAB的語音信號處理
      電子制作(2019年14期)2019-08-20 05:43:38
      基于MQ3與MP3的價廉物美的酒駕語音提醒器
      電子制作(2019年9期)2019-05-30 09:42:10
      對方正在輸入……
      小說界(2018年5期)2018-11-26 12:43:42
      移防命令下達后
      這是人民的命令
      Playing with h
      Playing with /eI/
      富民县| 连州市| 扬中市| 兰西县| 吉隆县| 保德县| 苍山县| 临高县| 怀集县| 高陵县| 诏安县| 宕昌县| 施甸县| 宜春市| 芦山县| 乌兰县| 嵊泗县| 左云县| 建瓯市| 湖北省| 苏州市| 黎川县| 青浦区| 元谋县| 荃湾区| 云林县| 喀什市| 松桃| 珲春市| 吉林省| 大名县| 交城县| 万安县| 揭阳市| 桃江县| 历史| 邵阳县| 张家川| 庆云县| 固原市| 大冶市|