電子產(chǎn)業(yè)一站式賦能平臺(tái)

PCB聯(lián)盟網(wǎng)

搜索
查看: 2483|回復(fù): 0
收起左側(cè)

arm嵌入式開發(fā)教程百度云_基于嵌入式Linux的語音識別系統(tǒng)硬軟件設(shè)計(jì)

[復(fù)制鏈接]

2607

主題

2607

帖子

7472

積分

高級會(huì)員

Rank: 5Rank: 5

積分
7472
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2020-8-21 11:25:09 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
arm嵌入式開發(fā)教程百度云_基于嵌入式Linux的語音識別系統(tǒng)硬軟件設(shè)計(jì),   

該設(shè)計(jì)運(yùn)用三星公司的S3C2440,結(jié)合ICRoute公司的高性能語音識別芯片LD3320,進(jìn)行了語音識別系統(tǒng)的硬件和軟件設(shè)計(jì)。在嵌入式Linux操作系統(tǒng)下,運(yùn)用多進(jìn)程機(jī)制完成了對語音識別芯片、超聲波測距和云臺(tái)的控制,并將語音識別技術(shù)應(yīng)用于多角度超聲波測距系統(tǒng)中。通過測試,系統(tǒng)可以通過識別語音指令控制測量方向,無需手動(dòng)干預(yù),最后將測量結(jié)果通過語音播放出來。

1.引言

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

2.系統(tǒng)構(gòu)成與原理

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

  
  


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

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

3.硬件電路設(shè)計(jì)方案

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

  
  


3.1語音識別電路設(shè)計(jì)

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

  
  


3.2超聲波測距和舵機(jī)控制電路設(shè)計(jì)

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

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

佳能3100嵌入式內(nèi)膽視頻, 佳能打印機(jī)嵌入式內(nèi)膽視頻, 嘉格納嵌入式咖啡機(jī)使用視頻, 間易嵌入式視頻, 間易嵌入式視頻下載, 監(jiān)控嵌入式硬盤視頻怎么刪除, 監(jiān)控視頻工控式還是嵌入式, 講解嵌入式項(xiàng)目的視頻, 講解嵌入式項(xiàng)目的視頻教程, 金三立16盤嵌入式視頻系統(tǒng), 金三立嵌入式網(wǎng)絡(luò)視頻客戶端, 金三立嵌入式網(wǎng)絡(luò)視頻系統(tǒng), 金三立嵌入式網(wǎng)絡(luò)視頻系統(tǒng)設(shè)置, 禁止販賣華清遠(yuǎn)見嵌入式視頻, 京卓電子嵌入式視頻, 經(jīng)典科魯茲嵌入式導(dǎo)航裝車視頻,


  




4.軟件設(shè)計(jì)方案

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

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

  
  




4.1語音識別功能程序設(shè)計(jì)

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

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

  
  


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

LD3320支持MP3數(shù)據(jù)播放,程序中操作順序?yàn)椋和ㄓ贸跏蓟げシ拍J匠跏蓟ひ袅空{(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)行拆分,并對每一位進(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ā)出中斷請求,在中斷響應(yīng)函數(shù)中連續(xù)寫入播放數(shù)據(jù),直到聲音數(shù)據(jù)播放完畢。

4.3超聲波測距和云臺(tái)控制程序設(shè)計(jì)

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

S=VXΔ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信號,分別控制兩個(gè)舵機(jī)的旋轉(zhuǎn)角度,最后將運(yùn)動(dòng)合成為云臺(tái)的位姿。

5.結(jié)語

本文介紹了嵌入式語音識別技術(shù)在超聲波測距系統(tǒng)中的一種應(yīng)用以及實(shí)現(xiàn)方式,實(shí)驗(yàn)人員可以通過預(yù)先定義好的語音指令(例如:“開始測量”、“左上方”、“前方”)實(shí)現(xiàn)對系統(tǒng)的控制,并利用超聲波進(jìn)行距離測量。測量完成后,系統(tǒng)通過語音播放的方式將測量結(jié)果反饋給實(shí)驗(yàn)人員,完成人機(jī)交互,提高了用戶體驗(yàn)度。本系統(tǒng)具有易擴(kuò)展的優(yōu)點(diǎn),可以將其應(yīng)用到其它嵌入式控制系統(tǒng)中。

發(fā)表回復(fù)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

關(guān)閉

站長推薦上一條 /1 下一條


聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表