陳景達(dá) 郭麗霞
(上海航空電器有限公司 上海市 200040)
語(yǔ)音識(shí)別處理軟件的主要功能是飛行員通過(guò)油門桿上的DOI選擇開關(guān)控制語(yǔ)音采集使能開關(guān),啟動(dòng)或關(guān)閉機(jī)載語(yǔ)音識(shí)別處理設(shè)備;機(jī)載語(yǔ)音識(shí)別處理設(shè)備啟動(dòng)后,飛行員說(shuō)出語(yǔ)音指令,機(jī)載語(yǔ)音識(shí)別處理設(shè)備將識(shí)別的結(jié)果通過(guò)相應(yīng)的總線將識(shí)別結(jié)果上報(bào)給飛行的各個(gè)設(shè)備,飛行員通過(guò)顯示結(jié)果判斷識(shí)別結(jié)果的正確并進(jìn)行相應(yīng)的處理。目前飛機(jī)上在語(yǔ)音識(shí)別使用的指令為信息調(diào)顯調(diào)類和狀態(tài)變更類的短指令如“引導(dǎo)”、“降級(jí)”、“機(jī)場(chǎng)”等,該類短指令只需要飛行員在使能開關(guān)時(shí)說(shuō)出相應(yīng)的指令,松開開關(guān)時(shí)上報(bào)識(shí)別結(jié)果即可。
隨著語(yǔ)音識(shí)別控制功能在飛機(jī)上的持續(xù)應(yīng)用,系統(tǒng)對(duì)語(yǔ)音指令的需求量不斷的加大,語(yǔ)音指令的種類也隨之增加,因此除了信息調(diào)顯調(diào)類和狀態(tài)變更類的短指令外,增加了數(shù)據(jù)變更和計(jì)劃類長(zhǎng)指令。這些指令需要飛行員確認(rèn)識(shí)別結(jié)果的有效性,目前的語(yǔ)音識(shí)別處理軟件已經(jīng)無(wú)法滿足新增的該類長(zhǎng)指令的語(yǔ)言識(shí)別需求。
本文在語(yǔ)音識(shí)別處理軟件中增加語(yǔ)音識(shí)別分段識(shí)別功能模塊來(lái)完成對(duì)長(zhǎng)指令的識(shí)別優(yōu)化。同時(shí)完成了對(duì)整個(gè)分段識(shí)別的整體設(shè)計(jì)和驗(yàn)證。以確保識(shí)別長(zhǎng)指令的及時(shí)性和有效性。
飛行員進(jìn)行音頻輸入時(shí),如長(zhǎng)指令“飛行計(jì)劃XX航路點(diǎn)XX(東/西)經(jīng)XXX度XX分XX秒輸入完畢”,無(wú)法保證其能一口氣說(shuō)完該指令。因此語(yǔ)音識(shí)別處理軟件對(duì)該指令的識(shí)別結(jié)果可能是該指令中的部分詞的結(jié)果。為此對(duì)語(yǔ)音識(shí)別結(jié)果處理中增加了分段識(shí)別設(shè)計(jì),以滿足長(zhǎng)指令的語(yǔ)音識(shí)別需求,其語(yǔ)音識(shí)別的整體流程中增加了分段識(shí)別功能模塊如圖1所示。
圖1:機(jī)載語(yǔ)音識(shí)別處理流程圖
圖2:分段識(shí)別功能模塊結(jié)構(gòu)圖
分段識(shí)別功能模塊的主要功能是將語(yǔ)音識(shí)別結(jié)果進(jìn)行相應(yīng)的分段識(shí)別,將分段識(shí)別結(jié)果進(jìn)行組合并判斷其正確性,最后給出其相應(yīng)的指令代號(hào)和完整的識(shí)別結(jié)果。例如短指令“自飛控”進(jìn)行識(shí)別時(shí)無(wú)需進(jìn)行分段識(shí)別,其語(yǔ)音識(shí)別模塊輸出的結(jié)果即為“自飛控”,相應(yīng)的指令代碼為1。根據(jù)研究表明人們?cè)诶首x時(shí),因內(nèi)容以及生理需求,一般在詞與詞之間會(huì)出現(xiàn)短暫的停頓。因此在進(jìn)行長(zhǎng)指令的識(shí)別時(shí),需要處理語(yǔ)音識(shí)別結(jié)果為多個(gè)詞的情況。比如飛行員說(shuō) “飛行計(jì)劃1航路點(diǎn)1西經(jīng)20度20分20秒輸入完畢”該條指令時(shí),語(yǔ)音識(shí)別結(jié)果可能是“飛行計(jì)劃1”,“航路點(diǎn)1”,“西經(jīng)”,“20度20分20秒”的組合。
語(yǔ)音識(shí)別處理軟件的開發(fā)平臺(tái)為嵌入式開發(fā)平臺(tái),使用的芯片是TI的TMS320C6678,并通過(guò)標(biāo)準(zhǔn)的C語(yǔ)言進(jìn)行編寫。語(yǔ)音識(shí)別模塊識(shí)別的結(jié)果是字符串類型的,使用C語(yǔ)音處理字符串類型時(shí)相對(duì)復(fù)雜并且容易出錯(cuò)。因此分段識(shí)別設(shè)計(jì)的核心思想是將字符串類型的識(shí)別結(jié)果進(jìn)行數(shù)字化。
分段識(shí)別的主要設(shè)計(jì)思路是將所有的語(yǔ)言指令包括(短指令、長(zhǎng)指令)進(jìn)行原子指令的提取,并進(jìn)行相應(yīng)的數(shù)字化,最終形成原子指令編碼表和語(yǔ)音指令編碼表。并通過(guò)原子指令編碼表和語(yǔ)音指令編碼表完成語(yǔ)音指令獲取、原子指令表遍歷匹配、語(yǔ)音指令碼組合匹配和分段識(shí)別結(jié)果形成這四個(gè)功能模塊,最終形成完整正確的識(shí)別結(jié)果。該方法有效的降低了語(yǔ)音識(shí)別軟件處理邏輯的復(fù)雜度,同時(shí)提高軟件可讀性、可維護(hù)性和擴(kuò)展性,并提升對(duì)長(zhǎng)指令的識(shí)別率和用戶的體驗(yàn)感。
指令編碼表的設(shè)計(jì)主要用于在分段識(shí)別中能夠快速的匹配到語(yǔ)音指令,同時(shí)能夠及時(shí)的剔除不符合規(guī)則的語(yǔ)言指令。其包括原子指令的提取,原子指令的數(shù)字ID設(shè)計(jì)和指令編碼表設(shè)計(jì)這三個(gè)方面。
3.1.1 原子指令的提取
原子指令表示的是組成該指令的基礎(chǔ)詞,根據(jù)當(dāng)前的機(jī)載語(yǔ)音識(shí)別指令,可分為三類語(yǔ)音指令:
Ⅰ類指令代碼范圍為1~32的畫面控制指令和相關(guān)的特殊指令如:“自飛控”、“確認(rèn)”、“前翻頁(yè)”等。
Ⅱ類指令代碼范圍為201~214的調(diào)顯畫面類指令如:“(調(diào)顯/顯示/進(jìn)入)武器(畫面)”等。
Ⅲ類指令代碼范圍為1005~1013的修改類指令如:“飛行計(jì)劃XX航路點(diǎn)XX(東/西)經(jīng)XXX度XX分XX秒輸入完畢”。
提取上述三類指令中的原子指令。Ⅰ類指令其本身即為原子指令。Ⅱ類指令如“(調(diào)顯/顯示/進(jìn)入)武器(畫面)”提取的原子指令可分為“調(diào)顯”,“顯示”,“進(jìn)入”,“武器”和“畫面”這5個(gè)。Ⅲ類指令如“飛行計(jì)劃XX航路點(diǎn)XX(東/西)經(jīng)XXX度XX分XX秒輸入完畢”提取出來(lái)的原子指令可分為“飛行計(jì)劃”,“航路點(diǎn)”,“東經(jīng)”,“西經(jīng)”,“輸入完畢”。
原子指令同樣可以分為關(guān)鍵原子指令和輔助原子指令兩類。如“調(diào)顯”,“顯示”,“進(jìn)入”,“畫面”為輔助原子指令,是可有可無(wú),而“武器”則為關(guān)鍵原子指令,是必不可少的。
3.1.2 原子指令的數(shù)字ID設(shè)計(jì)
原子指令數(shù)字ID設(shè)計(jì)是用32位的無(wú)符號(hào)整型來(lái)表示不同的原子指令。將32無(wú)符號(hào)整形分為4*8表示如表1所示。
規(guī)定高8位為完整指令標(biāo)識(shí)碼部分,當(dāng)將識(shí)別結(jié)果中的原子指令組合成一個(gè)完整的指令時(shí)必須保證其高8位累加的結(jié)果為0xFF,若出現(xiàn)其他值則表明其不是一個(gè)正確的指令。
規(guī)定次高8位為指令識(shí)別碼1,次低8位為指令識(shí)別碼2,低8位為指令識(shí)別碼3。指令識(shí)別碼用來(lái)區(qū)別具體的指令。例如在Ⅱ類指令中“(調(diào)顯/顯示/進(jìn)入)武器(畫面)”指令。其原子指令為“武器”,其輔助原子指令包括“調(diào)顯”、“顯示”、“進(jìn)入”、“畫面”。其完整的指令可以是單純的“武器”或者是“武器畫面”又或者是“進(jìn)入武器畫面”。因此可通過(guò)指令識(shí)別碼部分來(lái)區(qū)分有效指令。
3.1.3 指令編碼表設(shè)計(jì)
通過(guò)提取語(yǔ)音指令中的原子指令并進(jìn)行分析設(shè)計(jì),形成原子指令編碼表。選?、耦愔噶睢白燥w控”、“前翻頁(yè)”、“確認(rèn)”,Ⅱ類指令“(調(diào)顯/顯示/進(jìn)入)程序(畫面)”,Ⅲ類指令“飛行計(jì)劃XX航路點(diǎn)XX(東/西)經(jīng)XXX度XX分XX秒輸入完畢”作為編碼表的設(shè)計(jì)對(duì)象,形成如下原子指令編碼表如表2所示。
根據(jù)原子指令編碼表,針對(duì)現(xiàn)有的機(jī)載語(yǔ)音識(shí)別詞條,選取上述的語(yǔ)音指令形成的語(yǔ)音指令編碼表如表3所示。
表1:原子指令32位數(shù)字ID信息表
表2:原子指令編碼表
表3:語(yǔ)音指令編碼表
表4:語(yǔ)音識(shí)別處理軟件識(shí)別結(jié)果對(duì)比表
分段識(shí)別功能模塊可分為語(yǔ)音指令獲取、原子指令表遍歷匹配、語(yǔ)音指令碼組合匹配、分段識(shí)別結(jié)果形成四個(gè)功能處理模塊,如圖2所示。
3.2.1 語(yǔ)音識(shí)別獲取
該模塊的主要功能是提取語(yǔ)音指令和數(shù)字信息。語(yǔ)音識(shí)別模塊識(shí)別結(jié)果包含語(yǔ)音指令集和數(shù)字信息,如語(yǔ)音識(shí)別模塊給出的識(shí)別結(jié)果可能是“飛行計(jì)劃1航路點(diǎn)2”,該語(yǔ)音指令需要將其去數(shù)字后形成語(yǔ)音指令為“飛行計(jì)劃航路點(diǎn)”。即語(yǔ)音指令“飛行計(jì)劃航路點(diǎn)”由“飛行計(jì)劃”,“航路點(diǎn)"兩個(gè)原子指令的組成作為后續(xù)原子指令表遍歷匹配的輸入條件。
3.2.2 原子指令表遍歷匹配
該模塊主要的功能是通過(guò)遍歷原子指令編碼表,查找與語(yǔ)音指令相匹配的原子指令,獲取該條語(yǔ)音指令的標(biāo)識(shí)碼并初步判斷是否符合語(yǔ)音指令要求。如“飛行計(jì)劃航路點(diǎn)”通過(guò)遍歷匹配獲取的標(biāo)識(shí)碼為0x80和0x40,組合為0b11000000,其高2位均為1則初步滿足編碼要求。其不符合編碼規(guī)則的包括以下三種:
應(yīng)該認(rèn)識(shí)到一體化教學(xué)模式的重點(diǎn)是教學(xué)資源的同步呼應(yīng)。一體化教學(xué)場(chǎng)所建設(shè),不是課桌椅和實(shí)訓(xùn)設(shè)備放到一間教室的改革,簡(jiǎn)單地認(rèn)為一體化就是“一起放”,不是科學(xué)的一體化,是形式主義的一體化。一體化教學(xué)場(chǎng)所建設(shè)應(yīng)該注重理論教學(xué)場(chǎng)所和實(shí)訓(xùn)教學(xué)場(chǎng)所內(nèi)在功能上的相互呼應(yīng)。一體化教師的培養(yǎng)任重道遠(yuǎn),不能把一體化教師簡(jiǎn)單機(jī)械地理解為一個(gè)人,達(dá)到理論教學(xué)和實(shí)習(xí)教學(xué)在內(nèi)容和進(jìn)度方面的有機(jī)結(jié)合,就實(shí)現(xiàn)了一體化教學(xué)。■
(1)標(biāo)識(shí)碼中出現(xiàn)不連續(xù)的1,如語(yǔ)音指令為“飛行計(jì)劃西經(jīng)”,其標(biāo)識(shí)碼為0x80和0x30,組合為是0b10110000。
(2)標(biāo)識(shí)碼中出現(xiàn)重復(fù)位,如語(yǔ)音指令“飛行計(jì)劃”后出現(xiàn)指令“程序”,其標(biāo)識(shí)碼為0x80和0xあ,其高位出現(xiàn)重復(fù)的1。
(3)標(biāo)識(shí)碼中首次出現(xiàn)的指令最高位不是1。如語(yǔ)音指令“航路點(diǎn)西經(jīng)”,其標(biāo)識(shí)碼為0x40和0x30,組合為0b01110000。
3.2.3 語(yǔ)音指令碼組合匹配
該模塊主要的功能是判斷當(dāng)前語(yǔ)音指令是否完整,并通過(guò)獲取的語(yǔ)音指令中每個(gè)原子指令中的識(shí)別碼進(jìn)行組合形成完整的語(yǔ)音指令碼,通過(guò)遍歷語(yǔ)音指令編碼表的來(lái)判定該指令是否是完整的有效的語(yǔ)音指令。如語(yǔ)音指令“飛行計(jì)劃/航路點(diǎn)/經(jīng)度/西經(jīng)/輸入完畢”其標(biāo)識(shí)碼組合為0xあ符合編碼要求,組合得到的語(yǔ)音指令碼0xFF00D201也在指令編碼表中,表明該條語(yǔ)音指令是符合要求的。其不符合要求的包括以下兩方面:
(1)標(biāo)識(shí)碼不是0xあ,如“飛行計(jì)劃/航路點(diǎn)/西經(jīng)”其標(biāo)識(shí)碼為0xf0缺少后續(xù)的0x0f即(輸入完畢),表明該指條語(yǔ)音指令未輸入完成。
(2)語(yǔ)音指令碼不在語(yǔ)音指令編碼表中。如“飛行計(jì)劃/航路點(diǎn)/經(jīng)度/北維/輸入完畢”,其語(yǔ)音指令碼為0xFF00D401,該指令不在語(yǔ)音編碼表中,表明該指令無(wú)效。
3.2.4 分段識(shí)別結(jié)果形成
該模塊的主要功能是將語(yǔ)音指令模塊中的提取的數(shù)字信息重新填充回正確完整的語(yǔ)音指令中,形成完整的分段識(shí)別結(jié)果,同時(shí)賦予相應(yīng)的指令代碼。
根據(jù)研究表明79%的韻律短語(yǔ)間停頓時(shí)集中在200~900ms之間。因此根據(jù)上述的三類語(yǔ)言指令進(jìn)行相關(guān)的實(shí)驗(yàn)設(shè)計(jì)用于驗(yàn)證分段識(shí)別效果。
根據(jù)采集的語(yǔ)音樣本并在每個(gè)短指令之間隨機(jī)增加(200ms~900ms)的延遲,并進(jìn)行播放。針對(duì)優(yōu)化后使用分段識(shí)別的語(yǔ)音識(shí)別處理軟件和未優(yōu)化的語(yǔ)言識(shí)別處理軟件進(jìn)行了驗(yàn)證對(duì)比,其實(shí)驗(yàn)結(jié)果如表4所示。
實(shí)驗(yàn)結(jié)果表明,采用優(yōu)化后使用分段識(shí)別方式進(jìn)行語(yǔ)音識(shí)別的方式明顯的提高了語(yǔ)音識(shí)別的識(shí)別率。
對(duì)相關(guān)的數(shù)據(jù)進(jìn)行分析。優(yōu)化前Ⅱ類和Ⅲ類的語(yǔ)言識(shí)別率低的主要原因是在于,語(yǔ)音停頓時(shí)語(yǔ)音識(shí)別超過(guò)了靜音的判斷條件,從而得出的識(shí)別結(jié)果未查詢到對(duì)應(yīng)的語(yǔ)言指令。
根據(jù)上述問(wèn)題分析的原因,采用增加靜音的判斷時(shí)間的方法看能否解決。通過(guò)實(shí)驗(yàn)發(fā)現(xiàn)在靜音時(shí)間判斷增加到900ms時(shí),發(fā)現(xiàn)使用上述的兩種方式識(shí)別率基本保持一致。但引入了新的問(wèn)題,即對(duì)語(yǔ)音指令識(shí)別時(shí),響應(yīng)時(shí)間慢,有明顯的延遲感,無(wú)法滿足飛行員對(duì)語(yǔ)音識(shí)別的響應(yīng)的要求。
為了解決目前飛機(jī)上飛行員對(duì)數(shù)據(jù)變更和計(jì)劃類語(yǔ)音指令識(shí)別時(shí)出現(xiàn)的識(shí)別率偏低和響應(yīng)不及時(shí)的問(wèn)題,本文提出了分段識(shí)別的設(shè)計(jì)方案?;谧R(shí)別結(jié)果數(shù)字化的原則,完成了原子指令編碼表和語(yǔ)音指令編碼表的設(shè)計(jì),并增加了分段識(shí)別功能模塊。實(shí)驗(yàn)結(jié)果表明,該設(shè)計(jì)方案能有效的解決目前對(duì)長(zhǎng)指令識(shí)別所遇到的問(wèn)題。針對(duì)后續(xù)語(yǔ)音詞條的不斷增加,下一步將優(yōu)化相關(guān)的遍歷算法,進(jìn)一步提高性能。同時(shí)由于國(guó)產(chǎn)化的需求,下一步將語(yǔ)音識(shí)別處理軟件移植到國(guó)防科技大學(xué)的FT-6678M芯片上。