喬波 王鑫 張恒瑋 李澤恩 楊夢



摘要:無聲語音接口(silent speech Interface,SSI)是一種基于非聲學信號的語音通信的系統,使得說話可以在不具備發聲條件或背景嘈雜的環境下實現,在現代康復醫療和強噪聲下語音交互等領域中被廣泛研究和應用。該研究實現了基于表面肌電信號進行無聲語音識別,并基于Android設計與開發了無聲語音識別APP,實現了對簡單文字的無聲識別,能提供安全、私密、可靠的語音通信。
關鍵詞:表面肌電信號;無聲語音識別;移動終端;Android;信號處理
中圖分類號:TP311.52 文獻標識碼:A
文章編號:1009-3044(2020)06-0213-04
1背景
作為智能計算機研究的主導方向和人機語音通信的關鍵技術,語音識別技術一直受到各國科學界的廣泛關注。隨著語音識別技術日益成熟,應用產品相繼被開發,然而語音識別技術本身仍存在一些固有問題。1)背景噪音。實際應用中,噪音是無法避免的,早期即使在實驗室環境下,敲擊鍵盤、挪動麥克風都會成為背景噪音。它將破壞原始語音的頻譜,或者把原始語音部分或全部掩蓋掉,造成識別率下降。2)沒有隱秘性問題。傳統的語音識別主要通過聲音來進行,但是發出聲音的同時不可避免地失去了隱秘性,這是無法避免的。研究將要解決的問題就是改變傳遞信息的方式,使系統的隱秘性提高。
無聲語音接口(Silent Speech Interface,SSI)是一種基于非聲學信號捕獲的,在安靜或嘈雜環境中提供安全可靠語音通信的系統。它通過從人體語言產生過程的元素獲取傳感器數據,這些數據可以來自發音器,神經通路,或者大腦本身。依靠SSI可以通過非聲學信號來獲取說話者想表達的內容,使得交流可以在沒有發出聲音的情況下發生。表面肌電信號(Surfaceelectro-myogram,sEMG)是通過粘貼于人體皮膚表面的表面電極記錄的生物電信號。由于該信號能夠反映神經和肌肉系統的功能和生理狀態,并且從人體皮膚表面獲取,不會對人體造成損傷,因此在多個領域獲得深入研究和廣泛應用,例如疾病診斷、假肢控制、遠程操作機器人、康復治療等。早在1985年肌電信號就被用于無聲語音識別的研究,但直到2001年才有突破性進展,chan等人使用肌電信號實現10個英文數字的識別正確率高達97%。之后大詞匯量以及連續識別成了重點的研究對象,被實驗證明肌電信號可以為識別提供足夠的信息。基于肌肉信號的無聲語音識別技術目前已趨入成熟和穩定,單國內外還未有推出市場應用。
本文采用基于面部放置的傳感器獲取肌肉電信號(SEMG)的無聲語音接口(SSI),實現了一個面部肌電信號采集及動作識別系統,該系統能夠采集到微弱的表面肌電信號,經由安卓端的實現信號處理和識別應用。
2基于安卓的無聲語音識別系統設計
該文基于Android應用開發技術,提出了無聲語音識別系統的框架,開發了一款無聲指令識別系統。本系統由硬件系統和軟件系統兩部分組成,如圖1所示,硬件系統為信號采集設備,包括電源、驅動電路、放大電路和通信模塊;軟件系統為Android應用程序。本系統主要論述手機移動終端軟件的設計,通過本軟件用戶可以進行無聲指令識別,手機終端的程序主要包括三個功能:1)控制設備采集;2)接收設備采集數據并作數據處理;3)信號識別和結果顯示。
本系統包括四層架構,分別是用戶訪問層、應用層、服務層和數據層,如圖2所示。數據層為用戶管理,肌電信號識別和結果輸出提供數據支持。服務層提供系統各項功能所需要的服務支持。應用層包括系統的四大功能,分別是:1)用戶管理功能:用戶管理模塊用來提供與用戶個人相關的信息和服務,包含注冊、登錄、個人信息等功能。登錄,用戶輸入正確的用戶個人注冊信息,才可登錄,否則,登錄失敗。用戶登錄后可進行用戶識別模型管理,用戶信號數據管理,用戶指令文本編輯;2)信號錄入功能。用戶可以設定訓練數據錄入次數;點擊錄入開始新建記錄:錄入可以取消,取消后可繼續錄人,重新錄人的數據將覆蓋已有數據;3)信號處理和識別功能。在訓練時,對錄入數據進行信號處理,調用隨機森林算法建立模型,在應用時,對實時輸入的信號處理之后調用模型進行識別;(4)結果顯示功能。在Android系統識別此次的信號識別后,輸出對應指令。用戶訪問層是指用戶通過訪問系統的各個功能和數據,實現無聲語音識別功能。
系統的業務流程如圖3所示。初次使用本系統的用戶首先要注冊賬號,將用戶名和密碼寫入數據庫,然后通過硬件接收肌電信號,用戶需要將0-9每個數字重復多遍錄入,并將對應信號寫入數據庫,錄入次數可由用戶自定義,系統調用信號處理算法進行信號與處理后提取特征,調用識別算法進行訓練生成識別模型。用戶登錄后可以查看、編輯編號0-9所對應的文本,在識別過程中首先接收測試肌電信號,調用信號處理算法得到特征后利用識別模型進行分類識別得到結果,輸出結果對應文本內容。
3關鍵技術研究及實現
3.1數據庫的設計與實現
在本系統中,需要存儲用戶信息數據和肌電信號數據,其中用戶信息數據通過數據庫存儲,肌電信號數據通過文件方式存儲。數據庫采用Android自帶的輕量級小型的sOLite數據庫,數據庫中包含每個用戶的賬號密碼信息和0-9對應的用戶自定文本。每增加一個用戶,就新建一張用戶信息表,表名即為用戶名,如表1所示。肌電信號數據傳輸時,數據以字節流從信號采集裝置傳輸至手機端,之后再進一步向文件流轉換,將轉換結果以文件形式保存在本地。
3.2數據傳輸模塊
設備通過5通道電極采集肌電信號數據,電極位置圖如圖4所示,其中信道1,3,4是單端信號,信道2和信道5是兩對差分信號。電極使用了標準Ag/AgCl電極。實驗前,用酒精清洗皮膚,然后將電極貼在皮膚表面。設備與手機之間使用Wi-Fi通信進行交互。Socket就是為網絡服務提供的一種機制。Socket和ServerSocket建立客戶端和服務器端建立連接后,通過Socket中的10流進行數據的傳輸關閉socket;同樣,客戶端與服務器端是兩個獨立的應用程序。本系統中,設備采集器即是服務端,App即是客戶端;客戶端明確服務器的ip地址以及端口(Socket s=new Socket(“192.168.4.1”,4321).),建立連接。連接成功后,先向設備發送訪問碼‘DDAA34,然后再讀取數據,通過Socket對象提供的輸入流和輸出流對象gctInputStream(),getOut-putSlxeam(1實現。讀取結束后斷開連接關閉Socket。
3.3肌電信號處理模塊
肌電信號的分析和處理是識別的重要前提和基礎。本系統對sEMG信號的處理步驟如圖5所示,包括信號預處理、有效信號段分割、信號插值處理、特征提取及優化、分類識別。在識別過程中,需要先對肌電信號進行預處理,去除信號中干擾以及冗余的信息成分,然后再提取信號的特征參數。預處理過程和特征參數的提取方法,會影響到語音識別率的準確度,如果無法提取出語音信號的特征,將會影響后續的訓練過程,大大增加了識別的難度。語音信號的處理在整個信號識別的過程中具有重要的地位。
3.3.1信號預處理
由于表面肌電信號相對較弱,電力線干擾很可能造成嚴重的影響,掩蓋了表面肌電信號本身的特性。本研究使用自適應陷波濾波器來恢復干擾,然后將其從被測信號中消除。sEMG的主要信息集中在20Hz-120Hz范圍內,可利用帶通濾波消除電力線信號的高次諧波和其他環境噪聲保持20Hz-120Hz的信號。
3.3.2有效信號段分割以及插值處理
對于訓練信號,本系統采用連續錄入的方式,即用戶輸入訓練數據錄入次數N后設備開始采集信號,對0-9的每一個數字,用戶將重復說N次,每次間隔1秒,所以一個記錄將包含N段有效信號,需要將這些有效信號分割出來。本系統采用[Geof-frey S.Mehzner,Glen Colby,Yunbin Deng,and James T.Heaton]提出的算法,該算法整合了不同通道的狀態信息判定是語音開始和結束。檢測到肌肉處于活動狀態后獲得相應信號數據,由于用戶說話的快慢不同,有效信號的長度也不一,一般有效信號的長度在200ms-400ms之間。為了規范化信號的長度,本研究使用線性插值將信號調整為每個通道400維的長度,使得數據可以利用機器學習分類算法進行識別和判斷。
3.3.3特征提取及優化
肌電信號是具有短時平穩性的非平穩信號可以對信號進行短時分析,本系統采用的特征為時間特征。首先對信號進行分幀,幀長為30ms,幀移為15ms。對每一個移動窗,提取四個特征值,分別為短時平均幅度、短時能量、短時平均過零率、短時平均幅值差:
考慮到一個肌肉蔟的活動會影響周圍肌透蔟粗的活動,特征從本質上就存在相關性,并且從少量且有效的特征可以提高算法效率,本系統利用線性判別分析方法(LDA)將特征優化至50維,用少量的特征維度保證高緯度的信息,獲得相似甚至同樣效果的分類結果。
3.3.4分類識別
在得到特征數據集后,可以利用常用的分類識別算法進行模式識別。本研究首先實現了利用神經網絡,支持向量機和隨機森林進行分類識別,然后對比了三種算法的識別結果,最終系統采用隨機森林樹進行識別,采用信息增益率作為分裂準則。
3.4界面設計及實現
1)登錄(如圖6所示):為了便于對用戶信息進行安全管理,點擊“注冊”按鈕進入注冊界面(如圖7所示),設置登錄所需賬號密碼以及錄入肌電信號數據,注冊成功后,即可通過賬號和密碼登錄平臺。
2)注冊流程(如圖7-9所示):先輸入用戶名,后確定密碼(如圖7所示)。隨后進入肌電信號選擇錄入界面(如圖8所示),選擇相應數字開始進行信號錄入。進人數字錄入界面后,可以先對存儲文件和內容進行查看。進行正式錄入時,用戶可選擇5次10次或20次錄入,點擊相應按鈕,就可通過每秒增加1的“錄入次數”的提示進行數據錄入(如圖9所示),“錄人次數”達到選擇次數后會自動停止增加。單個數字錄入完成后點擊“生成模板”按鈕生成算法所需模板。10個數字相應數據全部錄入完成后可以點擊圖8的完成按鈕跳轉到登錄界面進行登錄。
3)應用流程(如圖10-14所示):信息操作界面(主頁)顯示了此App的功能(女口圖10所示)。點擊“設置文本”進入文本設置界面(女口圖11所示),在此界面可以錄入0-9數字及自定義文本。點擊“工作”按鈕,可以進入功能界面(如圖12)。在功能界面點擊“按下后說話”按鈕開始接收并處理用戶肌電信息。單次信息收集默認為兩秒鐘,兩秒過后在數據顯示界面(如圖13所示濕示用戶輸入的數據所對應的自定義文本。同時系統將生成臨時肌電數據。點擊“查看文本”進入文本查看界面(女口圖14所示),在此界面可以查看用戶信息,自定義的數字對應的文本以及各個肌電數據文件存儲路徑。其中還未錄入的數據顯示為null。
4結束語
本系統初步實現了一個肌電信號采集及動作識別系統,該系統能夠采集到微弱的表面肌電信號并根據肌電信號識別面部動作,進而通過安卓端的信號處理實現無聲識別和應用,使得交互過程不會被外界噪聲干擾,并具有良好的安全性、保密性。在后續工作中可進一步提升系統的功能性,提供動態的趣味的方式展示App界面以及簡化設備佩戴方式。