隨著社會(huì)的發(fā)展,人與機(jī)器的交互存在于生活的方方面面,方便有效的交互環(huán)境日益成為系統(tǒng)開發(fā)的關(guān)鍵所在。采用語音的方式實(shí)現(xiàn)人與機(jī)器的交互,擴(kuò)展和開發(fā)具有一定語音功能及人機(jī)交互功能的產(chǎn)品也逐漸為人們所認(rèn)可。伴隨著技術(shù)的進(jìn)步,各式各樣具有語音處理功能的芯片的出現(xiàn)也使得語音處理功能的廣泛應(yīng)用成為可能。本文正是基于這種趨勢(shì),選用SPCE061A單片機(jī)設(shè)計(jì)了一款具有語音功能的直流穩(wěn)壓數(shù)控電源,系統(tǒng)設(shè)計(jì)簡(jiǎn)單、操作靈活,具有良好的人機(jī)交互環(huán)境。
1 系統(tǒng)軟硬件設(shè)計(jì)
1.1 硬件設(shè)計(jì)
系統(tǒng)的硬件設(shè)計(jì)主要包括三部分電路:鍵盤輸入及數(shù)碼顯示部分、電壓輸出部分、單片機(jī)部分。其中鍵盤輸入及數(shù)碼顯示部分主要完成讀取鍵值及電壓顯示,這部分電路采用凌陽公司生產(chǎn)的LED模組。該模組采用了148按鍵輸入及6位七段數(shù)碼管顯示,可以滿足設(shè)計(jì)需要。
1.2 軟件設(shè)計(jì)
軟件設(shè)計(jì)采用模塊式的設(shè)計(jì)思想。各模塊包括基本功能模塊(完成8個(gè)鍵值處理、99個(gè)步進(jìn)置數(shù)、掃描置數(shù),各位分別置數(shù)、動(dòng)態(tài)顯示、模數(shù)轉(zhuǎn)換等) 、語音播報(bào)模塊,語音識(shí)別模塊。在凌陽unSP IDE 1.16.1開發(fā)環(huán)境中各模塊分別用C語言編寫,獨(dú)立調(diào)試,最后在工程中整合,并進(jìn)行了一定程度的優(yōu)化。
2 語音功能的軟硬件設(shè)計(jì)
2.1 語音功能的硬件設(shè)計(jì)
SPCE061A為音頻輸出提供了兩路DAC通道,即DAC1和DAC2,本系統(tǒng)選用DACl作為電流輸出,DAC2作為音頻信號(hào)的輸出,經(jīng)功率放大后。由揚(yáng)聲器輸出,實(shí)現(xiàn)語音的播報(bào)功能。同時(shí)SPCE061A有8路可復(fù)用的10位ADC通道,本系統(tǒng)采用一路通道(MIC_IN)作為音頻輸入,音頻模擬信號(hào)經(jīng)過單片機(jī)內(nèi)部的自動(dòng)增益控制器(AC-C)和放大器放大后進(jìn)行A/D轉(zhuǎn)換,實(shí)現(xiàn)語音控制信號(hào)的輸入。
2.2 語音播報(bào)功能的軟件設(shè)計(jì)
考慮到系統(tǒng)對(duì)于播放音質(zhì)的要求并不高。采用凌陽SACM—S480音頻壓縮算法(壓縮比為80:3)對(duì)語音信號(hào)進(jìn)行壓縮,這樣語音資源可以直接加載在單片機(jī)內(nèi)部的FLASH中,無需擴(kuò)展外部存儲(chǔ)器。采用較簡(jiǎn)單的自動(dòng)播報(bào)方式,分時(shí)播報(bào)個(gè)位,小數(shù)點(diǎn),十分位。需要注意的是:調(diào)用語音播報(bào)函數(shù)voice()返回主程序后,應(yīng)立即恢復(fù)對(duì)于系統(tǒng)時(shí)鐘及中斷的原始設(shè)置,否則會(huì)導(dǎo)致按鍵異常和中斷失效。
2.3 語音識(shí)別功能的軟件設(shè)計(jì)
語音識(shí)別功能主要完成:在按鍵選擇語音辨識(shí)后,通過提示音,輸入語音控制命令,經(jīng)單片機(jī)識(shí)別命令后控制系統(tǒng)產(chǎn)生相應(yīng)的動(dòng)作,從而實(shí)現(xiàn)語音控制的功能。
結(jié)合SPCE061A提供的特定人識(shí)別一次只能識(shí)別5個(gè)控制命令,而系統(tǒng)要求識(shí)別觸發(fā)命令及0-9的數(shù)字,所以程序設(shè)計(jì)時(shí)把需要識(shí)別的命令分為三組:
第一組:開始、正確、錯(cuò)誤
第二組:0-4
第三組:5.9
同時(shí)分配一部分FLASH存儲(chǔ)區(qū)來存放這三組命令。
3 系統(tǒng)測(cè)試結(jié)果
在本系統(tǒng)測(cè)試中設(shè)計(jì)了最大輸出功率為10W的語音數(shù)控直流穩(wěn)壓電源。在最大負(fù)載條件下,用PROTEK505型數(shù)字萬用表進(jìn)行測(cè)試,結(jié)果如下表1所示。
3.1 測(cè)試結(jié)果
最大輸出功率為10W的語音數(shù)控直流穩(wěn)壓電源。
3.2 測(cè)試結(jié)論
測(cè)試表明,系統(tǒng)的相對(duì)誤差的最大值為2%。由此可見,該系統(tǒng)可以滿足在相對(duì)誤差最大值小于2%的要求下應(yīng)用,同時(shí)具有了語音播報(bào)及語音識(shí)別的功能。
3.3 存在的問題和改進(jìn)方向
由于凌陽單片機(jī)提供的語音識(shí)別函數(shù)一次只能識(shí)別5個(gè)命令,因而程序編寫受到一定限制,導(dǎo)致語音控制的實(shí)現(xiàn)較為繁瑣。如果編寫自己的語音識(shí)別程序,則會(huì)大大簡(jiǎn)化語音控制過程,進(jìn)一步改善交互環(huán)境。
4 小結(jié)
采用16位單片機(jī)SPCE061A作為控制核心,不僅可以完成基本的控制功能,同時(shí)可以方便地使用其語音功能。在開發(fā)環(huán)境unSP1.16.1下,以在線仿真調(diào)試的方式快速地完成開發(fā)工作。
(審核編輯: 智匯胡妮)
分享