基于A(yíng)RM處理器的非特定人語(yǔ)音識別系統設計
SYN6658語(yǔ)音合成電路采用芯片硬件數據手冊提供的典型應用電路進(jìn)行設計[5],在此不做介紹,功率放大電路采用美國國家半導體生產(chǎn)的音頻功率放大器LM386進(jìn)行放大。
本文引用地址:http://dyxdggzs.com/article/201609/303639.htm在進(jìn)行語(yǔ)音合成時(shí)首先進(jìn)行初始化,包括發(fā)音人選擇、數字處理策略、語(yǔ)速調節、語(yǔ)調調節、音量調節等。
由于該系統要模擬多人發(fā)音,所以不同的從設備設置不同的發(fā)音人及語(yǔ)調與語(yǔ)速以便于區分。初始化后等待測控計算機的語(yǔ)音合成命令,待收到命令后芯片會(huì )向上位機發(fā)送1字節的狀態(tài)回傳,上位機可根據這個(gè)回傳來(lái)判斷芯片目前的工作狀態(tài)。語(yǔ)音合成流程圖如圖7所示。

3 系統軟件設計
示教與回放系統的軟件設計包括測控計算機的軟件設計和各從設備Arduino mega260控制器的軟件設計。
測控計算機是整個(gè)系統的控制核心,其軟件采用C#進(jìn)行編寫(xiě),在示教與回放系統中主要是對操作數據的記錄以便根據所記錄的數據對操作過(guò)程進(jìn)行精確回放,需要記錄的數據包括:各從設備操作人員的操作口令,操作動(dòng)作,口令及動(dòng)作時(shí)間,各操作對應的操作現象。為簡(jiǎn)化記錄數據,事先編制好各事件代碼,記錄過(guò)程只記錄代碼,大大提高程序效率。建立結構體如下:

在操作訓練過(guò)程中測控計算機每隔50 ms 對下位機進(jìn)行控制及輪詢(xún),并記錄反饋數據,在數據記錄時(shí)以50 ms 為一個(gè)單位。采用定時(shí)器對時(shí)間進(jìn)行控制。在回放過(guò)程中首先比對當前時(shí)間和所記錄的時(shí)間,當所記錄的時(shí)間與當前時(shí)間吻合時(shí)測控計算機控制下位機執行該事件,完成事件回放。
Arduino mega2560控制器負責接收測控計算機的控制指令并執行指令,讀取語(yǔ)音識別結果,對聲強數據采集和處理,控制語(yǔ)音合成單元進(jìn)行語(yǔ)音合成等。Arduinomega2560 控制器采用串口中斷的方式進(jìn)行命令接收。
只有正確接收到命令才會(huì )執行并回傳結果,若測控計算機在限定時(shí)間內未收到回傳結果則表明發(fā)生錯誤,測控計算機需重新發(fā)送。數據接收流程圖如圖8所示。
4 總結
本文利用智能語(yǔ)音芯片設計了某模擬訓練器的示教與回放系統,該系統不需要現在流行的虛擬現實(shí)技術(shù)的支持,僅在MCU的控制下就可以運行。該系統也可以在小型的便攜式設備上實(shí)現,具有良好的應用前景。
評論