新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于嵌入式Linux的語音識(shí)別系統(tǒng)硬軟件設(shè)計(jì)

        基于嵌入式Linux的語音識(shí)別系統(tǒng)硬軟件設(shè)計(jì)

        作者: 時(shí)間:2015-08-01 來源:網(wǎng)絡(luò) 收藏

          別功能程序設(shè)計(jì)

        本文引用地址:http://www.104case.com/article/278135.htm

          芯片LD3320的特色是兼有和MP3播放的兩項(xiàng)功能,在功能切換的時(shí)候,必須進(jìn)行通用初始化,對(duì)芯片進(jìn)行一系列的設(shè)置。

          功能的驅(qū)動(dòng)程序工作流程為通用初始化à語音識(shí)別用初始化→寫入識(shí)別列表→開始識(shí)別→響應(yīng)識(shí)別中斷。為了提高識(shí)別成功率,在識(shí)別列表中增加了“垃圾關(guān)鍵詞”以吸收錯(cuò)誤的識(shí)別。上層應(yīng)用程序?yàn)檎Z音識(shí)別功能分配了單獨(dú)的進(jìn)程,通過ioctl()函數(shù)控制LD3320的工作狀態(tài),read()函數(shù)可以讀取識(shí)別結(jié)果。程序中使用select機(jī)制實(shí)現(xiàn)read()函數(shù)的非阻塞訪問。同時(shí),設(shè)定select監(jiān)控超時(shí)時(shí)間,在超時(shí)后,重新初始化語音識(shí)別芯片LD3320,為下一次語音識(shí)別做準(zhǔn)備,如圖6所示。

          4.2語音播放功能程序設(shè)計(jì)

          LD3320支持MP3數(shù)據(jù)播放,程序中操作順序?yàn)椋和ㄓ贸跏蓟?agrave;播放模式初始化à音量調(diào)節(jié)à開始播放,并準(zhǔn)備好中斷響應(yīng)函數(shù),打開中斷允許位。在程序中,首先將數(shù)字0~9、“十”、“百”、“點(diǎn)”的語音MP3數(shù)據(jù)分別轉(zhuǎn)換為標(biāo)準(zhǔn)C語言數(shù)組格式文件,將該文件添加到工程中進(jìn)行統(tǒng)一編譯。然后把需要播放的距離數(shù)據(jù)進(jìn)行拆分,并對(duì)每一位進(jìn)行查表操作,得到相應(yīng)的語音數(shù)據(jù)。例如,將距離數(shù)據(jù)12.5拆分為:“1”、“十”、“2”、“點(diǎn)”、“5”。最后將查表得到的語音數(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://www.104case.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)用程序中,可以通過read()函數(shù)讀取到所測(cè)量的距離值。

          S =V XΔT/ 2(1)

          兩自由度云臺(tái)由兩個(gè)舵機(jī)組成,分別控制云臺(tái)水平和垂直方向的旋轉(zhuǎn)角度。在驅(qū)動(dòng)程序中,首先打開定時(shí)器PWM功能并設(shè)置定時(shí)周期,然后映射定時(shí)器中斷函數(shù),最后使能定時(shí)器,使定時(shí)器開始運(yùn)行。程序中根據(jù)實(shí)驗(yàn)者發(fā)出的語音指令,利用ioctl()函數(shù)控制定時(shí)器輸出兩路PWM信號(hào),分別控制兩個(gè)舵機(jī)的旋轉(zhuǎn)角度,最后將運(yùn)動(dòng)合成為云臺(tái)的位姿。

          5.結(jié)語

          本文介紹了嵌入式語音識(shí)別技術(shù)在超聲波測(cè)距系統(tǒng)中的一種應(yīng)用以及實(shí)現(xiàn)方式,實(shí)驗(yàn)人員可以通過預(yù)先定義好的語音指令(例如:“開始測(cè)量”、“左上方”、“前方”)實(shí)現(xiàn)對(duì)系統(tǒng)的控制,并利用超聲波進(jìn)行距離測(cè)量。測(cè)量完成后,系統(tǒng)通過語音播放的方式將測(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教程



        上一頁 1 2 下一頁

        關(guān)鍵詞: Linux 語音識(shí)別

        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 清丰县| 信宜市| 甘孜县| 永仁县| 崇信县| 呼和浩特市| 徐汇区| 萍乡市| 永城市| 济宁市| 招远市| 伊金霍洛旗| 牙克石市| 永泰县| 滕州市| 读书| 收藏| 肇庆市| 正定县| 通城县| 桓仁| 吉首市| 策勒县| 山东省| 普兰县| 桐城市| 榆林市| 尚义县| 东安县| 湟源县| 湖口县| 桃江县| 石屏县| 顺平县| 敦化市| 巢湖市| 罗源县| 繁昌县| 丰宁| 永平县| 高安市|