?
基于Android移動平臺的單雙通道助聽器實現
引文格式: 馬金龍,曾慶寧,龍超,等.基于Android移動平臺的單雙通道助聽器實現[J].桂林電子科技大學學報,2016,36(1):5-8.
馬金龍,曾慶寧,龍超,謝先明
(桂林電子科技大學 信息與通信學院,廣西 桂林541004)
摘要:為了在嘈雜環境下給弱聽患者提供更好的助聽效果,設計了一種基于Android移動平臺的單、雙通道助聽器應用。該助聽器通過Android系統提供的音頻組件調用設備的麥克風進行數據采集并緩存,利用單、雙通道語音增強算法對緩存的數據進行處理并送入相應音頻組件進行播放。測試結果表明,在Android移動平臺通過單、雙通道消噪功能可從移動設備耳機聽到清晰的增強后語音,實現對環境噪聲的良好濾除。
關鍵詞:移動平臺;助聽器;語音增強
中老年人往往出現不同程度的聽力損失,但世界衛生組織的調查表明,中國聽力障礙患者的助聽器配置比例低于5%[1]。助聽器的聲音采集分為單麥克風和麥克風陣列。單麥克風采集助聽器在安靜的環境中給患者提供較好的聽覺效果,但在嘈雜環境下增強效果急劇下降;麥克風陣列為嘈雜環境下語音增強處理提供良好的解決方案,其利用陣元間信號的相位差異,在復雜噪聲環境下為聽損患者提供較好的增強效果和可懂度[2]。
Android移動設備通常配置1~2個麥克風,在高端的設備中麥克風數量甚至配置3個以上,以達到更好的通話和音視頻錄制效果。結合Android設備的麥克風分布特點和助聽器市場的巨大需求[3],設計了一種基于Android移動平臺的單、雙通道助聽器應用,通過對麥克風采集的音頻數據進行語音增強,達到有效濾除環境噪聲的目的。
1語音增強模型
1.1單通道語音增強模型
譜減法是最早提出的降噪算法之一,其假設噪聲為加性噪聲并從帶噪語音譜中減去噪聲估計譜,從而得到純凈的語音信號譜[4],同時通過語音活動檢測算法(voice activity detection,簡稱VAD)在目標語音缺失期間,對噪聲譜進行估計和更新[5]。
假設y(n)為受到噪聲污染的輸入信號,由純凈語音信號x(n)和加性噪聲d(n)組成,

(1)

(2)
將Y(ω)以極坐標形式表示:
(3)

(4)
因此,純凈語音信號譜的估計為:
(5)

由于增強的信號幅度譜可能因錯誤估計噪聲譜而為負值,對增強的信號譜做半波整流處理,即將負的譜分量置零:

(6)
通過式(6)得到最終增強后的單通道語音,其中噪聲估計采用了VAD檢測,在非語音段對噪聲進行更新。單通道譜減法流程如圖1所示。

圖1 單通道譜減法流程Fig.1 The flow chart of single channel spectrum subtraction algorithm
1.2雙通道語音增強模型
在雙通道信號采集過程中,由于語音抵達2個麥克風存在時間差,時間差通過兩通道間語音段廣義互相關時延估計求得,其互相關值達到最大時的τ即為時間差[6]。利用通道間的時間差可對兩路信號進行時間對齊,對齊后得到的信號模型為:
(7)
(8)
將2個麥克風接收的帶噪語音信號x1(n)和x2(n)作為2個自適應濾波器的期望響應,把延時信號x1(n-T)作為第2個通道自適應濾波器的輸入信號,延時信號x2(n-T)作為第1個通道自適應濾波器的輸入。雙通道消噪算法流程如圖2所示。
“有錢人也賣里程啊?!绷AR贿呇b錢包,一邊小聲嘀咕一句。她以為只有自己這樣的窮人才會巴巴地在網上買里程積分,或者將多余的積分里程賣出去。

圖2 雙通道消噪算法流程Fig.2 The flow chart of dual-channel denoise algorithm
采用LMS算法對期望信號分別在2個通道中進行估計,最后對輸出結果做平均處理得到雙通道增強后的語音yout,
(9)

與單通道消噪算法相比,使用延時信號x2(n-T)作為x1(n)通道的輸入,減少了期望語音信號之間的相關性,同時削弱通道間噪聲的相關性,提高了增強處理后信號的信噪比[7]。
2Android音頻資源及麥克風調用
AudioRecord和AudioTrack是Android系統中獲取和播放音頻流的重要類,放置在Android.media包中。與MediaRecorder和MediaPlayer類不同,AudioRecord和AudioTrack類在獲取和播放音頻數據流時無須通過文件保存和讀取,可動態地獲取和播放音頻流[7]。
2.1Android音頻相關組件
在Android應用程序中,Manifest主要對該應用程序的設定進行描述并通知系統。因此,Android系統使用AudioRecord,需要在Manifest.xml文件中進行聲明,以獲得系統的許可。通過創建AudioRecord類的對象可從麥克風獲取實時的音頻數據流,采集的數據流保存到緩存,然后讀取緩存數據并利用語音增強算法處理,將處理后的數據寫入AudioTrack類的對象,實現實時的語音增強輸出。創建AudioRecord類和AudioTrack類的主要代碼為:
staticfinalintchannelConfiguration=AudioFormat.CHANNEL_CONFIGURATION_MONO
//定義聲道
staticfinalintaudioEncoding=AudioFormat.ENCODING_PCM_16BIT//定義編碼格式
audioRecord=newAudioRecord(MediaRecorder.AudioSource.MIC,frequency,channelConfiguration,audioEncoding,recBufSize)
//創建AudioRecord對象
audioTrack=newAudioTrack(AudioManager.STREAM_MUSIC,frequency,channelconfiguration,audioEncoding,playBufSize,AudioTrack.MODE_STREAM)//創建AudioTrack對象
在助聽器應用的開發過程中,通過MediaRecorder.AudioSource選項控制音頻數據的來源。在其參數中選擇MIC和MONO單聲道錄音,則可配置系統采集位于話筒的單麥克風輸入數據;若參數中選擇CAMCORDER和STEREO立體聲錄音,則可同時采集話筒及設備頂端的雙麥克風輸入數據。
2.2主要移動設備的麥克風統計
Android設備位于話筒的麥克風是單通道消噪算法的信號來源。在很多高端移動設備中,引入了“雙麥克風降噪”技術,以優化通話效果,因而設備擁有2個以上的麥克風作為信號輸入源。為了解Android設備的麥克風分布情況,凸顯選擇單、雙通道降噪的必要性,統計了主要移動設備的麥克風位置及數量,如表1所示??紤]蘋果公司率先在iOS移動設備應用了多麥克風降噪技術,統計包含了iOS移動設備。

表1 主要移動設備的麥克風數量與位置
3單、雙通道助聽器的實現
在單聲道采樣頻率為8kHz下,AudioRecord單幀讀取的默認緩存時長為0.04s,即320個采樣點。為更好地對每幀進行初始噪聲值估計及VAD檢測,將緩存大小設置為1280個數據樣點,實際試聽表明在該緩存大小下,可在消噪處理和聲音延遲之間獲得較好的折中效果。
在消噪過程中,從緩存讀取音頻數據并送到算法中進行運算,需要采用FFT、IFFT以及VAD算法[8]的Java實現,這是算法處理的必要步驟,也是助聽器聲音處理并傳輸到耳機過程中產生延遲的主要原因。
在雙通道消噪過程中,用戶通過交互界面輸入麥克風之間的距離,并調用廣義互相關時延估計算法計算通道之間的時延,然后利用雙通道的LMS算法得到增強后的輸出語音。在立體聲PCM編碼格式的緩存中,16bit的音頻數據分高、低位交叉存儲,因此在讀取其數據時需要避免通道數據混淆[9]。
以算法和系統資源為基礎,基于Android移動平臺的助聽器應用界面如圖3所示。其包括6個功能鍵和1個滾動條,其中“邊錄邊放”功能可測試軟件是否正常工作,正常則說話時可在耳機中聽到清晰且略有延遲的聲音?!皢瓮ǖ老搿惫δ芸蛇m用于大部分智能設備,采用手機話筒位置麥克風進行消噪處理;“雙通道消噪”功能適用于2個以上麥克風的智能設備,用戶可通過交互對話框設置麥克風的間距,以獲取更佳的去噪效果。

圖3 基于Android移動平臺的助聽器應用界面Fig.3 The interface of hearing aids applicationbased on Android mobile platform
為避免因喇叭播放的聲音被麥克風循環采集而出現嘯叫,使用時需要佩戴耳機。若用戶點擊單通道消噪按鈕,則直接進入實時采集數據并利用譜減法進行消噪,當用戶所處環境較為嘈雜時,耳機所輸出的
聲音質量會有明顯地提升;若用戶所持設備具有2個麥克風采集裝置,則可點擊雙通道消噪按鈕,彈出界面要求用戶輸入2個麥克風之間的距離,然后進入雙通道消噪流程。
4結束語
以Android平臺為基礎,結合系統音頻資源及主要移動設備廠商的麥克風分布,設計了基于Android移動平臺的單、雙通道助聽器應用。該應用利用Android移動平臺為聽損患者提供了一個簡易助聽方案,但未實現重度聽損患者所需的頻響補償、寬動態范圍壓縮等功能,暫不能作為專業助聽器的替代方案。
參考文獻:
[1]賴卿,夏文磊,曹萍.中國老年人群助聽器基本情況調查報告[J].數字化用戶,2013,13(3):115-116.
[2]林靜然.基于麥克風陣列的語音增強算法研究[D].成都:電子科技大學,2007:1-8.
[3]李寧.Android開發權威指南[M].北京:人民郵電出版社,2011:11-95.
[4]LOIZOUPC.Speechenhancement:theoryandpractice[M].Florida:CRCPress,2013:75-109.
[5]鄭展恒,曾慶寧,張少兵.一種語音端點檢測方法的研究[J].桂林電子科技大學學報,2008,28(1):23-26.
[6]馬少春,劉慶華,張越峰.基于MCZT的二次相關時延估計算法[J].桂林電子科技大學學報,2014,34(5):349-353.
[7]鐘金榮,梁宇,林嘉宇.一種雙通道語音增強方法[J].計算機工程與科學,2012,34(5):172-177.
[8]李興華.Java開發實戰經典[M].北京,清華大學出版社,2009:137-151.
[9]鄧翔宇.語音PCM的Huffman編碼研究與實現[J].自動化與儀器儀表,2010,10(2):121-122.
編輯:曹壽平
Single and dual-channel hearing aids based on Android mobile platform
MA Jinglong, ZENG Qingning, LONG Chao, XIE Xianming
(School of Information and Communication Engineering, Guilin University of Electronic Technology, Guilin 541004, China)
Abstract:In order to provide better hearing effect for the hearing patients in a noisy environment, a single and dual-channel hearing aids based on Android mobile platform was designed. The audio module of Android system was utilized to invoke and cache the speech data from microphone, and then the speech data was sent to the audio module after processing with the single and dual-channel algorithm. The test results show that user can hear clearly enhanced speech from the headset through the signal and dual-channel noise cancellation function, the noise is eliminated effectively.
Key words:Android mobile platform; hearing aids; speech enhancement
中圖分類號:TN912.3
文獻標志碼:A
文章編號:1673-808X(2016)01-0005-04
通信作者:曾慶寧(1963-),男,廣西桂林人,教授,博士,研究方向為語音、醫學信號處理。E-mail:qingningzeng@126.com
基金項目:國家自然科學基金(61461011,41204179);廣西自然科學基金(2014GXNSFBA118273,2012GXNSFAA053232);桂林電子科技大學研究生教育創新計劃(GDYCSZ201456)
收稿日期:2015-08-25