陳艷婷 李志鵬 賈丹平
摘 要:該次課題研究設(shè)計的超聲波導(dǎo)盲拐杖是為視覺障礙者提供環(huán)境導(dǎo)引的輔助工具,以STM32為核心,集合超聲波模塊,語音識別模塊和語音合成模塊為一體的智能化產(chǎn)品。它通過超聲波模塊對前方環(huán)境進行探測,將探測的信息以語音形式反饋給用戶,提醒用戶及時避讓,拐杖還能夠通過語音控制自動播報當(dāng)前時間,以此利用語音識別和語音合成模塊實現(xiàn)簡單的人機交互功能。此外,拐杖的上端設(shè)有閃光燈,當(dāng)用戶在夜間行走時,可以手動按動對應(yīng)按鈕或發(fā)出語音指令進行燈光閃爍,當(dāng)遇到緊急情況也可按動對應(yīng)按鈕進行聲音警示報警。和傳統(tǒng)的導(dǎo)盲手杖相比,該次設(shè)計的盲人智能拐杖操作更加簡單、便捷,具有很強的使用性和市場推廣價值。
關(guān)鍵詞:STM32 超聲波測距 語音識別
中圖分類號:TP29 文獻標(biāo)識碼:A 文章編號:1674-098X(2016)02(c)-0077-02
拐杖的智能化,能夠真正地從服務(wù)于視覺障礙者的角度去考慮產(chǎn)品的設(shè)計與生產(chǎn),真正滿足盲人對于出行的需求,降低盲人的出行危險系數(shù),在保障其生命安全的同時,能夠讓盲人朋友感受到來自社會對殘疾群體的關(guān)心和關(guān)注。隨著社會經(jīng)濟的飛速發(fā)展,智能化設(shè)備將不斷完善,智能拐杖將漸漸代替?zhèn)鹘y(tǒng)拐杖走進千家萬戶,成為盲人出行必備品。此次研究設(shè)計的智能拐杖能夠自動檢測出前方1 m內(nèi)出現(xiàn)的障礙物并進行播報(距離可以在程序中修改),當(dāng)用戶語音發(fā)出時間指令,系統(tǒng)能夠自動播報當(dāng)前時間。此外,用戶通過手動按動相應(yīng)按鈕或語音指令,能夠開啟LED燈,具有一定警示功能。
1 設(shè)計原理
1.1 超聲波測距原理
根據(jù)超聲波發(fā)射器向某一方向發(fā)射超聲波,在發(fā)射的同時開始計時,超聲波在空氣中傳播,途中碰到障礙就立即返回來,接收器收到反射波就停止計時的原理,再利用距離公式得到與障礙物的距離,從而達到測障的功能(超聲波在空氣中的傳播速度為340 m/s,根據(jù)計時器記錄的時間t,就可以計算出發(fā)射點距障礙物的距離(s),即:s=340t/2[1-2]。
1.2 人機交互原理
利用語音識別模塊,把人說出的話語轉(zhuǎn)換成相應(yīng)的數(shù)據(jù),通過RS232串口發(fā)送到單片機中,以實現(xiàn)語音控制的目的。利用實驗所需的語音合成模塊,可以將前方有障礙物以及播報當(dāng)前時間等數(shù)據(jù)信息合成語音,實現(xiàn)語音播報功能。以此利用語音識別和語音合成模塊,實現(xiàn)了簡單的人機對話功能[3]。
2 系統(tǒng)設(shè)計
2.1 硬件設(shè)計
2.1.1 主控器選擇
STM32主頻高,外設(shè)豐富,有PWM、AD、DA這些常用外設(shè),處理能力很強,專為要求高性能、低成本、低功耗的嵌入式應(yīng)用設(shè)計。此外,由于此次設(shè)計具有語音報時功能,而STM32的內(nèi)部具有實時時鐘(RTC)能夠?qū)崿F(xiàn)時間的記錄,該芯片的預(yù)分頻模塊可產(chǎn)生1 s的時間基準(zhǔn),32位的可編程計數(shù)器實現(xiàn)時間記錄,使用方便,只需一顆3 V紐扣電池和一個32.768 kHz晶振即可工作。而51單片機速度較慢,而且很多外設(shè)都要外接,用起來不方便。為此,筆者選用STM32作為主控器。
2.1.2 測距模塊選擇
第一種方案是選用紅外測距模塊對距離進行測量。紅外測距傳感器模塊利用紅外光對前方物體的距離進行測量,精度較高,模擬量輸出,使用方便。第二種方案是選用超聲波模塊對距離進行測量。超聲波模塊利用發(fā)出超聲波到接收到超聲波的時間來計算出被測物體距離,計算方便快捷[4]。
通過不斷地實驗,發(fā)現(xiàn)紅外測距模塊雖然精度較高,但是應(yīng)用場合局限性太大,不適合在露天場地使用,陽光對于其測量影響較大。而超聲波模塊雖然精度較差,但對使用環(huán)境要求不高,且精度問題可通過后期程序處理來提高,因此選擇超聲波模塊作為測距模塊。
2.1.3 語音識別和語音播報選擇
在實現(xiàn)語音識別和語音播報的功能的時候,存在兩種不同的語音模塊,一種是利用集成的語音模塊LD3320A;另一種是分別利用語音識別芯片LDV7和語音合成芯片XFS5152,分別接到32之上進行通信控制。
第一種方案是利用集成的語音模塊LD3320A。LD3320A自帶語音識別和對應(yīng)的語音播報,不需要過多的控制即可實現(xiàn)人機對話功能。其語音識別字符和對應(yīng)回答以MP3格式存儲在SD卡之中,只要事先利用音頻制作軟件制作相應(yīng)音頻放入SD卡之中即可。第二種方案是用語音識別芯片LDV7和語音合成芯片XFS5152實現(xiàn)語音功能。將LDV7和XFS5152通過串口通信的方式連接到STM32之上,語音識別芯片對語音進行識別之后,將語音標(biāo)識符發(fā)送到STM32之上,之后STM32對標(biāo)識符進行相應(yīng)處理之后,發(fā)送語音合成命令給XFS5152來實現(xiàn)人機對話的功能。
由兩個方案可知,方案一實現(xiàn)較為簡單,無需過多控制,但靈活性較差,不能實時改變播報信息。方案二控制起來較為繁瑣,通信協(xié)議的編寫需要大量的時間,但是靈活性高,播報內(nèi)容可通過程序進行控制改變。綜上所述,選擇方案二為本課題主要研究方案。
2.1.4 整體硬件設(shè)計
將STM32作為主控芯片發(fā)出指令信息,并接受超聲波模塊,語音合成模塊,語音識別模塊的反饋信息進而實現(xiàn)整體系統(tǒng)的控制,即將各個模塊通過32板連接在一起,由于模塊連接較為簡單,所以不在此贅述,整體設(shè)計框圖如圖1所示。
2.2 軟件設(shè)計
由程序框圖可知,智能盲人拐杖主要編程由兩部分構(gòu)成。第一部分是STM32的主控程序的設(shè)計,在主程序中實現(xiàn)的主要功能是距離測量及計算,語音識別碼的獲取及處理。語音合成程序作為一個子程序,由相應(yīng)函數(shù)進行調(diào)用,而子程序的入口變量即為預(yù)先編好的不同字符串,這樣可實現(xiàn)不同語音的合成。第二部分是語音識別模塊的程序編輯,在程序中我們要定義好所需識別的語音及對應(yīng)的語音識別碼,這樣在識別語音后,會通過串口將識別碼發(fā)送到STM32之中,做出相應(yīng)的數(shù)據(jù)處理。(見圖2、圖3)
3 設(shè)計中要遇到的主要問題和解決措施
3.1 超聲波測距精度的提高
通過實驗發(fā)現(xiàn),在使用超聲波測距模塊的過程中,由于余震的存在,得到的距離數(shù)據(jù)存在波動,不是一個穩(wěn)定值,這樣對后期數(shù)據(jù)處理存在很大的影響。
由于無法從硬件方面進行解決,只能在程序中進行數(shù)據(jù)精度的提高。為此,筆者在對距離數(shù)據(jù)的處理當(dāng)中,采用多次測量求平均值的方法,測量20次的數(shù)據(jù)進行處理,從而得到一個較為精確和穩(wěn)定的距離數(shù)據(jù)。
3.2 語音識別誤碼率的降低
在語音識別的模塊使用過程中,由于是非特定人語音的識別,對環(huán)境因素要求很高,且識別靈敏度和誤碼率成正比,這樣在提高靈敏度的時候如何降低誤碼率也是一個很主要的問題。
為此,筆者采用的主要措施是設(shè)置前置口令及垃圾關(guān)鍵詞的設(shè)置,這樣必須說出一級口令之后才有二級口令的執(zhí)行。垃圾關(guān)鍵詞及一些與口令相似的詞語,提前對這些詞語進行設(shè)置,可以很好地降低誤碼率,從而提高識別的精度。
4 結(jié)語
該次實驗以嵌入式技術(shù)為核心,將各種模塊有效地結(jié)合在一起。在實驗過程中,利用提前對垃圾關(guān)鍵詞設(shè)置以及多次平均值測量法來降低超聲波誤碼率和提高超聲波測距精度。通過對產(chǎn)品進行不斷改進,設(shè)計出一款能夠更加精確和靈敏的語音提示盲人躲避障礙物的智能拐杖,能夠真正地彌補盲人朋友在視覺障礙上的缺失,有效改善他們的行走能力以及生活質(zhì)量,從而幫助他們實現(xiàn)自己的人生價值。
參考文獻
[1] 楊冬燕.用于移動機器人避障的超聲波測距系統(tǒng)[J].內(nèi)蒙古科技與經(jīng)濟,2008(16):122-124.
[2] 張同懷.超聲波測距儀的設(shè)計[J].儀表技術(shù),2008(8):20-22.
[3] 李金耀.One-Shot車載語音交互系統(tǒng)的設(shè)計與實現(xiàn)[D].安徽大學(xué),2012.
[4] 何健民,張秀紅.淺談超聲波傳感器非接觸式距離檢測系統(tǒng)[J].黑龍江科技信息,2010(12):25.