《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > LD3320的嵌入式語(yǔ)音識(shí)別系統(tǒng)的應(yīng)用
LD3320的嵌入式語(yǔ)音識(shí)別系統(tǒng)的應(yīng)用
電子設(shè)計(jì)工程,湖北師范學(xué)院
洪家平
摘要: 語(yǔ)音交互系統(tǒng)是比較人性化的人機(jī)操作界面,它需要語(yǔ)音識(shí)別系統(tǒng)的支持。LD3320就是這樣一款語(yǔ)音識(shí)別芯片。介紹了該芯片的工作原理及應(yīng)用,給出了LD3320與微處理器的硬件接口電路及軟件程序。隨著高檔MCU的不斷出現(xiàn),以MCU為核心的嵌入式語(yǔ)音交互系統(tǒng)會(huì)有非常好的應(yīng)用前景。
Abstract:
Key words :

1 概述
在現(xiàn)代社會(huì),“懶人科技”大行其道。當(dāng)面臨眾多繁瑣的按鍵操作和菜單選擇的時(shí)候,簡(jiǎn)單地說(shuō)出指令,是最具有人情味的人機(jī)操作界面。讓身邊的各種電子設(shè)備可“聽從”人類的語(yǔ)音,是從電影“星球大戰(zhàn)”就開始的科技發(fā)展目標(biāo)。雖然目前的科技還不能做到讓計(jì)算機(jī)完全理解人類的所有自然語(yǔ)音,但是可以在一定程度上實(shí)現(xiàn)這個(gè)夢(mèng)想。

2 特定人語(yǔ)音識(shí)別技術(shù)及原理
特定人語(yǔ)音識(shí)別(ASR,Auto Speech Recognition)技術(shù)是基于“關(guān)鍵詞語(yǔ)列表”的識(shí)別技術(shù),它是對(duì)大量的語(yǔ)音數(shù)據(jù)(相當(dāng)于對(duì)數(shù)千人采集的數(shù)萬(wàn)小時(shí)的有效聲音數(shù)據(jù))經(jīng)語(yǔ)言學(xué)家語(yǔ)音模型分析,建立數(shù)學(xué)模型,并經(jīng)過(guò)反復(fù)訓(xùn)練提取基元語(yǔ)音的細(xì)節(jié)特征,以及提取各基元間的特征差異,得到在統(tǒng)計(jì)概率最優(yōu)化意義上的各個(gè)基元語(yǔ)音特征,最后才由資深工程師將算法以及語(yǔ)音模型轉(zhuǎn)換成硬件芯片并應(yīng)用在嵌入式系統(tǒng)中。
ASR技術(shù)每次識(shí)別的過(guò)程就是把用戶說(shuō)出的語(yǔ)音內(nèi)容,通過(guò)頻譜轉(zhuǎn)換為語(yǔ)音特征,再將這個(gè)轉(zhuǎn)換后的語(yǔ)音特征和“關(guān)鍵詞語(yǔ)列表”中的條目一一進(jìn)行匹配,最優(yōu)匹配的一條即作為識(shí)別結(jié)果。比如ASR技術(shù)在語(yǔ)音控制的手機(jī)應(yīng)用中,這個(gè)“關(guān)鍵詞語(yǔ)列表”的內(nèi)容就是電話本中的人名、手機(jī)的菜單命令或手機(jī)存儲(chǔ)卡中的歌曲名字。不論這個(gè)列表的條目?jī)?nèi)容是什么,只需要用戶設(shè)置相關(guān)的寄存器,就可以把相應(yīng)的待識(shí)別條目?jī)?nèi)容以字符形式傳遞給識(shí)別引擎。
由此可見(jiàn),語(yǔ)音識(shí)別芯片完成的工作就是:把MIC(麥克風(fēng))輸入的聲音進(jìn)行頻譜分析后提取語(yǔ)音特征,再和關(guān)鍵詞語(yǔ)列表中的關(guān)鍵詞語(yǔ)進(jìn)行對(duì)比匹配,最后找出得分最高的關(guān)鍵詞語(yǔ)作為識(shí)別結(jié)果輸出。
通?;贏SR技術(shù)的語(yǔ)音識(shí)別芯片能在兩種情況下給出識(shí)別結(jié)果:
①外部送入預(yù)定時(shí)間的語(yǔ)音數(shù)據(jù)(比如5 s的語(yǔ)音數(shù)據(jù)),芯片對(duì)這些語(yǔ)音數(shù)據(jù)運(yùn)算分析后,給出識(shí)別結(jié)果。
②外部送入語(yǔ)音數(shù)據(jù)流,語(yǔ)音識(shí)別芯片通過(guò)端點(diǎn)檢測(cè)(VAD,Voice Activity Detection)技術(shù)檢測(cè)出用戶停止說(shuō)話,把用戶開始說(shuō)話到停止說(shuō)話之間的語(yǔ)音數(shù)據(jù)進(jìn)行運(yùn)算分析后,給出識(shí)別結(jié)果。
對(duì)于第一種情況,可以理解為設(shè)定了一個(gè)定時(shí)錄音(如5 s的語(yǔ)音數(shù)據(jù)),芯片在5 s后會(huì)停止把聲音送入識(shí)別引擎,并且根據(jù)已送入引擎的語(yǔ)音數(shù)據(jù)計(jì)算出識(shí)別結(jié)果。
對(duì)于第二種情況,需要了解VAD的工作原理:VAD技術(shù)是在一段語(yǔ)音數(shù)據(jù)流中,判斷出哪個(gè)時(shí)間點(diǎn)是人聲音的開始,哪個(gè)時(shí)間點(diǎn)是人聲音的結(jié)束。判斷的依據(jù)是,在背景聲音的基礎(chǔ)上有了語(yǔ)音發(fā)音,則視為聲音的開始。而后,檢測(cè)到一段持續(xù)時(shí)間的背景音(比如600 ms),則視為人聲說(shuō)話結(jié)束。通過(guò)VAD判斷出人聲說(shuō)話的區(qū)域后,語(yǔ)音識(shí)別芯片會(huì)把這期間的聲音數(shù)據(jù)進(jìn)行識(shí)別處理,計(jì)算出識(shí)別結(jié)果。
除了以上兩種情況外,語(yǔ)音識(shí)別算法無(wú)法“主動(dòng)”地判斷出是否識(shí)別出了一個(gè)結(jié)果。這是因?yàn)?,在?jì)算過(guò)程中的任何時(shí)刻,語(yǔ)音識(shí)別器都會(huì)對(duì)已送人識(shí)別芯片的聲音數(shù)據(jù)進(jìn)行分析,并根據(jù)匹配程度為識(shí)別列表中的關(guān)鍵詞語(yǔ)進(jìn)行打分,最匹配的打分最高。但是,由于識(shí)別算法不知道用戶后面是否還繼續(xù)說(shuō)話,所以無(wú)法主動(dòng)地判斷已經(jīng)識(shí)別出的結(jié)果。

3 語(yǔ)音識(shí)別芯片LD3320的工作原理
3.1 語(yǔ)音識(shí)別系統(tǒng)原理結(jié)構(gòu)
LD3320語(yǔ)音識(shí)別芯片采用的就是ASR技術(shù),圖1就是由LD3320和單片機(jī)(或嵌入式系統(tǒng))組成的語(yǔ)音識(shí)別系統(tǒng)原理框圖。圖中給出了LD3320的內(nèi)部原理結(jié)構(gòu),本文中選用的MCU是STC10L08XE單片機(jī)。

a.jpg


語(yǔ)音識(shí)別芯片LD3320是ICRoute公司的產(chǎn)品,它采用ASR技術(shù),提供了一種脫離按鍵、鍵盤、鼠標(biāo)、觸摸屏等GUI操作方式且基于語(yǔ)音的用戶界面VUI(Voice User Interface),使得用戶對(duì)該系統(tǒng)的操作更簡(jiǎn)單、快速和自然。
用戶只需要把識(shí)別的關(guān)鍵詞語(yǔ)以字符串的形式傳送進(jìn)芯片,即可以在下次識(shí)別中立即生效。比如,用戶在51等主控MCU的編程中,簡(jiǎn)單地通過(guò)設(shè)置芯片的寄存器,把諸如“你好”這樣的識(shí)別關(guān)鍵詞語(yǔ)的內(nèi)容動(dòng)態(tài)地傳入芯片中,芯片就可以識(shí)別所設(shè)定的關(guān)鍵詞語(yǔ)了。每個(gè)關(guān)鍵詞語(yǔ)可以是單字、詞組、短句或者任何的中文發(fā)音的組合?;贚D3320的語(yǔ)音識(shí)別系統(tǒng)可以隨著使用流程,在運(yùn)行時(shí)動(dòng)態(tài)地更改關(guān)鍵詞語(yǔ)列表的內(nèi)容,這樣可以用一個(gè)系統(tǒng)支持多種不同的場(chǎng)景,同時(shí)也不需要用戶作任何的錄音訓(xùn)練。
3.2 LD3320的用戶使用模式
LD3320有兩種用戶使用模式,即“觸發(fā)識(shí)別模式”和“循環(huán)識(shí)別模式”。用戶可以通過(guò)編程,設(shè)置兩種不同的用戶使用模式。
觸發(fā)識(shí)別模式:系統(tǒng)的主控MCU在接收到外界一個(gè)觸發(fā)后(比如用戶按動(dòng)某個(gè)按鍵),啟動(dòng)LD3320芯片的一個(gè)定時(shí)識(shí)別過(guò)程(比如5 s),要求用戶在這個(gè)定時(shí)過(guò)程中說(shuō)出要識(shí)別的語(yǔ)音關(guān)鍵詞語(yǔ)。這個(gè)過(guò)程結(jié)束后,需要用戶再次觸發(fā)才能再次啟動(dòng)一個(gè)識(shí)別過(guò)程。
循環(huán)識(shí)別模式:系統(tǒng)的主控MCU反復(fù)啟動(dòng)識(shí)別過(guò)程。如果沒(méi)有人說(shuō)話就沒(méi)有識(shí)別結(jié)果,則每次識(shí)別過(guò)程的定時(shí)到時(shí)后再啟動(dòng)一個(gè)識(shí)別過(guò)程;如果有識(shí)別結(jié)果,則根據(jù)識(shí)別作相應(yīng)處理后(比如播放某個(gè)聲音作為回答)再啟動(dòng)一個(gè)識(shí)別過(guò)程。

4 語(yǔ)音識(shí)別系統(tǒng)軟硬件設(shè)計(jì)
4.1 硬件系統(tǒng)設(shè)計(jì)
由圖l可知,由LD3320組成的語(yǔ)音識(shí)別系統(tǒng)硬件有單片機(jī)(或嵌入式系統(tǒng))及LD33202。圖2和圖3分別是由單片機(jī)STC10L08XE構(gòu)成的主控芯片和由LD3320A構(gòu)成的語(yǔ)音識(shí)別主系統(tǒng)。

b.jpg

c.jpg

4.2 軟件系統(tǒng)設(shè)計(jì)
語(yǔ)音識(shí)別的操作順序是:先進(jìn)行語(yǔ)音識(shí)別的初始化,然后寫入識(shí)別列表,系統(tǒng)即開始進(jìn)行語(yǔ)音識(shí)別,并準(zhǔn)備好中斷響應(yīng)函數(shù),打開中斷允許位。這里如果不用中斷方式,也可以通過(guò)查詢方式工作。在“開始識(shí)別”后,讀取寄存器B2H的值,如果為21H就表示有識(shí)別結(jié)果產(chǎn)生。
下面是語(yǔ)音識(shí)別的初始化程序段,按照以下序列來(lái)設(shè)置寄存器:
d.jpg
初始化后是寫入識(shí)別列表。識(shí)別列表的規(guī)則是:每個(gè)識(shí)別條目對(duì)應(yīng)一個(gè)特定的編號(hào)(1個(gè)字節(jié)),不同識(shí)別條目的編號(hào)可以相同,而且不用連續(xù)。LD3320芯片最多支持50個(gè)識(shí)別條目,每個(gè)識(shí)別條目是標(biāo)準(zhǔn)普通話的漢語(yǔ)拼音(小寫),每2個(gè)字(漢語(yǔ)拼音)之間用1個(gè)空格間隔。表1是一個(gè)簡(jiǎn)單的例子。

e.jpg

圖4是由LD3320組成的語(yǔ)音識(shí)別系統(tǒng)主程序流程,圖5是語(yǔ)音識(shí)別系統(tǒng)中斷服務(wù)程序流程。

f.jpg



5 聲控電視遙控器
聲控電視遙控器最有用的地方是,在更換頻道時(shí)可以直接說(shuō)出頻道名稱,而不是去記憶頻道名稱和頻道數(shù)字的聯(lián)系。同時(shí),在使用電視遙控器時(shí),遙控器是用電池工作,不能讓識(shí)別芯片一直處于工作狀態(tài)。因此在設(shè)計(jì)時(shí),可以在遙控器上設(shè)置一個(gè)大一點(diǎn)的按鍵,用戶在使用時(shí),按一下這個(gè)按鍵,啟動(dòng)LD3320語(yǔ)音識(shí)別芯片,此時(shí)可以播放一聲“嘀”的提示音,然后在限定的時(shí)間內(nèi)(如5s),接收用戶的語(yǔ)音命令,并給出識(shí)別結(jié)果。比如用戶說(shuō)“體育臺(tái)”,識(shí)別芯片把識(shí)別結(jié)果提供給遙控器的主控MCU。隨后遙控器的主控MCU就根據(jù)事先設(shè)定好的對(duì)應(yīng)關(guān)系,發(fā)出對(duì)應(yīng)頻道的紅外編碼,實(shí)現(xiàn)換臺(tái)。可以不加確認(rèn)過(guò)程直接換臺(tái)。圖6為聲控電視遙控器工作流程。

g.jpg



結(jié)語(yǔ)
這種語(yǔ)音識(shí)別系統(tǒng)也容易引起誤識(shí)別,如當(dāng)用戶說(shuō)的內(nèi)容不在識(shí)別列表內(nèi)時(shí),必然會(huì)引起誤識(shí)別。為了克服這些缺點(diǎn),降低誤識(shí)別率,可在設(shè)定好要識(shí)別的關(guān)鍵詞語(yǔ)后,再添加一些與識(shí)別列表內(nèi)的單詞有聯(lián)系的任意其他詞匯,用來(lái)吸收錯(cuò)誤識(shí)別,從而達(dá)到降低誤識(shí)別率的目的。
由LD3320組成的語(yǔ)音識(shí)別系統(tǒng)有很廣泛的應(yīng)用,如語(yǔ)音控制的點(diǎn)歌系統(tǒng)、語(yǔ)音控制的手機(jī)、音控智能導(dǎo)航儀、音控智能家電產(chǎn)品等。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。