基于嵌入式Linux的語(yǔ)音識別系統硬軟件設計

發(fā)布時(shí)間:2015-7-2 10:52    發(fā)布者:designapp
關(guān)鍵詞: 三星 , 智能家居 , 超聲波測距
該設計運用三星公司的S3C2440,結合ICRoute公司的高性能語(yǔ)音識別芯片LD3320,進(jìn)行了語(yǔ)音識別系統的硬件和軟件設計。在嵌入式Linux操作系統下,運用多進(jìn)程機制完成了對語(yǔ)音識別芯片、超聲波測距和云臺的控制,并將語(yǔ)音識別技術(shù)應用于多角度超聲波測距系統中。通過(guò)測試,系統可以通過(guò)識別語(yǔ)音指令控制測量方向,無(wú)需手動(dòng)干預,最后將測量結果通過(guò)語(yǔ)音播放出來(lái)。

1.引言

語(yǔ)言是人類(lèi)傳播信息的重要手段,語(yǔ)音識別則是實(shí)現語(yǔ)音控制的關(guān)鍵技術(shù)。采用嵌入式語(yǔ)音識別技術(shù)使得設備具有功耗低、使用簡(jiǎn)便、靈活等優(yōu)點(diǎn),擺脫了復雜按鍵和按鈕的困擾,在服務(wù)機器人、智能家居及消費電子等領(lǐng)域發(fā)揮著(zhù)重要作用。

2.系統構成與原理

語(yǔ)音識別主要包括兩個(gè)階段:訓練階段和識別階段。在訓練或識別過(guò)程中,都必須對輸入語(yǔ)音進(jìn)行預處理和特征提取。訓練階段通過(guò)用戶(hù)輸入的若干次訓練語(yǔ)音,經(jīng)過(guò)預處理和特征提取后得到特征參數,最后通過(guò)特征參數建模,進(jìn)而建立訓練語(yǔ)音的參考模型庫。而識別階段是將輸入語(yǔ)音的特征矢量參數和參考模型庫中的參考模型進(jìn)行相似性度量,然后把相似度最高的輸入特征矢量作為識別結果輸出,從而達到語(yǔ)音識別目的,如圖1 所示。


圖1 語(yǔ)音識別原理框圖

語(yǔ)音識別技術(shù)可分為:特定人識別和非特定人識別兩種。特定人識別是指需要對待識別人的語(yǔ)音進(jìn)行采集訓練,識別對象為專(zhuān)門(mén)的人;非特定人識別是指識別對象為大多數用戶(hù),一般要采集多個(gè)人的語(yǔ)音進(jìn)行錄音、訓練和學(xué)習,從而達到較高的識別率。

在實(shí)際應用中,現代技術(shù)開(kāi)發(fā)嵌入式語(yǔ)音識別有兩種實(shí)現方式:調入嵌入式語(yǔ)音開(kāi)發(fā)包和外擴語(yǔ)音識別芯片。本文的語(yǔ)音識別系統方案是以嵌入式處理器S3C2440 為核心,外擴非特定人語(yǔ)音識別芯片LD3320,并將超聲波測距模塊和云臺相結合作為系統的機械執行機構。系統測量過(guò)程如下:首先根據語(yǔ)音指令控制兩自由度云臺的位姿,使超聲波探測器指向特定方向,然后開(kāi)啟超聲波探測器,測量出前方障礙物距離,最后將測量結果轉化為可以播放的二進(jìn)制數據流,通過(guò)LD3320的播放功能完成數據的播放。

3.硬件電路設計方案

硬件電路主要包括語(yǔ)音識別部分、主控部分、超聲波測距部分和舵機控制部分,如圖2 所示。處理器為三星公司的S3C2440,系統主頻最高可達533 MHz,支持SPI、I2C、UART等接口,能夠滿(mǎn)足控制系統的需求。主控芯片S3C2440 通過(guò)SPI 總線(xiàn)完成對語(yǔ)音識別模塊的讀寫(xiě)操作,超聲波測距部分和舵機控制部分由處理器的GPIO進(jìn)行統一控制。


圖2 硬件電路設計方案
        
3.1 語(yǔ)音識別電路設計

為了使系統能夠識別操作人員發(fā)出的語(yǔ)音指令,設計中采用了由ICRoute 公司設計生產(chǎn)的非特定人語(yǔ)音識別芯片LD3320,它集成了語(yǔ)音識別處理電路和一些外部電路,包括AD、DA轉換器、麥克風(fēng)接口、聲音輸出接口等,不需要外接任何的輔助芯片如Flash、RAM。在主控制器的控制下,可以識別出預先添加到識別列表中的內容。設計中參考了ICRoute 發(fā)布的LD3320 數據手冊,圖中LD3320 的P0、P1、P2引腳通過(guò)SPI 接口與嵌入式處理器相接,控制信號WRB、CSB、RSTB以及中斷返回信號引腳INTB與處理器S3C2440直接相連,如圖3 所示。


圖3 語(yǔ)音模塊和核心板連接關(guān)系

3.2 超聲波測距和舵機控制電路設計

超聲波測距原理相對比較成熟,系統中采用超聲波測距模塊HC-SR04。該模塊有兩個(gè)TTL電平通信引腳,兼容3.3V電平。其中,控制端口Trig 發(fā)一個(gè)10us 以上的高電平,接收端口Echo 將輸出與距離成正比的高電平信號。當Echo 有高電平輸出時(shí)就開(kāi)啟處理器定時(shí)器,當端口電平跳變?yōu)榈碗娖綍r(shí)關(guān)閉定時(shí)器,根據定時(shí)器的值可計算得到障礙物的距離。其中,控制端口Trig 和接收端口Echo 分別接至處理器的GPG9、GPG6引腳。

超聲波測距模塊的感應角度小于15°,為了擴大測距的感應角度范圍,將超聲波測距模塊安裝在兩自由度云臺上,其中,舵機為SG90(9G),旋轉角度為180°。處理器通過(guò)GPB0和GPB1分別控制兩個(gè)舵機以實(shí)現云臺的旋轉,以測量不同方向的障礙物,如圖4 所示。


圖4 超聲波測距和舵機控制電路
        
4.軟件設計方案

系統軟件基于嵌入式Linux 操作系統,實(shí)現了語(yǔ)音識別、語(yǔ)音播放、超聲波測距和舵機控制等任務(wù),使用fock 機制為每項任務(wù)分配獨立的進(jìn)程,使系統可以進(jìn)行多任務(wù)處理。針對不同功能模塊編寫(xiě)了相應的底層驅動(dòng)程序,為上層應用程序提供了調用接口。

系統工作流程如下:處理器通過(guò)SPI 總線(xiàn)對語(yǔ)音識別芯片LD3320 進(jìn)行通用初始化,使語(yǔ)音識別芯片進(jìn)入循環(huán)識別模式,系統處理器反復啟動(dòng)語(yǔ)音識別過(guò)程。如果有識別結果,則根據識別作相應處理后(比如播放某個(gè)聲音作為應答)再啟動(dòng)下一個(gè)識別過(guò)程。處理器通過(guò)SPI 總線(xiàn)讀取C5 寄存器的識別結果并分析,將語(yǔ)音命令轉換為超聲波測距和舵機的控制信號,完成多方位測距任務(wù),如圖5 所示。


圖5 軟件流程圖

4.1 語(yǔ)音識別功能程序設計

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

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


圖6 語(yǔ)音識別功能程序流程圖

4.2 語(yǔ)音播放功能程序設計

LD3320支持MP3數據播放,程序中操作順序為:通用初始化à播放模式初始化à音量調節à開(kāi)始播放,并準備好中斷響應函數,打開(kāi)中斷允許位。在程序中,首先將數字0~9、“十”、“百”、“點(diǎn)”的語(yǔ)音MP3數據分別轉換為標準C語(yǔ)言數組格式文件,將該文件添加到工程中進(jìn)行統一編譯。然后把需要播放的距離數據進(jìn)行拆分,并對每一位進(jìn)行查表操作,得到相應的語(yǔ)音數據。例如,將距離數據12.5 拆分為:“1”、“十”、“2”、“點(diǎn)”、“5”。最后將查表得到的語(yǔ)音數據按從左到右的順序組合,并存儲到LD3320的播放數據存儲器,在即將播放完畢時(shí),芯片會(huì )發(fā)出中斷請求,在中斷響應函數中連續寫(xiě)入播放數據,直到聲音數據播放完畢。

4.3 超聲波測距和云臺控制程序設計

超聲波測距功能的驅動(dòng)程序屬于Linux 字符型驅動(dòng),利用ioctl()函數對相應GPIO進(jìn)行時(shí)序控制,完成超聲波的發(fā)射和接收。在接收端口輸出高電平脈沖信號時(shí),觸發(fā)系統中斷并使用定時(shí)器計算得到高電平持續時(shí)間△T,根據公式(1)完成距離S 的測量。式中V為超聲波的傳播速度,常溫下超聲波在空氣中的傳播速度是340 米/秒。在應用程序中,可以通過(guò)read()函數讀取到所測量的距離值。

S =V X ΔT/ 2         (1)

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

5.結語(yǔ)

本文介紹了嵌入式語(yǔ)音識別技術(shù)在超聲波測距系統中的一種應用以及實(shí)現方式,實(shí)驗人員可以通過(guò)預先定義好的語(yǔ)音指令(例如:“開(kāi)始測量”、“左上方”、“前方”)實(shí)現對系統的控制,并利用超聲波進(jìn)行距離測量。測量完成后,系統通過(guò)語(yǔ)音播放的方式將測量結果反饋給實(shí)驗人員,完成人機交互,提高了用戶(hù)體驗度。本系統具有易擴展的優(yōu)點(diǎn),可以將其應用到其它嵌入式控制系統中。
本文地址:http://selenalain.com/thread-151071-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页