雒駝 蒙順政 李偉
摘要:聽覺延遲反饋技術(DAF),被用于矯正口吃近30余年,具有良好的療效,但DAF設備的便攜性與經濟性卻難以兩全。而基于手機平臺實現(xiàn)的DAF功能,具有與手機共享設備、便攜性好、成本低的優(yōu)勢。本文介紹了手機DAF軟件實現(xiàn)的程序設計方法與技術要點,并通過在手機上實際運行DAF軟件進行試驗驗證,證明在手機平臺上實現(xiàn)DAF功能是有效,可行的。
關鍵詞:聽覺延遲反饋; 安卓系統(tǒng); 手機; 軟件; 編程
1、DAF口吃矯正器械介紹
聽覺延遲反饋(DAF)技術被用于口吃矯正療法已經獲得了國際及國內研究者的認可[1],美國某公司以此原理制造了思比易口吃矯正器,國內一些公司也推出了基于同樣原理的盒式矯正設備。DAF技術通過延遲語音信號從發(fā)音器官到達聽覺器官的時間,來促進言語流利程度。DAF器械一般的工作原理是通過麥克風采集使用者的語音,通過模/數(shù)轉換器轉為數(shù)字信號,再送到數(shù)字信號處理芯片。 數(shù)字信號處理器在特制的算法控制下完成延時、自動增益控制等處理,再經過數(shù)/模轉換成語音信號,最終用揚聲器輸出到使用者耳內,達到聽覺延遲反饋的效果。
2、基于安卓系統(tǒng)實現(xiàn)DAF的優(yōu)勢
思比易有矯正口吃的效果,但是卻價格昂貴(近5000美元)。盒式矯正儀也有攜帶不便的問題。所幸以現(xiàn)在的技術手段和目前智能手機成熟的硬件配置,要開發(fā)一套基于安卓智能手機的該軟件并不困難。與手機共享操作平臺不僅使該設備的便攜性得到保證,更能節(jié)省設備的硬件成本,易于推廣和使用,為更多患者提供矯正口吃的機會。
3、DAF功能在安卓系統(tǒng)中的實現(xiàn)
本項目在eclipse平臺下編程,依托于安卓2.2系統(tǒng)自帶API庫進行開發(fā)。音頻處理部分用到了安卓2.2系統(tǒng)的android.media.Audio下的若干API功能,這個庫中的API主要使用底層函數(shù),雖然對音頻文件直接操作的功能較差,功能相對原始,卻能在精確控制后,實現(xiàn)穩(wěn)定的流媒體處理及音頻的基本輸入輸出。圖1為本程序的流程簡圖。
3.1 連續(xù)輸入功能的實現(xiàn)
為了能實現(xiàn)實時延時功能,需要對音頻數(shù)據(jù)進行實時采集和控制,本項目采用帶緩沖區(qū)的流媒體錄音機制對語音進行采集。采集音頻信號并用緩沖區(qū)保存語音信息時,需注意輸入數(shù)據(jù)的連續(xù)性,防止重復寫入和丟失緩沖區(qū)段。這就需要預先定義緩沖區(qū)的大小和位置,以防造成緩沖區(qū)數(shù)據(jù)存儲不正常
本項目采用Audiorecord采集音頻,可以將音頻信號按預先指定的大小分段打包,并保存在預先指定的緩沖區(qū)中。當按下啟動鍵時,錄音線程即時啟動,不停的將通過話筒采集到的音頻信號順次寫入緩沖區(qū)段,待運行到輸出線程時,進行讀取。
3.2 連續(xù)輸出功能的實現(xiàn)
音頻的連續(xù)輸出是保證反饋語音流暢自然的重要步驟,這部分也同樣采用讀取緩沖區(qū)數(shù)據(jù)進行流媒體播放的方式。由于流媒體播放具有實時性,若緩沖區(qū)數(shù)據(jù)出現(xiàn)間斷,播放的語音信號也會出現(xiàn)間斷或是不連貫,因此制定緩沖區(qū)的大小和位置,也對語音播放的質量有直接的影響。
本項目采用AudioTrack將儲存在緩沖區(qū)段中的數(shù)據(jù)搬運到揚聲器進行播放。該線程可以讀取指定大小和位置的緩沖區(qū)數(shù)據(jù),并將這些數(shù)據(jù)包重新組合成音頻信息,輸入揚聲器。
3.3 延時功能的實現(xiàn)
從音頻信號采集到輸出,為保證音頻信號的連貫,不可避免的要采用多線程操作,這時如何控制線程占用CPU的時間,是控制延遲時間的重要步驟。本項目采用Timer()監(jiān)測每個錄音循環(huán)的延遲,通過對緩沖區(qū)大小進行動態(tài)調節(jié)的方法,來實現(xiàn)動態(tài)延時的控制。動態(tài)延時控制主要依靠流媒體緩沖區(qū)的傳輸特性。因為音頻采集模塊和輸出模塊不能同時對一個緩沖區(qū)段進行調用,音頻采集模塊只有在完成一個緩沖區(qū)段的寫入時,音頻輸出模塊才可以對這個緩沖區(qū)段進行調用。而音頻信號從話筒到音頻采集模塊以及從音頻輸出模塊到揚聲器所用的處理時間相對音頻信息寫入緩沖區(qū)段的時間極短,所以從緩沖區(qū)段寫入開始到寫入完成的時間,就基本決定了從音頻輸入到輸出的延遲,這個延遲主要取決于緩沖區(qū)段的大小。
4、軟件運行實驗與結論
軟件運行的平臺為安卓2.2操作系統(tǒng)的野火G8手機,該手機屬于安卓手機中硬件性能較差的手機,因此能在G8上穩(wěn)定流暢運行的程序,在現(xiàn)有的其他安卓2.2系統(tǒng)手機上也能完美運行。通過植入的Log.d("test2", "Done")在Eclipse平臺上所給出的LogCat運行報告測試(圖2),當選擇語音延遲50ms時,語音延遲基本穩(wěn)定在40-60ms的區(qū)間內,達到了DAF設備的最小延遲要求。這說明,基于安卓手機平臺搭建的DAF軟件/設備是有效可行的?!?/p>
參考文獻
[1]楊利,蔣濤等. 思比易(SpeechEasy)口吃矯正器矯治口吃臨床觀察. 中國聽力語言康復科學雜志2006,3: 27~28
[2]郭宏志,安卓應用開發(fā)詳解. 電子工業(yè)出版社 2010.6
[3]楊玲. 數(shù)字音頻實時延時處理器的設計與實現(xiàn). 電子科技大學碩士學位論文. 2001.3
[4]孫衛(wèi)琴. Java面向對象編程. 電子工業(yè)出版社2006
作者簡介:
雒駝,男,1985年出生。北京工業(yè)大學機電學院碩士研究生。蒙順政、李偉,北京工業(yè)大學機電學院碩士研究生。
本文為:北京工業(yè)大學第9屆研究生科技基金項目