陳景帥,周風(fēng)余
(山東大學(xué) 控制科學(xué)與工程學(xué)院,濟(jì)南 250061)
基于Speech SDK的機(jī)器人語音交互系統(tǒng)設(shè)計(jì)
陳景帥,周風(fēng)余
(山東大學(xué) 控制科學(xué)與工程學(xué)院,濟(jì)南 250061)
介紹了一種基于Microsoft Speech SDK 5.1的機(jī)器人語音交互系統(tǒng),利用Speech SDK 5.1提供的應(yīng)用程序編程接口SAPI進(jìn)行語音識(shí)別,對(duì)識(shí)別結(jié)果在邏輯程序中處理,使用Interphonic 5.0語音合成技術(shù)替代TTS技術(shù)來合成語音,實(shí)現(xiàn)了AHRR-I接待機(jī)器人的語音對(duì)話和語音控制。
接待機(jī)器人;Speech SDK;語音識(shí)別;語音控制;SAPI
機(jī)器人和人通過自然語言的溝通是基于語音技術(shù)中的語音識(shí)別技術(shù)和語音合成技術(shù)來實(shí)現(xiàn)人與計(jì)算機(jī)之間的信息交互[1-2]。賦予機(jī)器人以生物式的語音識(shí)別功能,是人類與機(jī)器人交流信息的一種最自然、最方便的手段[3]。目前,基于 Microsoft Speech SDK設(shè)計(jì)的語音對(duì)話系統(tǒng)往往采用SDK的語音識(shí)別和語音合成技術(shù),中文對(duì)話聲音單一,不夠逼真。本文介紹了一種開發(fā)方法,對(duì)話效果能滿足實(shí)際要求,系統(tǒng)已在AHRR-I智能接待機(jī)器人中試用(見圖1)。該智能接待機(jī)器人會(huì)說話、唱歌、跳舞,能問候客人并交談,行動(dòng)自如,自主避讓。
圖1 AHRR-I接待機(jī)器人試用
語音交互系統(tǒng)運(yùn)行于機(jī)載工控機(jī),主要包括語音對(duì)話、信息推介、人臉識(shí)別、多模式運(yùn)行等模塊。系統(tǒng)界面如圖2,采用觸摸屏操作。接待機(jī)器人檢測(cè)到游客的到來,主動(dòng)停下,向參展的觀眾發(fā)出問候。通過機(jī)器人語音交互系統(tǒng),觀眾可與機(jī)器人進(jìn)行上千句的對(duì)話,還可以通過語音來控制機(jī)器人跳舞唱歌,如果觀眾離去,機(jī)器人會(huì)與觀眾再見。當(dāng)與機(jī)器人交談過的參觀者再次光臨時(shí),接待機(jī)器人能通過之前的圖像采集對(duì)人臉進(jìn)行自動(dòng)辨識(shí),給予熟人特別問候和致意。
本系統(tǒng)基于Microsoft Speech SDK 5.1設(shè)計(jì),語音識(shí)別率高,能滿足實(shí)際要求。本文對(duì)系統(tǒng)實(shí)現(xiàn)的關(guān)鍵技術(shù)給出了描述。系統(tǒng)主程序界面如圖2所示。
圖2 系統(tǒng)主程序界面
Microsoft Speech SDK 5.1是提供了一套語音應(yīng)用程序開發(fā)的軟件開發(fā)資源包,完全支持簡(jiǎn)體中文語音系統(tǒng)的開發(fā),是開發(fā)語音軟件的一個(gè)理想工具。它是基于COM標(biāo)準(zhǔn)開發(fā)的,底層協(xié)議以COM組件的形式完全獨(dú)立于應(yīng)用程序?qū)?,為?yīng)用程序設(shè)計(jì)人員屏蔽了復(fù)雜的語音技術(shù),開發(fā)人員可以方便使用資源包中的資源開發(fā)語音識(shí)別和語音合成的應(yīng)用程序。該軟件開發(fā)包結(jié)構(gòu)如圖3所示。
圖3 Speech SDK開發(fā)包結(jié)構(gòu)
語音識(shí)別是處理自然語言到數(shù)據(jù)的轉(zhuǎn)換,語音識(shí)別技術(shù)也可以稱為Speech-to-Text的識(shí)別。語音識(shí)別系統(tǒng)的處理過程首先是用戶通過語音輸入設(shè)備(比如麥克風(fēng))輸入語音信號(hào),然后通過語音接收卡(一般為聲卡)接收語音數(shù)據(jù)轉(zhuǎn)化為數(shù)字信號(hào)傳入語音識(shí)別引擎進(jìn)行處理,語音識(shí)別引擎處理完成后交給相關(guān)邏輯程序去處理相關(guān)應(yīng)用[4]。語音識(shí)別類的封裝和語音識(shí)別算法實(shí)現(xiàn)流程如圖4。
圖4 語音識(shí)別類封裝及算法實(shí)現(xiàn)流程
語音識(shí)別的工作原理遵循COM組件的工作原理和一般Windows應(yīng)用程序的工作原理(消息驅(qū)動(dòng)機(jī)制),本文介紹語音識(shí)別類主要成員函數(shù)在VC++6.0 環(huán)境下的實(shí)現(xiàn)[5-6]。
2.1.2 主要成員函數(shù)
2.1.3 截獲識(shí)別消息,獲取識(shí)別結(jié)果
截獲識(shí)別消息(WM_RECOEVENT),識(shí)別的結(jié)果放在 CSpEvent的 ISpRecoResult中,然后根據(jù)識(shí)別的結(jié)果做相應(yīng)的處理[9-10]。
計(jì)算機(jī)語音合成技術(shù)是將產(chǎn)生類似于人類語言的聲音進(jìn)行處理的技術(shù)。Speech SDK5.1提供的語音合成技術(shù)對(duì)中文使用效果較差,而且只有男聲。本文采用了Interphonic 5.0語音合成系統(tǒng),該系統(tǒng)以先進(jìn)的大語料庫(kù)和語音韻律描述體系為基礎(chǔ),合成音質(zhì)可媲美真人發(fā)音。首先利用 Interphonic合成WAV格式語音,當(dāng)引擎識(shí)別出語句后,在邏輯程序處理中播放相應(yīng)WAV文件。用Windows提供的API函數(shù) sndPlaySound可以實(shí)現(xiàn)小型WAV文件的播放。但是,當(dāng)WAV文件大于100 K時(shí),sndPlaySound函數(shù)就不能正常播放。在機(jī)器人說話時(shí),為了避免外界聲音對(duì)識(shí)別程序的干擾造成誤識(shí)別或多次識(shí)別,需要在播放對(duì)話時(shí)先關(guān)閉語音識(shí)別。當(dāng)機(jī)器人說完以后,重新開啟語音識(shí)別,這就需要能夠判斷WAV文件何時(shí)播放結(jié)束。
本文定義CPlayWave類可以實(shí)現(xiàn)大型WAV文件的播放,并可在播放完成后發(fā)回通知消息。
2.2.1 打開和關(guān)閉波形音頻設(shè)備
在C P l a y W a v e類的構(gòu)造函數(shù)中打開波形音頻設(shè)備。
2.2.2 主要成員函數(shù)包括Play和Stop函數(shù)
Play函數(shù),采取異步播放,指定 MCI_NOTIFY標(biāo)志并設(shè)置dwCallback成員來實(shí)現(xiàn)播放文件結(jié)束后返回通知消息。
在語音識(shí)別的邏輯程序處理部分,加入機(jī)器人的控制命令,即可以實(shí)現(xiàn)對(duì)機(jī)器人的語音控制,如前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)、跳舞等[11-12]。限于篇幅,本文不再介紹語音控制與機(jī)器人的底層程序接口。
本文討論了 VC++6.0環(huán)境下調(diào)用Speech SDK實(shí)現(xiàn)語音識(shí)別的一種方法,并開發(fā)了機(jī)器人語音交互系統(tǒng)。經(jīng)過測(cè)試,在機(jī)器人運(yùn)行環(huán)境中,Speech SDK命令語音識(shí)別模式的識(shí)別率非常高,能夠滿足機(jī)器人語音交互實(shí)際應(yīng)用的要求。系統(tǒng)已在AHRR-I智能接待機(jī)器人中試用。
[1] 梁振.計(jì)算機(jī)語音技術(shù)—在微軟 Speech平臺(tái)[EB/OL].http://www.microsoft.com/china/community/Column/106.mspx.
[2] Marin R,Vila P,Sanz P J,et al.Automatic speech recognition to teleoperate a robot via Web[J].Intelligent Robots and System,2002(2):1278-1283.
[3] Kotelly B.The art and business of speech recognition[M].USA:Pearson,2003.
[4] 初琦.Speech SDK在語音機(jī)器人開發(fā)中的應(yīng)用[J].北京工業(yè)職業(yè)技術(shù)學(xué)院學(xué)報(bào),2008,7(4):32-36.
[5] 鄧福元,王建新,陳天賜.基于語音識(shí)別技術(shù)的軍事標(biāo)圖系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].企業(yè)技術(shù)開發(fā),2008,27(11):10-12.
[6] 馮琳.語音識(shí)別系統(tǒng)在醫(yī)院信息系統(tǒng)中的應(yīng)用[J].中國(guó)數(shù)字醫(yī)學(xué),2007,2(12):50-52.
[7] 于洪濤.運(yùn)用Authorware制作英語人機(jī)對(duì)話課件[J].內(nèi)蒙古民族大學(xué)學(xué)報(bào):自然科學(xué)版,2007,22(2):143-145.
[8] 林茜,歐建林,蔡駿.基于Microsoft Speech SDK的語音關(guān)鍵詞檢出系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)[J].心智與計(jì)算,2007,1(4):433-441.
[9] 朱素英,殷建平,彭智朝.基于數(shù)據(jù)庫(kù)查詢的自然語言接口研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2008,29(4):6423-6426.
[10] 郭家清,白宇,蔡?hào)|風(fēng).劉紀(jì)元基于語音標(biāo)簽的語音瀏覽器[J].沈陽航空工業(yè)學(xué)院學(xué)報(bào),2007,24(2):35-37.
[11] 張?zhí)锓?,劉幺和,譚保華.基于語音識(shí)別的遠(yuǎn)程機(jī)器人控制系統(tǒng)[J].湖北工業(yè)大學(xué)學(xué)報(bào),2007,22(2):45-47.
[12] 王雪松,田西蘭,王煒強(qiáng).語音識(shí)別技術(shù)在機(jī)器人控制中的應(yīng)用[J].儀器儀表學(xué)報(bào),2006,27(6):768-770.
Design of Speech Interactive System for Robots Based on Speech SDK
CHEN Jing-shuai,ZHOU Feng-yu
(School of Control Science and Engineering,Jinan 250061,China)
A speech interactive system based on Microsoft Speech SDK5.1 is reported.The speech recognition is designed using speech application program interface provided by Speech SDK5.1.Recognize result is dealt with in logical program.Then the speech is synthesized by Interphonic 5.0 speech synthesis system instead of TTS technology.Thus,voice chat and voice control of AHRR-I receptionist robot can be realized.
receptionist robot;speech SDK;speech recognition;voice control;SAPI
TP 242
A
1005-0310(2010)01-0025-05
2010-01-08
國(guó)家863計(jì)劃課題(2009AA04Z220)
陳景帥(1983—),男,山東濱州人,山東大學(xué)控制科學(xué)與工程學(xué)院碩士研究生,主要研究領(lǐng)域?yàn)闄C(jī)器人控制與微機(jī)電系統(tǒng)。
(責(zé)任編輯 李亞青)