解析設(shè)計(jì)ARM語音識(shí)別系統(tǒng)的步驟
掃描二維碼
隨時(shí)隨地手機(jī)看文章
伴著高新技能在軍事范疇的大范圍利用,武器裝備逐漸向高、精、尖方面開展。傳統(tǒng)的軍事練習(xí)因?yàn)榫毩?xí)時(shí)刻長(zhǎng)、練習(xí)費(fèi)用高、練習(xí)空間窄,常常不能到達(dá)預(yù)期的練習(xí)作用,已不能滿意現(xiàn)代軍事練習(xí)的需求。為解決上述問題,模仿練習(xí)應(yīng)運(yùn)而生。
為進(jìn)一步提高練習(xí)作用,這篇文章利用智能語音交互芯片規(guī)劃了某模仿練習(xí)器的示教與回放系統(tǒng)。示教系統(tǒng)為操作人員生動(dòng)的演示規(guī)范操作流程及相應(yīng)的操作表象,極大地縮短了對(duì)操作人員的練習(xí)時(shí)刻,提高了練習(xí)作用?;胤畔到y(tǒng)經(jīng)過記載操作練習(xí)進(jìn)程中各操作人員的口令、聲響強(qiáng)度、動(dòng)作、時(shí)刻、操作表象等,待操作練習(xí)結(jié)束后經(jīng)過重演練習(xí)進(jìn)程,以便操作者及時(shí)糾正自個(gè)的問題。示教系統(tǒng)也可理解為對(duì)規(guī)范操作練習(xí)進(jìn)程的回放。該系統(tǒng)不需求虛擬現(xiàn)實(shí)技能的撐持,在小型的嵌入式系統(tǒng)上就能夠完結(jié)。
1 系統(tǒng)原理
該模仿練習(xí)器由一臺(tái)測(cè)控計(jì)算機(jī)和多臺(tái)從設(shè)備構(gòu)成。如圖1所示。在此僅對(duì)一臺(tái)從設(shè)備進(jìn)行介紹,其硬件系統(tǒng)主要由測(cè)控計(jì)算機(jī)、Arduino mega2560 操控器、語音辨認(rèn)單元、聲強(qiáng)檢測(cè)單元、語音組成單元、面板操控單元、儀器面板等構(gòu)成。面板操控單元較為復(fù)雜,包含多種操控電路,在模仿練習(xí)中擔(dān)任該從設(shè)備在Arduino mega2560 操控器的操控下完結(jié)整個(gè)練習(xí)進(jìn)程,在示教與回放系統(tǒng)中完結(jié)對(duì)方才操作練習(xí)操作表象的重演,其詳細(xì)電路規(guī)劃在此不做介紹。
語音辨認(rèn)單元擔(dān)任辨認(rèn)操作人員的操作口令;聲強(qiáng)檢測(cè)單元擔(dān)任檢測(cè)聲強(qiáng)巨細(xì)并以此作為判別是哪臺(tái)從設(shè)備操作人員口令的依據(jù);Arduino mega2560操控器擔(dān)任監(jiān)督儀器面板各元件的狀況來辨認(rèn)操作人員的動(dòng)作,然后完結(jié)對(duì)操作練習(xí)進(jìn)程的記載。各儀器的操作表象依據(jù)操作動(dòng)作事前編制無需記載。在操作回放進(jìn)程中,測(cè)控計(jì)算機(jī)依據(jù)所記載的數(shù)據(jù),經(jīng)過操控相應(yīng)從設(shè)備的Arduino mega2560操控器重現(xiàn)所記載的操作進(jìn)程。
2 單元系統(tǒng)規(guī)劃
2.1 語音辨認(rèn)單元規(guī)劃
當(dāng)時(shí),語音辨認(rèn)技能的開展十分迅速,依照辨認(rèn)目標(biāo)的類型能夠分為特定人和非特定人語音辨認(rèn)。特定人是指辨認(rèn)目標(biāo)為專門的人,非特定人是指辨認(rèn)目標(biāo)是針對(duì)大多數(shù)用戶,通常需求收集多自己的語音進(jìn)行錄音和練習(xí),經(jīng)過學(xué)習(xí),然后到達(dá)較高的辨認(rèn)率。
這篇文章選用的LD3320語音辨認(rèn)芯片是一顆依據(jù)非特定人語音辨認(rèn)(Speaker Independent Automatic SpeechRecognition,SI ASR)技能的芯片。該芯片上集成了高精度的A/D 和D/A 接口,不再需求外接輔佐的FLASH 和RAM,即能夠完結(jié)語音辨認(rèn)、聲控、人機(jī)對(duì)話功用,供給了真實(shí)的單芯片語音辨認(rèn)解決方案。而且,辨認(rèn)的要害詞語列表是能夠動(dòng)態(tài)編輯的。
語音辨認(rèn)單元選用ATmega168 作為MCU,擔(dān)任操控LD3320完結(jié)一切和語音辨認(rèn)有關(guān)的作業(yè),并將辨認(rèn)成果經(jīng)過串口上載至Arduino mega2560 操控器。對(duì)LD3320芯片的各種操作,都必須經(jīng)過寄存器的操作來完結(jié),寄存器讀寫操作有2種方法(規(guī)范并行方法和串行SPI方法)。在此選用并行方法,將LD3320的數(shù)據(jù)端口與MCU的I/O口相連。
語音辨認(rèn)流程選用中止方法作業(yè),其作業(yè)流程分為初始化、寫入要害詞、開端辨認(rèn)和呼應(yīng)中止等。MCU的程序選用ARDUINO IDE編寫,調(diào)試完結(jié)后經(jīng)過串口進(jìn)行燒錄,操控LD3320完結(jié)語音辨認(rèn),并將辨認(rèn)成果上載至Arduino mega2560操控器。
2.2 聲強(qiáng)檢測(cè)單元規(guī)劃
在進(jìn)行語音辨認(rèn)時(shí)需求判別是某一臺(tái)從設(shè)備操作人員的口令,為此規(guī)劃聲強(qiáng)檢測(cè)單元電路,該電路僅需能夠判別出相對(duì)聲強(qiáng)的巨細(xì),無需檢測(cè)聲級(jí),對(duì)檢測(cè)精度需求較低。
電容式MIC聲響傳感器將外部聲響信號(hào)變換成電信號(hào),經(jīng)NE5532擴(kuò)大電路進(jìn)行擴(kuò)大,將輸入的微弱音頻信號(hào)變換為具有一定幅值的電壓信號(hào),該電壓信號(hào)經(jīng)AC/DC有效值變換電路進(jìn)行裝換后進(jìn)行再次擴(kuò)大,最終由Arduino mega2560操控器的A/D進(jìn)行采樣。其間D1 端接Arduinomega2560操控器的A/D,INT1端接Arduino mega2560操控器的外部中止1.當(dāng)外界聲響信號(hào)大于預(yù)設(shè)的閾值時(shí),三極管導(dǎo)通INT1端由高電平變?yōu)榈碗娖桨l(fā)作外部中止,操控器呼應(yīng)中止并進(jìn)行A/D 采樣,采樣數(shù)據(jù)經(jīng)均值濾波后保留,待測(cè)控計(jì)算機(jī)查詢時(shí)上載該聲強(qiáng)數(shù)據(jù)。
2.3 語音組成單元規(guī)劃
TTS(Text To Speech)文本轉(zhuǎn)語音技能是人機(jī)智能對(duì)話開展的趨勢(shì)。依據(jù)TTS技能的語音系統(tǒng)無需事前錄音就能夠隨時(shí)依據(jù)查詢條件查出并組成語音進(jìn)行播報(bào),然后大大減少了系統(tǒng)維護(hù)的作業(yè)量。利用此技能,經(jīng)過MCU或許PC機(jī)就能操控語音芯片發(fā)音。
這篇文章選用SYN6658中文語音組成芯片進(jìn)行語音組成。SYN6658 經(jīng)過UART 接口或SPI接口通訊方法,接納待組成的文本數(shù)據(jù),完結(jié)文本到語音(或TTS語音)的變換。操控器和SYN6658 語音組成芯片之間經(jīng)過UART接口銜接,操控器經(jīng)過串口通訊向SYN6658語音組成芯片發(fā)送操控指令和文本,SYN6658語音組成芯片把接納到的文本組成為語音信號(hào)輸出,輸出的信號(hào)經(jīng)LM386 功率擴(kuò)大器進(jìn)行擴(kuò)大后銜接到喇叭進(jìn)行播映。
SYN6658語音組成電路選用芯片硬件數(shù)據(jù)手冊(cè)供給的典型使用電路進(jìn)行規(guī)劃,在此不做介紹,功率擴(kuò)大電路選用美國(guó)國(guó)家半導(dǎo)體出產(chǎn)的音頻功率擴(kuò)大器LM386進(jìn)行擴(kuò)大。
在進(jìn)行語音組成時(shí)首要進(jìn)行初始化,包含發(fā)音人挑選、數(shù)字處理策略、語速調(diào)理、語調(diào)調(diào)理、音量調(diào)理等。
因?yàn)樵撓到y(tǒng)要模仿多人發(fā)音,所以不一樣的從設(shè)備設(shè)置不一樣的發(fā)音人及語調(diào)與語速以便于區(qū)別。初始化后等待測(cè)控計(jì)算機(jī)的語音組成指令,待收到指令后芯片會(huì)向上位機(jī)發(fā)送1字節(jié)的狀況回傳,上位機(jī)可依據(jù)這個(gè)回傳來判別芯片當(dāng)時(shí)的作業(yè)狀況。
3 系統(tǒng)軟件規(guī)劃
示教與回放系統(tǒng)的軟件規(guī)劃包含測(cè)控計(jì)算機(jī)的軟件規(guī)劃和各從設(shè)備Arduino mega260操控器的軟件規(guī)劃。
測(cè)控計(jì)算機(jī)是整個(gè)系統(tǒng)的操控中心,其軟件選用C#進(jìn)行編寫,在示教與回放系統(tǒng)中主要是對(duì)操作數(shù)據(jù)的記載以便依據(jù)所記載的數(shù)據(jù)對(duì)操作進(jìn)程進(jìn)行準(zhǔn)確回放,需求記載的數(shù)據(jù)包含:各從設(shè)備操作人員的操作口令,操作動(dòng)作,口令及動(dòng)作時(shí)刻,各操作對(duì)應(yīng)的操作表象。為簡(jiǎn)化記載數(shù)據(jù),事前編制好各事情代碼,記載進(jìn)程只記載代碼,大大提高程序效率。
在操作練習(xí)進(jìn)程中測(cè)控計(jì)算機(jī)每隔50 ms 對(duì)下位機(jī)進(jìn)行操控及輪詢,并記載反應(yīng)數(shù)據(jù),在數(shù)據(jù)記載時(shí)以50 ms 為一個(gè)單位。選用定時(shí)器對(duì)時(shí)刻進(jìn)行操控。在回放進(jìn)程中首要比對(duì)當(dāng)時(shí)時(shí)刻和所記載的時(shí)刻,當(dāng)所記載的時(shí)刻與當(dāng)時(shí)時(shí)刻吻合時(shí)測(cè)控計(jì)算機(jī)操控下位機(jī)履行該事情,完結(jié)事情回放。
Arduino mega2560操控器擔(dān)任接納測(cè)控計(jì)算機(jī)的操控指令并履行指令,讀取語音辨認(rèn)成果,對(duì)聲強(qiáng)數(shù)據(jù)收集和處理,操控語音組成單元進(jìn)行語音組成等。Arduinomega2560 操控器選用串口中止的方法進(jìn)行指令接納。
只要正確接納到指令才會(huì)履行并回傳成果,若測(cè)控計(jì)算機(jī)在限制時(shí)刻內(nèi)未收到回傳成果則標(biāo)明發(fā)作錯(cuò)誤,測(cè)控計(jì)算機(jī)需從頭發(fā)送。
這篇文章利用智能語音芯片規(guī)劃了某模仿練習(xí)器的示教與回放系統(tǒng),該系統(tǒng)不需求如今盛行的虛擬現(xiàn)實(shí)技能的撐持,僅在MCU的操控下就能夠運(yùn)轉(zhuǎn)。該系統(tǒng)也能夠在小型的便攜式設(shè)備上完結(jié),具有杰出的使用遠(yuǎn)景。0次