羅冬梅 黃賢立
摘要:語音識別技術(shù)應(yīng)用于專題學(xué)習(xí)網(wǎng)站的開發(fā),在改善人機(jī)交互界面的同時(shí)提高了學(xué)習(xí)者的學(xué)習(xí)興趣,并為實(shí)現(xiàn)學(xué)習(xí)內(nèi)容的智能語音控制奠定了基礎(chǔ)。論文介紹了基于語音識別技術(shù)的專題學(xué)習(xí)網(wǎng)站的設(shè)計(jì)與開發(fā),對一些關(guān)鍵技術(shù)和問題進(jìn)行了探討。
關(guān)鍵詞:語音識別 自然用戶界面 學(xué)習(xí)檔案查看
中圖分類號:TP311.56 文獻(xiàn)標(biāo)識碼:B 文章編號:1673-8454(2009)21-0072-03
專題學(xué)習(xí)網(wǎng)站的本質(zhì)是一個(gè)基于網(wǎng)絡(luò)資源的專題研究、協(xié)作式學(xué)習(xí)系統(tǒng),它通過在網(wǎng)絡(luò)學(xué)習(xí)環(huán)境中,向?qū)W習(xí)者提供大量的專題學(xué)習(xí)資源和協(xié)作學(xué)習(xí)交流工具,讓學(xué)習(xí)者自己選擇和確定研究的課題或項(xiàng)目,自己收集、分析并選擇信息資料,應(yīng)用知識去解決實(shí)際問題。專題學(xué)習(xí)網(wǎng)站是人-機(jī)交互的系統(tǒng),在這系統(tǒng)中,如何實(shí)現(xiàn)與提高網(wǎng)絡(luò)和計(jì)算機(jī)的智能化程度是目前教育技術(shù)領(lǐng)域的一個(gè)重大課題。人工智能領(lǐng)域中的Agent技術(shù)的出現(xiàn),為實(shí)現(xiàn)這一目標(biāo)提供了良好的契機(jī)?;谡Z音識別技術(shù)的專題學(xué)習(xí)網(wǎng)站可以提供友好的自然用戶界面(NUI),有效地把語音與其他媒體相結(jié)合,充分調(diào)動了學(xué)生學(xué)習(xí)的積極性和主動性。
一、語音識別技術(shù)概述
語音識別是機(jī)器自動語音識別(Automatic Speech Recognition by Machine)的簡稱,就是使得設(shè)備可以聽懂用戶的話,識別又分為篇章級識別和命令詞識別,目前在嵌入式領(lǐng)域發(fā)展比較成熟的只有命令詞識別。[1]語音識別就像給設(shè)備安裝了耳朵,讓設(shè)備可以聽懂用戶的命令,并且執(zhí)行相應(yīng)的命令,解決了人們在操作各種終端設(shè)備時(shí)只能使用手動按鍵方式的問題。
目前主流的語音識別技術(shù)是基于統(tǒng)計(jì)模式識別的基本理論。一個(gè)完整的語音識別系統(tǒng)可大致分為三部分:(1)語音特征提取:其目的是從語音波形中提取出隨時(shí)間變化的語音特征序列。(2)聲學(xué)模型與模式匹配(識別算法):聲學(xué)模型通常將獲取的語音特征通過學(xué)習(xí)算法產(chǎn)生。在識別時(shí)將輸入的語音特征同聲學(xué)模型(模式)進(jìn)行匹配與比較,得到最佳的識別結(jié)果。(3)語音模型與語言處理:語言模型包括由識別語音命令構(gòu)成的語法網(wǎng)絡(luò)或由統(tǒng)計(jì)方法構(gòu)成的語言模型,語言處理可以進(jìn)行語法、語義分析。[2] 語音識別的基本流程如圖1所示。
二、語音識別技術(shù)在專題學(xué)習(xí)網(wǎng)站中的應(yīng)用
1.應(yīng)用分析
目前國內(nèi)已有的專題學(xué)習(xí)網(wǎng)站基本都是采用GUI(圖形用戶界面)方式,沒有網(wǎng)站提供NUI(自然用戶界面)。人-機(jī)交互的方式局限于學(xué)習(xí)者通過鍵盤、鼠標(biāo)外設(shè)與系統(tǒng)進(jìn)行信息傳遞。學(xué)習(xí)者無法使用語音與系統(tǒng)進(jìn)行交互信息,導(dǎo)航技術(shù)主要是通過點(diǎn)擊地址鏈接內(nèi)容條,沒有提供語音導(dǎo)航系統(tǒng)。語音識別技術(shù)的應(yīng)用可以改變傳統(tǒng)的GUI圖形用戶界面,從而轉(zhuǎn)向自然用戶界面,使得用戶能夠以自然語言直接和計(jì)算機(jī)進(jìn)行交流。如果將這一技術(shù)應(yīng)用于學(xué)習(xí)網(wǎng)站的設(shè)計(jì)開發(fā)過程中,將實(shí)現(xiàn)網(wǎng)站中人機(jī)交互方式和導(dǎo)航方式的轉(zhuǎn)變。
ASP.NET可以用來制作精良的網(wǎng)絡(luò)教學(xué)課件和專題學(xué)習(xí)網(wǎng)站,但它本身并不能夠?qū)崿F(xiàn)語音識別,我們可以將MS Agent組件運(yùn)用到ASP.NET中用以實(shí)現(xiàn)這一技術(shù)。作為一種軟件代理工具,Agent以其強(qiáng)大的交互功能、鮮明的人性特點(diǎn)、優(yōu)美的操作界面和簡便統(tǒng)一的編程方法,對由菜單、按鈕、提示框等組成的傳統(tǒng)人機(jī)交互方式產(chǎn)生了很大影響,在多媒體創(chuàng)作、Web應(yīng)用、教育軟件、軟件幫助系統(tǒng)和輔助工具制作等方面,具有廣闊的應(yīng)用前景。
2.實(shí)現(xiàn)方法
MS Agent組件提供了IAgentCtlCharacter接口,根據(jù)該接口我們可以使用其中的成員Commands類,從而進(jìn)一步訪問IAgentCtlCommandsEx接口。語音識別技術(shù)主要是通過以下IAgentCtrlCommandsEx接口中的各類方法實(shí)現(xiàn)的。
(1)Add方法
該方法目的是增加一個(gè)Command對象至Commands類的集合中,它的使用格式是:
Agent.Characters(″CharacterID″).Commands.Add Name,Caption,Voice,Enabled, Visible
其中Name表示新建類的內(nèi)部索引標(biāo)識,Caption表示命令的顯示文字,Voice是語音的讀音表示,用戶就是通過第三個(gè)參數(shù)來與助手進(jìn)行語音交互的。例如″hello peedy″,如果用戶直接對準(zhǔn)麥克風(fēng)說″hello peedy″,系統(tǒng)將會自動執(zhí)行相關(guān)命令。但是我們也可以做這樣的設(shè)置,使用戶可以不必只說出上述一種命令,如可以說″hi peedy″、 ″peedy″等都可以執(zhí)行同樣的命令。要完成這樣的功能,我們只要將參數(shù)voice稍加修改即可,如:″[(hello|hi)] peedy″。這樣用戶就可以使用三種狀態(tài)的命令來與助手進(jìn)行交互了。這里[]表示可選項(xiàng),()規(guī)定范圍,而|表示邏輯或。后兩個(gè)參數(shù)分別表示該命令是否可用與是否可見,默認(rèn)狀態(tài)下值為true,表示既可用也可見。
(2)RemoveAll方法
從類集合中移除所有的Command類,通常我們在最初使用這條語句進(jìn)行初始化,具體格式如下:
Agent.Characters (″CharacterID″).Commands.RemoveAll( )
(3)GlobalVoiceCommandsEnabled屬性
該屬性是布爾類型,返回或設(shè)置Agent公共命令(global commands)是否可用,具體格式如下:
Agent.Characters(″CharacterID″).Commands.Global-VoiceCommandsEnabled[=Boolean]
MS Agent公共命令包括打開、關(guān)閉語音命令窗口,以及顯示、隱藏助手等命令:open commands windows、close commands windows、hide、peedy(助手名)。執(zhí)行上述命令后,這些公共命令將自動增加進(jìn)類集合中。
(4)VoiceCaption屬性
該屬性用于在語音命令窗口中返回或設(shè)置所顯示的Commands類名。具體格式如下:
Agent.Characters(″CharacterID″).Commands.Voice-Caption[=string]
在語音識別開始時(shí),將會出現(xiàn)Listentips窗口,其中就會提示用戶輸入VoiceCaption里的各個(gè)命令。
在對以上Commands類的方法與屬性進(jìn)行設(shè)置前,還需對助手的Listen方法進(jìn)行設(shè)置,具體格式為:
Agent.Characters(″CharacterID″).Listen State
State值為true時(shí),表示打開助手接聽狀態(tài);為false時(shí),表示關(guān)閉助手接聽狀態(tài)。通常打開接聽狀態(tài)時(shí)間會定在10秒,10秒后系統(tǒng)自動關(guān)閉接聽狀態(tài)。
三、基于語音識別的專題學(xué)習(xí)網(wǎng)站設(shè)計(jì)與開發(fā)
1.語音識別模式選擇
語音識別通??梢苑譃閮煞N工作模式。一種是命令控制模式,即劃分范圍監(jiān)聽,制定一組被選項(xiàng),語音輸入被反饋成最為接近的一個(gè)選項(xiàng),這個(gè)方式下語音識別引擎可以識別簡短的語音命令,以便執(zhí)行相應(yīng)的程序;另外一種是連續(xù)聽寫模式,這個(gè)模式下語音識別引擎要識別連續(xù)的語音,這種功能實(shí)現(xiàn)起來比語音控制更復(fù)雜,因?yàn)檎Z音聽寫過程中需要對上下文以及相同相似發(fā)音的詞語進(jìn)行分析、做出判斷,識別率沒有前一種方式高。[3]
在專題學(xué)習(xí)網(wǎng)站中應(yīng)用語音識別技術(shù)主要在其導(dǎo)航系統(tǒng)的設(shè)計(jì)中,多為簡短命令的控制與識別,因此較適合采用命令控制識別模式,可達(dá)到較高的識別率。
2.系統(tǒng)功能模塊設(shè)計(jì)
基于語音識別的導(dǎo)航系統(tǒng),其目的是最大限度地開發(fā)人機(jī)自然交互方式,它采用微軟的Ms Agent技術(shù),結(jié)合基于微軟的SAPI語音識別開發(fā)平臺進(jìn)行設(shè)計(jì),用戶只需說出自己的下一步操作關(guān)鍵詞,就能立刻進(jìn)入下一級界面。例如,在學(xué)習(xí)評價(jià)模塊,用戶只要選擇評價(jià)主體,就可以實(shí)現(xiàn)對同組成員的學(xué)習(xí)評價(jià),也可以進(jìn)入用戶自我評價(jià)界面。本論文所開發(fā)的專題學(xué)習(xí)網(wǎng)站共包括四大部分:學(xué)習(xí)特征記錄、學(xué)習(xí)檔案查看、學(xué)習(xí)過程、學(xué)習(xí)評價(jià)等(如圖2所示),均采用了語音識別導(dǎo)航技術(shù)。
現(xiàn)以學(xué)習(xí)檔案查看模塊為例,學(xué)習(xí)檔案查看模塊的主要功能是根據(jù)學(xué)習(xí)者檔案數(shù)據(jù)庫中最近一次的學(xué)習(xí)完成情況做出判斷,學(xué)習(xí)者也可以通過語音命令決定是否完成上一次學(xué)習(xí)內(nèi)容。學(xué)習(xí)者可以看到上一次學(xué)習(xí)的具體情況。如果學(xué)習(xí)者第一次使用本系統(tǒng),界面中將會提示“無學(xué)習(xí)記錄”。
在該模塊的設(shè)計(jì)中,用戶可以和助手進(jìn)行語音交流,并根據(jù)命令的不同,觸發(fā)不同的事件,這個(gè)事件是由MS Agent的command事件完成,偽代碼如下:
<%
myAgent.Characters.character("peedy").Commands.Visible = true
myAgent.Characters.character("peedy").Commands.Add "hello1", "hello,peedy", "hello[peedy]"
myAgent.Characters.character("peedy").Commands.Add "skip1", "skip", "skip"
myAgent.Characters.character("peedy").listen(false)
myAgent.Characters.character("peedy").Commands.GlobalVoiceCommandsEnabled=true
myAgent.Characters.character("peedy").Commands.Voicecaption="Mycommand"
Sub agent_Command(ByVal UserInput)
if userinput.name="hello1" then
myAgent.Characters.character("peedy").listen(true)
myAgent.Characters.character("peedy").speak "hello,maisie"
myAgent.Characters.character("peedy").speak "這是上一次的學(xué)習(xí)內(nèi)容,要跳過嗎?"
end if
if userinput.name="skip1" then
window.location="new.aspx"
end if
end sub
%>
四、結(jié)束語
基于語音識別的專題學(xué)習(xí)網(wǎng)站已經(jīng)開發(fā)完成,經(jīng)初步測試,語音命令導(dǎo)航在學(xué)習(xí)過程中取得了很好的效果,改善人機(jī)交互界面的同時(shí)還提高了學(xué)習(xí)者的學(xué)習(xí)興趣,抓住了學(xué)生的感官和思維,尤其是一些特殊人群,如手靈活性不高或有殘疾的學(xué)習(xí)者,可以通過語音方式進(jìn)行導(dǎo)航。當(dāng)然,系統(tǒng)仍有待進(jìn)一步完善,由于微軟提供的語音庫還沒有包含中文語音,因此,目前開發(fā)的網(wǎng)站還僅限于英文語音識別。另外,網(wǎng)站中對內(nèi)容的學(xué)習(xí)與智能語音控制還有待進(jìn)一步研究。
參考文獻(xiàn):
[1]馬志欣,王宏,李鑫.語音識別技術(shù)綜述[J].昌吉學(xué)院學(xué)報(bào),2006(3).
[2]于衛(wèi)紅.基于MS Agent的語音識別與合成[J].電腦編程技巧與維護(hù),2008(18).
[3]童強(qiáng).用Delphi實(shí)現(xiàn)基于SAPI的電腦語音控制應(yīng)用程序[J].微計(jì)算機(jī)信息,2006(3).
(編輯:金冉)