鄭樂一 趙永根 浙江大學(xué)附屬兒童醫(yī)院 信息科 (浙江 杭州 310006)
內(nèi)容提要: 文章的主要內(nèi)容是語音識別與控制。控制系統(tǒng)是基于單片機(jī)及其他外圍器件與電路,模擬多種醫(yī)院醫(yī)療設(shè)備、患者病房服務(wù)設(shè)備、機(jī)電、電子、測控等器件,使其能在語音指令下工作。具體組成由語音識別軟件、單片機(jī)系統(tǒng)、語音芯片等組成的語音識別與控制、語音播放綜合系統(tǒng)。試驗(yàn)表明該系統(tǒng)能基本達(dá)到人機(jī)交流與控制的目的。
生活中,人們通過語言互相交流。用機(jī)器和人之間通過語言進(jìn)行交流,這是人們的一個夢想,語音技術(shù)是機(jī)器領(lǐng)域中未來發(fā)展的一個方向。人與機(jī)器交流的過程是最好的信息交換手段,人與機(jī)器語音對話可使控制效率提高,其綜合應(yīng)用前景非常好。語音識別技術(shù)的內(nèi)容比較多,包括信號處理、模式識別、聽與說機(jī)制、人工智能等。語音識別分為獨(dú)立與連續(xù)語音識別系統(tǒng)、特定語音識別和非特定語音識別。其中,獨(dú)立字詞發(fā)聲比較容易識別,連續(xù)句因字詞之間因無停頓,識別檢測比較困難[1]。
漢語有近千個左右音節(jié),若不考慮聲調(diào),約有數(shù)百個音節(jié)。漢語每個字的音節(jié)是由聲母和韻母組成,韻母決定了聲音的聲調(diào)變化。
漢語具有獨(dú)特的四聲調(diào)特性,即漢語的每個字都有四種不同的聲調(diào),同一個字在不同的上下文語境中又會有不同的韻律特征。
在實(shí)際漢語語音環(huán)境中,常把聲母根據(jù)后續(xù)韻母的不同再細(xì)分,并把韻母根據(jù)聲調(diào)的變化也繼續(xù)細(xì)分[2]。
在漢語語音識別環(huán)境中,語音識別單元的選取與英文不同。英文系統(tǒng)一般采用音素做識別單元,而漢語一般采用音節(jié)做識別單元?;谝艄?jié)的構(gòu)成的模型庫不是非常龐大,因此即使在大詞匯量的語音識別系統(tǒng)中,也可以采用音節(jié)作為語音識別單元。
本系統(tǒng)基本上實(shí)現(xiàn)了語音識別和控制為目的的設(shè)計(jì)要求,同時具有語音播音功能,使系統(tǒng)具有了基本人機(jī)對話能力。
本系統(tǒng)設(shè)計(jì)是用語音控制單片機(jī)實(shí)現(xiàn)功能的一個系統(tǒng),該系統(tǒng)以少量的語音指令達(dá)到了控制單片機(jī)與其外圍器件功能。系統(tǒng)由軟件和硬件兩部分構(gòu)成。
軟件部分:用delphi開發(fā)的語音識別和串口通訊軟件組成,串口通訊部分使用了spcomm控件;另外是微軟語音開發(fā)引擎,該引擎集成了語音合成、識別、訓(xùn)練等功能,擁有微軟自己開發(fā)的語音庫,經(jīng)過訓(xùn)練后的語音識別精度比較高。
硬件部分:由串/并轉(zhuǎn)接口;語音芯片、雙向模擬開關(guān)、麥克風(fēng)、揚(yáng)聲器等組成;再由發(fā)光二極管模擬顯示外圍器件功能[3]。
該系統(tǒng)是由軟硬件結(jié)合方式進(jìn)行一般的語音識別,通過串/并行口通信,實(shí)行對單片機(jī)控制。實(shí)現(xiàn)發(fā)光二極管發(fā)亮,語音輸出,實(shí)現(xiàn)控制計(jì)算機(jī)外圍設(shè)備的目的,達(dá)到人機(jī)對話智能化要求。存儲語音芯片里的語音會永久保存。本系統(tǒng)若經(jīng)過延伸應(yīng)用范圍會非常廣泛。
微軟中提供了語音引擎是需安裝過的。即需要經(jīng)過配置和語音訓(xùn)練,為了能準(zhǔn)確識別語音,讓它先熟悉你的聲音。
語音引擎的調(diào)用類似于自動化服務(wù)器。①從文字到語音,SpVoice的功能是把文字轉(zhuǎn)化為語音。②從語音到文字,SpSharedRecoContext的功能是實(shí)現(xiàn)語音輸入[4]。
對語音識別引擎,在語音屬性控制面板上有相關(guān)選項(xiàng),來進(jìn)行配置,如語音屬性圖。
此外還須對麥克風(fēng)進(jìn)行配置,使得麥克風(fēng)能正常工作,如麥克風(fēng)向?qū)D。
為了提高語音識別的認(rèn)知率,是要對語音引擎進(jìn)行反復(fù)訓(xùn)練,提高識別效率,如測試安放位置圖。同時在操作過程中注意背景噪音的問題。見圖1~3。
在系統(tǒng)中使用Delphi語言, 這是一種方便、快捷的應(yīng)用程序開發(fā)工具,是在微軟系統(tǒng)圖形用戶界面中進(jìn)行編程操作,是目前較好的一類編輯器。
需要注意的是Delphi不帶串口通信控件,若使用Delphi實(shí)現(xiàn)通信目的,是要利用控件,或使用API函數(shù),或調(diào)用其他串口通信程序來達(dá)到。見圖4。
控制軟件主程序
#include "declare.h"
圖1. 語音屬性對話框
系統(tǒng)由單片機(jī)控制及語音模塊、二極管發(fā)光功能模塊、串口通信模塊組成。并在單片機(jī)和語音芯片中間設(shè)計(jì)一個雙向模擬開關(guān),這樣語音芯片的相關(guān)引腳才能正常工作[5]。
發(fā)光二極管是代替外設(shè)功能的應(yīng)用,由單片機(jī)控制。若接繼電器接到二極管,就可以擴(kuò)展其功能,達(dá)到單片機(jī)控制外設(shè)功能的目的。串行口通信部分由轉(zhuǎn)接口和LM485芯片組成。
圖2. 調(diào)整音量
圖3. 測試安放位置
圖4. 控制流程圖
圖7. 發(fā)光二極管功能模塊電路圖
圖8. 通信模塊電路
圖9. 系統(tǒng)工作流程圖
圖5. 語音芯片的A口操作模式和地址模式的功能表
圖6. 單片機(jī)控制放音模塊的電路
由單片機(jī)、雙向開關(guān)、語音芯片組成。單片機(jī)P1口連接語音芯片的A口,下表是語音芯片的A口操作模式和地址模式的功能表。見圖5。
本系統(tǒng)選擇的是地址工作模式。
首先,對語音芯片錄語音信息,在仿真器中,打開語音芯片的相應(yīng)地址(A口地址),然后,調(diào)節(jié)REC引腳高低電平,進(jìn)行錄音和放音系統(tǒng)試驗(yàn)調(diào)整,直至達(dá)到要求止。見圖6。
經(jīng)語音識別后,再經(jīng)由單片機(jī)控制其他外圍器件的功能,若換用繼電器件或其他數(shù)字開關(guān)取代發(fā)光二極管,相應(yīng)就可以控制其他弱電設(shè)備和一般強(qiáng)電設(shè)備,達(dá)到利用語音控制某些醫(yī)療設(shè)備、患者服務(wù)設(shè)備和裝置、機(jī)電與電子設(shè)備、測控類儀器的目的。電路見圖7。
單片機(jī)接到串口發(fā)送的數(shù)據(jù)時,單片機(jī)程序響應(yīng),開始判斷傳過來的數(shù)據(jù),并與存儲的數(shù)據(jù)進(jìn)行比較,當(dāng)符合響應(yīng)要求的時候,單片機(jī)相應(yīng)控制口應(yīng)為高電平,此時語音芯片的相應(yīng)口為低電平,則放送的是錄音地址口的語音,且相應(yīng)二極管導(dǎo)通發(fā)亮;當(dāng)識別出信號是“否”的時候,單片機(jī)另一相應(yīng)控制口為高電平時,此時語音芯片放送的是另一相應(yīng)地址的語音,且相對應(yīng)二極管將導(dǎo)通發(fā)亮。電路見圖8[6]。
見圖9。
由單片機(jī)語音控制其他外圍機(jī)器,包括各種醫(yī)療設(shè)備、患者服務(wù)設(shè)備、機(jī)電、電子、測控等器件,能讓它在人們語音指令下工作,是研究者希望達(dá)到的目的,本語音控制系統(tǒng)的測試結(jié)果基本達(dá)到了初始設(shè)計(jì)要求。即可實(shí)現(xiàn)用單片機(jī)控制、語音識別、發(fā)光二極管模擬機(jī)器功能的目的[7]。
在實(shí)際中若用相關(guān)器件或者數(shù)字開關(guān)取代發(fā)光二極管,即可控制相應(yīng)的弱電設(shè)備和一般的強(qiáng)電設(shè)備工作。