新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于ARM的非特定人語音識別系統(tǒng)設計

基于ARM的非特定人語音識別系統(tǒng)設計

作者: 時間:2014-05-26 來源:網(wǎng)絡 收藏

 

本文引用地址:http://butianyuan.cn/article/247359.htm

2.3 語音合成單元設計

TTS(Text To Speech)文本轉語音技術是人機智能對話發(fā)展的趨勢。基于TTS技術的語音系統(tǒng)無需事先錄音就能夠隨時根據(jù)查詢條件查出并合成語音進行播報,從而大大減少了系統(tǒng)維護的工作量。利用此技術,通過MCU或者PC機就能控制語音芯片發(fā)音[4].

本文采用SYN6658中文語音合成芯片進行語音合成。SYN6658 通過UART 接口或SPI接口通信方式,接收待合成的文本數(shù)據(jù),實現(xiàn)文本到語音(或TTS語音)的轉換[6].控制器和SYN6658 語音合成芯片之間通過UART接口連接,控制器通過串口通信向SYN6658語音合成芯片發(fā)送控制命令和文本,SYN6658語音合成芯片把接收到的文本合成為語音信號輸出,輸出的信號經(jīng)LM386 功率放大器進行放大后連接到喇叭進行播放。如圖6所示。

 

 

SYN6658語音合成電路采用芯片硬件數(shù)據(jù)手冊提供的典型應用電路進行設計[5],在此不做介紹,功率放大電路采用美國國家半導體生產(chǎn)的音頻功率放大器LM386進行放大。

在進行語音合成時首先進行初始化,包括發(fā)音人選擇、數(shù)字處理策略、語速調(diào)節(jié)、語調(diào)調(diào)節(jié)、音量調(diào)節(jié)等。

由于該系統(tǒng)要模擬多人發(fā)音,所以不同的從設備設置不同的發(fā)音人及語調(diào)與語速以便于區(qū)分。初始化后等待測控計算機的語音合成命令,待收到命令后芯片會向上位機發(fā)送1字節(jié)的狀態(tài)回傳,上位機可根據(jù)這個回傳來判斷芯片目前的工作狀態(tài)。語音合成流程圖如圖7所示。

 

 

3 系統(tǒng)軟件設計

示教與回放系統(tǒng)的軟件設計包括測控計算機的軟件設計和各從設備Arduino mega260控制器的軟件設計。

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

 

 

在操作訓練過程中測控計算機每隔50 ms 對下位機進行控制及輪詢,并記錄反饋數(shù)據(jù),在數(shù)據(jù)記錄時以50 ms 為一個單位。采用定時器對時間進行控制。在回放過程中首先比對當前時間和所記錄的時間,當所記錄的時間與當前時間吻合時測控計算機控制下位機執(zhí)行該事件,完成事件回放。

Arduino mega2560控制器負責接收測控計算機的控制指令并執(zhí)行指令,讀取結果,對聲強數(shù)據(jù)采集和處理,控制語音合成單元進行語音合成等。Arduinomega2560 控制器采用串口中斷的方式進行命令接收。

只有正確接收到命令才會執(zhí)行并回傳結果,若測控計算機在限定時間內(nèi)未收到回傳結果則表明發(fā)生錯誤,測控計算機需重新發(fā)送。數(shù)據(jù)接收流程圖如圖8所示。

 

 

4 總結

本文利用智能語音芯片設計了某模擬訓練器的示教與回放系統(tǒng),該系統(tǒng)不需要現(xiàn)在流行的虛擬現(xiàn)實技術的支持,僅在MCU的控制下就可以運行。該系統(tǒng)也可以在小型的便攜式設備上實現(xiàn),具有良好的應用前景。

手機電池相關文章:手機電池修復


聲控燈相關文章:聲控燈原理

上一頁 1 2 下一頁

關鍵詞: ARM 語音識別

評論


相關推薦

技術專區(qū)

關閉