基于嵌入式Linux的語(yǔ)音識(shí)別系統(tǒng)硬軟件設(shè)計(jì)
別功能程序設(shè)計(jì)
本文引用地址:http://cafeforensic.com/article/278135.htm語(yǔ)音識(shí)別芯片LD3320的特色是兼有語(yǔ)音識(shí)別和MP3播放的兩項(xiàng)功能,在功能切換的時(shí)候,必須進(jìn)行通用初始化,對(duì)芯片進(jìn)行一系列的設(shè)置。
語(yǔ)音識(shí)別功能的驅(qū)動(dòng)程序工作流程為通用初始化à語(yǔ)音識(shí)別用初始化→寫入識(shí)別列表→開(kāi)始識(shí)別→響應(yīng)識(shí)別中斷。為了提高識(shí)別成功率,在識(shí)別列表中增加了“垃圾關(guān)鍵詞”以吸收錯(cuò)誤的識(shí)別。上層應(yīng)用程序?yàn)檎Z(yǔ)音識(shí)別功能分配了單獨(dú)的進(jìn)程,通過(guò)ioctl()函數(shù)控制LD3320的工作狀態(tài),read()函數(shù)可以讀取識(shí)別結(jié)果。程序中使用select機(jī)制實(shí)現(xiàn)read()函數(shù)的非阻塞訪問(wèn)。同時(shí),設(shè)定select監(jiān)控超時(shí)時(shí)間,在超時(shí)后,重新初始化語(yǔ)音識(shí)別芯片LD3320,為下一次語(yǔ)音識(shí)別做準(zhǔn)備,如圖6所示。
4.2語(yǔ)音播放功能程序設(shè)計(jì)
LD3320支持MP3數(shù)據(jù)播放,程序中操作順序?yàn)椋和ㄓ贸跏蓟?agrave;播放模式初始化à音量調(diào)節(jié)à開(kāi)始播放,并準(zhǔn)備好中斷響應(yīng)函數(shù),打開(kāi)中斷允許位。在程序中,首先將數(shù)字0~9、“十”、“百”、“點(diǎn)”的語(yǔ)音MP3數(shù)據(jù)分別轉(zhuǎn)換為標(biāo)準(zhǔn)C語(yǔ)言數(shù)組格式文件,將該文件添加到工程中進(jìn)行統(tǒng)一編譯。然后把需要播放的距離數(shù)據(jù)進(jìn)行拆分,并對(duì)每一位進(jìn)行查表操作,得到相應(yīng)的語(yǔ)音數(shù)據(jù)。例如,將距離數(shù)據(jù)12.5拆分為:“1”、“十”、“2”、“點(diǎn)”、“5”。最后將查表得到的語(yǔ)音數(shù)據(jù)按從左到右的順序組合,并存儲(chǔ)到LD3320的播放數(shù)據(jù)存儲(chǔ)器,在即將播放完畢時(shí),芯片會(huì)發(fā)出中斷請(qǐng)求,在中斷響應(yīng)函數(shù)中連續(xù)寫入播放數(shù)據(jù),直到聲音數(shù)據(jù)播放完畢。
4.3超聲波測(cè)距和云臺(tái)控制程序設(shè)計(jì)
超聲波測(cè)距功能的驅(qū)動(dòng)程序?qū)儆?a class="contentlabel" href="http://cafeforensic.com/news/listbylabel/label/Linux">Linux字符型驅(qū)動(dòng),利用ioctl()函數(shù)對(duì)相應(yīng)GPIO進(jìn)行時(shí)序控制,完成超聲波的發(fā)射和接收。在接收端口輸出高電平脈沖信號(hào)時(shí),觸發(fā)系統(tǒng)中斷并使用定時(shí)器計(jì)算得到高電平持續(xù)時(shí)間△T,根據(jù)公式(1)完成距離S的測(cè)量。式中V為超聲波的傳播速度,常溫下超聲波在空氣中的傳播速度是340米/秒。在應(yīng)用程序中,可以通過(guò)read()函數(shù)讀取到所測(cè)量的距離值。
S =V XΔT/ 2(1)
兩自由度云臺(tái)由兩個(gè)舵機(jī)組成,分別控制云臺(tái)水平和垂直方向的旋轉(zhuǎn)角度。在驅(qū)動(dòng)程序中,首先打開(kāi)定時(shí)器PWM功能并設(shè)置定時(shí)周期,然后映射定時(shí)器中斷函數(shù),最后使能定時(shí)器,使定時(shí)器開(kāi)始運(yùn)行。程序中根據(jù)實(shí)驗(yàn)者發(fā)出的語(yǔ)音指令,利用ioctl()函數(shù)控制定時(shí)器輸出兩路PWM信號(hào),分別控制兩個(gè)舵機(jī)的旋轉(zhuǎn)角度,最后將運(yùn)動(dòng)合成為云臺(tái)的位姿。
5.結(jié)語(yǔ)
本文介紹了嵌入式語(yǔ)音識(shí)別技術(shù)在超聲波測(cè)距系統(tǒng)中的一種應(yīng)用以及實(shí)現(xiàn)方式,實(shí)驗(yàn)人員可以通過(guò)預(yù)先定義好的語(yǔ)音指令(例如:“開(kāi)始測(cè)量”、“左上方”、“前方”)實(shí)現(xiàn)對(duì)系統(tǒng)的控制,并利用超聲波進(jìn)行距離測(cè)量。測(cè)量完成后,系統(tǒng)通過(guò)語(yǔ)音播放的方式將測(cè)量結(jié)果反饋給實(shí)驗(yàn)人員,完成人機(jī)交互,提高了用戶體驗(yàn)度。本系統(tǒng)具有易擴(kuò)展的優(yōu)點(diǎn),可以將其應(yīng)用到其它嵌入式控制系統(tǒng)中。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)linux相關(guān)文章:linux教程
評(píng)論