Linux上的語音識別軟件
Linux系統(tǒng)下的語音控制軟件可以為身患?xì)埣不蛴捎谶^度使用計算機(jī)而患計算機(jī)綜合癥的人提供使用Linux系統(tǒng)的機(jī)會。此前他們不得不改裝其它的操作系統(tǒng),以獲得語音識別技術(shù)支持。即使不考慮特殊因素,普通人也可以通過使用語音識別軟件,使操作計算機(jī)變得更為簡單有趣。盡管本文對語音識別系統(tǒng)未來的發(fā)展趨勢深表憂慮(原因是它們并不能完全把手解放出來),但是它們的確可以分擔(dān)一部分手的工作。
目前已經(jīng)有兩種套裝軟件中含有支持Linux系統(tǒng)的語音控制軟件。一種是IBM 開發(fā)的支持Linux的ViaVoice,它可以提供一些基本的語音識別功能;另一種是GPL下的Xvoice,它通過ViaVoice庫來為桌面系統(tǒng)和應(yīng)用程序提供語音控制功能。
IBM 的Linux ViaVoice是美語版本,目前只在美國和加拿大銷售。它的售價大約是40美元,包括送貨費(fèi)和一副耳機(jī)。用戶也可以從IBM的網(wǎng)站上下載ViaVoice,并可享受一定的價格優(yōu)惠。新版本的ViaVoice在Mandrake 8.0 PowerPack和ProSuite中也可以找到。目前,Mandrake ViaVoice既可以支持英國英語,也可以支持美國英語、法語和德語。Mandrake 8.0以后的版本將不再包含ViaVoice。本文將著重介紹IBM ViaVoice的安裝和使用。
應(yīng)用ViaVoice
Linux ViaVoice需要機(jī)器的配置為:Pentium MMX 233以上的CPU、128MB的內(nèi)存,以及16位的聲卡。實際上,ViaVoice是專門為Red Hat 6.2設(shè)計開發(fā)的,但是用戶在Red Hat 7.3環(huán)境和其它Linux版本中也可以正常地運(yùn)行ViaVoice。當(dāng)然用戶也有可能在安裝過程中遇到一些問題。
在安裝ViaVoice語音識別軟件前,要首先安裝Java運(yùn)行環(huán)境。ViaVoice 1.0和1.1版本是在JRE-1.2.2環(huán)境下進(jìn)行測試的。使用正確的版本可以避免在不同JRE環(huán)境下的不兼容。
JRE安裝完畢后,將安裝盤放入光驅(qū)并運(yùn)行根目錄下的vvsetup,然后再運(yùn)行vvstartuser將自己設(shè)為ViaVoice用戶,并且設(shè)置好適當(dāng)?shù)囊袅浚詈蟊闶欠磸?fù)練習(xí),使軟件適應(yīng)自己的聲音。切記安裝順序決不能顛倒。
“調(diào)教”ViaVoice
與其它語音識別軟件一樣,第一次安裝的ViaVoice并不能對用戶的聲音識別得十分準(zhǔn)確。使用者必須對它進(jìn)行一番“調(diào)教”,然后才能使它識別使用者的聲音。
“調(diào)教”ViaVoice的一種方法就是按照用戶手冊中的詞語反復(fù)的朗讀。對于大多數(shù)用戶來說,這一點(diǎn)并不難,但是手冊中的詞語也許并不是用戶經(jīng)常用到的,因此這個方法的效率并不是很高。
比較好的方法是在工作時利用ViaVoice的Dictation應(yīng)用軟件。它是用Java語言寫成的。當(dāng)用戶進(jìn)行口述時,一些詞語也許不能被正確識別,當(dāng)這種情況發(fā)生時,用戶可以使用Dictation中的適當(dāng)工具對其進(jìn)行修改。這樣ViaVoice便可以對識別工具進(jìn)行修正,以便更精確地識別用戶的聲音。這種方法也許會花費(fèi)較多的力氣,但是類似的修改可以用語音命令來完成。不過請注意隨時存盤,因為Dictation并不十分穩(wěn)定。
曾經(jīng)有一位專家說,目前的語音識別軟件只要經(jīng)過10到60小時的“調(diào)教”,便可以達(dá)到98%的正確率。但是到目前為止,對Linux環(huán)境下的ViaVoice進(jìn)行測試的結(jié)果是,它的正確率只有92%到95%,絕大多數(shù)的語音命令都可以被正確識別。即使用戶只花費(fèi)幾個小時進(jìn)行練習(xí),也可以發(fā)現(xiàn)ViaVoice的正確率明顯提高。不過用戶在使用時要特別注意,詞語的發(fā)音、麥克風(fēng)的質(zhì)量和周圍環(huán)境都會影響語音識別的正確率。
XVoice控制Linux桌面
當(dāng)用戶完成ViaVoice的安裝并訓(xùn)練了一段時間后,便可以安裝Xvoice了。Xvoice的作用是對桌面系統(tǒng)及應(yīng)用軟件進(jìn)行控制。ViaVoice則沒有這些功能。用戶可以到xvoice.sourceforge.net去下載Xvoice軟件,注意一定要事先安裝RPM,因為源程序需要Linux SDK中的ViaVoice中斷運(yùn)行。
安裝完成后,在最后出現(xiàn)的窗口中輸入xvoice m,注意不要運(yùn)行Dictation。這時用戶可以做一個簡單的測試,口述命令“下一窗口”,桌面上應(yīng)該出現(xiàn)另一個窗口。
Xvoice允許用戶事先設(shè)定好一些操作的口述命令。一套口述命令被稱為一個語法組。語法組可以與確定的應(yīng)用程序、窗口或者應(yīng)用程序中的某一模塊聯(lián)系在一起,也可以由上下文產(chǎn)生。由口述命令調(diào)用的操作可以包括敲鍵盤、鼠標(biāo)事件、運(yùn)行外部命令或三者的任意結(jié)合。
Xvoice使用ViaVoice語音庫來識別命令和常規(guī)文字。xvoice.xml配置文件可以對命令進(jìn)行定義。Xvoice使用標(biāo)準(zhǔn)的配置文件,其位置是/usr/share/xvoice/xvoice.xml。當(dāng)然用戶也可以對其位置進(jìn)行修改,例如可以改為~/.xvoice/xvoice.xml。
Xvoice的窗口可以顯示哪一個命令語法是被擊活的,并且窗口中還包括一個面板可以顯示最近口述的命令。如果Xvoice認(rèn)為用戶口述的一些詞語與某個命令十分相似難以識別,那么在面板中顯示的這一命令將是灰色的,以便提醒用戶,并且這條命令不會被執(zhí)行。
對于任何應(yīng)用程序窗口,Xvoice都有4種不同的狀態(tài)。在命令模式下,Xvoice只對命令進(jìn)行識別;在聽寫模式下,Xvoice不識別特定的應(yīng)用程序命令,只是顯示出它能識別的詞語;在空閑模式下,只有一般命令可以被識別;最后,在命令和聽寫模式下,口述詞語和命令都可以被識別,這時用戶需要在命令的前后稍加停頓,以便與文本相區(qū)別。
當(dāng)用戶第一次運(yùn)行某一應(yīng)用程序時,Xvoice會自動啟動命令模式。如果用戶想同時打開聽寫模式,只需要說“聽寫模式”便可以了;如果想關(guān)閉聽寫模式,也只需要說“停止聽寫模式”就萬事大吉了。
當(dāng)然,最好的方法是將Xvoice窗口置于系統(tǒng)的窗口管理器中,這樣你就可以隨時了解它的工作情況了。如果你想在開機(jī)時便自動運(yùn)行Xvoice,只要將xvoice m 放入窗口管理器的啟動程序中就行了。
聲控應(yīng)用程序
下面來看一看如何為應(yīng)用程序定義語法。首先,將要定義語法的軟件定義為一個可讀的名字,然后為程序的窗口命名一個語句,這樣Xvoice便可以識別哪個語法命令是要激活的。在第一行,可以看到一個特殊的固定應(yīng)用程序名,而它并不是窗口標(biāo)題。這一特殊的應(yīng)用程序名必須上下文統(tǒng)一。
應(yīng)用程序的標(biāo)簽中包含有聽寫屬性。如果條件為真,則首次運(yùn)行語句時,Xvoice自動進(jìn)入聽寫模式。語句的第二行包含有一些在<define name='numbers'>區(qū)中已經(jīng)定義過的值。用戶可以在定義區(qū)中自行定義標(biāo)記,并應(yīng)用于整個配置文件中。
語句的第3行舉例說明定義區(qū)內(nèi)可以包含的內(nèi)容,而這里的命令標(biāo)記只能在本命令范圍內(nèi)使用。這一行的主要作用是通過語音命令各自的箭頭鍵將彼此互聯(lián)系起來。當(dāng)執(zhí)行命令時,系統(tǒng)會將語音命令與相應(yīng)的鍵盤命令對應(yīng)起來。語音命令的識別轉(zhuǎn)換過程從第4行語句開始。第4行到第8行都是與鍵盤操作相關(guān)的語句,與鼠標(biāo)相關(guān)的語句在第9行到第15行,第16行到第22行是與其它應(yīng)用程序相關(guān)的命令語句,第23行是結(jié)束行。
通過對個人配置文件的編輯,用戶幾乎可以自動完成過去需要鍵盤和鼠標(biāo)才能完成的所有操作過程。許多普通應(yīng)用軟件的語法組,事先已經(jīng)包含在缺省的配置文件中了,成為用戶良好的范例。
語音識別的發(fā)展
Xvoice無法控制一些特殊的應(yīng)用軟件和一些主流游戲軟件。對于一些諸如GIMP和Netscape軟件來說,雖然Xvoice可以對其進(jìn)行控制,但是由于此類軟件需要大量的鼠標(biāo)操作,用戶會對用語音控制鼠標(biāo)感到十分厭煩。
雖然語音識別軟件對于大多數(shù)命令和一般的文本都可以正確地識別,但是在某些情況下,即使是一個微小的錯誤也是不允許。語音軟件的使用者必須使自已的聲音保持穩(wěn)定。
另外,雖然XVoice 和ViaVoice可以完成大量的工作,但是用戶卻無法通過聲音控制整個Linux桌面環(huán)境。
IBM公司已經(jīng)發(fā)布了新的ViaVoice,但是只支持Mac 和Windows,未來是否能支持Linux目前尚不確定。Xvoice的開發(fā)人員們正在努力尋找一種能支持開放系統(tǒng)的替代產(chǎn)品,而不希望再為Xvoice增加新的功能了。
賽迪網(wǎng) 中國信息化(industry.ccidnet.com)