国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于輪式機器人平臺的語音識別系統(tǒng)

2018-08-18 01:40:32任麗莉閆冬梅
長春師范大學學報 2018年8期
關鍵詞:特征參數(shù)指令編程

任麗莉,丁 浩,康 冰,閆冬梅

(1.長春師范大學網(wǎng)絡中心,吉林長春 130032;2.吉林大學通信工程學院,吉林長春 130022;3.吉林大學大數(shù)據(jù)和網(wǎng)絡管理中心,吉林長春 130012)

語音識別技術改變了人與計算機的互動模式。人們只需動動口,就能打開或關閉程序,改變工作界面。這種使電腦人性化的結果是使人的雙手得到解放,使每個人都能操作和應用計算機。這種變化不僅體現(xiàn)在計算機行業(yè)還體現(xiàn)在其它方面,比如電話手機、導航控制、檢索文件、控制儀器等。語音識別技術涉及很多領域的知識,語音識別技術與其他學科的科學技術相結合,可以構建出更加復雜的系統(tǒng)。隨著技術的發(fā)展,語音識別系統(tǒng)應用于機器人領域成為必然趨勢[1-3]。語音識別系統(tǒng)具有很強的專業(yè)性,有很強大的市場潛力。無論是目前還是未來,研制出識別能力強、識別語種多的語音識別系統(tǒng),并將其應用于機器人領域,對提高作業(yè)安全性、生產(chǎn)快捷性、操作簡單性都有積極意義,在服務型機器人和家庭型機器人應用方面更是有不可替代的作用。用戶可以通過語音識別交互系統(tǒng)直接控制機器人,省去了非語音識別機器人的復雜操作流程。像敬老院、醫(yī)院等場所可以通過安裝有語言識別系統(tǒng)的機器人完成老人、病人的無人化照顧,具有一定的現(xiàn)實意義。

1 語音識別原理

從根本上講,語音識別系統(tǒng)是一種特別的模式識別系統(tǒng),由三個基本結構單元組成,分別是參考模板庫、特征提取和模式匹配,基本結構如圖1所示。

用戶通過語音輸入裝置輸入語音,將輸入語音轉換為電信號,并添加到語音識別系統(tǒng)的輸入端口。首先對信號進行預處理。由特定算法提取出能夠有效地表現(xiàn)語音特征的特征參數(shù),以區(qū)別不同的語音命令。然后將提取的特征參數(shù)與模板庫中以同一方法在訓練階段保存的其它語音的特征參數(shù)進行匹配,利用搜索匹配法進行匹配比較之后將最佳結果作為識別結果,將識別結果輸出或存儲到其它操作中[4-5]。

2 系統(tǒng)整體設計

本系統(tǒng)設計更傾向于程序算法的設計,加之簡單的組件添加。程序設計是在VC++6.0的MFC下進行編程實現(xiàn)的,在設計過程中,硬件方面要求有一個帶有Windows操作系統(tǒng)的輪式機器人、一個裝有VC++6.0的Windows PC、一個電源、一個麥克風裝置等。在MFC平臺中使用微軟語音SDK 5.1開發(fā)語音識別的主要步驟如下:下載安裝完程序后,首先配置VC環(huán)境,然后在編程前添加相應的頭文件,再進行程序編寫。其中,編程部分可分為文字轉語音(語音輸出)和語音識別兩部分。

2.1 文字轉語音

文字轉語音步驟如下:

(1)導入所需的語音頭文件。

(2)文字轉語音函數(shù)的設置。在這里調(diào)用CBodyBasics∶∶MSSSpeak(LPCTSTR speakContent)函數(shù)即可將需要輸出的文字轉為語音,speakContent為LPCTSTR型的字符串。

(3)在進行輸入輸出設置之前要用ISpVoice*pVoice=NULL指令進行com初始化,并檢測是否成功給予反饋。

(4)獲取SpVoice接口,之后進行語音輸出音量的設置,pVoice->SetVolume((USHORT)100)指令設置語音輸出的音量,其有效范圍是0至100,再用pVoice->SetRate(2)指令設置輸出語音的速度,其有效范圍是-10至10。

(5)利用pSpeech->Speak(L"……")指令輸出所需語音,“……”為輸出內(nèi)容。語音輸出功能整體代碼設置完畢后釋放com資源。至此文字轉語音編程設置完畢。

2.2 語音轉文字

語音轉文字步驟如下:

(1)首先設置工程屬性。在VC中打開屬性選項,打開配置屬性,點擊C/C++預處理器,點擊預處理器定義,勾選_WIN32_DCOM選項。若不如此設置編譯將無法通過。

(2)導入所需頭文件,語音頭文件庫、語音識別頭文件、要用的CString頭文件等。

(3)在程序的.h頭文件中定義變量,添加入頭文件后還需對頭文件中的變量進行定義,否則在運行時會出現(xiàn)錯誤。需要定義的變量有:語音識別引擎(recognition)的接口、識別引擎上下文(context)的接口、識別文法(grammar)的接口、流()的接口、語音特征的(token)接口、音頻(Audio)的接口(用來保存原來默認的輸入流)。

(4)進行語音識別初始化函數(shù)創(chuàng)建。在創(chuàng)建之前與語音輸出部分相同要進行com接口初始化,并檢測是否成功加以反饋。微軟語音識別開發(fā)包提供了兩種模式:一種是共享模式(Share);另一種是獨享模式(InProc)。一般情況下選用共享模式,大型的服務程序使用獨立模式。本系統(tǒng)使用共享模式(Share)。具體的編程設置如下:利用hr=m_cpRecoEngine.CoCreateInstance(CLSID_SpSharedRecognizer)指令來創(chuàng)建共享模式,執(zhí)行完創(chuàng)建指令后要進行檢測,檢查識別引擎是否創(chuàng)建成功。成功后進行以下操作:首先創(chuàng)建識別上下文接口,再設置識別消息,隨后設置我們感興趣的事件,即需要識別的事件。要進行語音識別需要在工程中添加需要的語音,也就需要創(chuàng)建語法規(guī)則C&C命令式,此時語法文件使用xml格式,具體在(6)中介紹。創(chuàng)建語法規(guī)則后要加載語法才能使用,在進行識別前,首先要激活語音識別函數(shù),之后再進行識別,在主體程序設置完畢后釋放com資源。至此語音識別部分編程設置完畢。

(5)定義消息處理函數(shù)。消息處理函數(shù)需要和上文所述的其他代碼放在一起。根據(jù)本文上述部分進行編程,在其后添加修改消息反應模塊即可實現(xiàn)所需功能。先參照前文進行語音識別部分的編程設置,當輸入語音后系統(tǒng)進行識別,取出識別結果等待消息反應模塊做出反應。在消息處理函數(shù)中利用識別結果進行進一步操作,如當機器人識別出語音“機器人”后給出“你好”的回應,在工程中通過Recstring=="機器人"指令保存識別出的語音,隨后通過pSpeech->Speak(L"你好!");指令回應,實現(xiàn)語音識別、語音輸出的交互。

(6)修改語法文件。對Strkeyword.xml文件進行修改,可以增添刪減關鍵詞,使某些特殊詞匯的識別度提高,使其識別效果變得更好,像名字、專有名詞等。

通過以上方法進行語音識別編程,整體編程實現(xiàn)方法如圖2和圖3所示。在硬件上只需在機器人上連接麥克風。

3 設計結果

在MFC平臺運行完成程序加載后,形成相應的可執(zhí)行文件即應用軟件。啟動應用軟件后(啟動后圖標狀態(tài)如圖4所示),機器人會進入語音識別狀態(tài),用戶通過麥克風輸入語音指令,系統(tǒng)對接收到的語音信號進行識別并提取相應的特征參數(shù),如果與程序中設定目標語音的特征參數(shù)一致,那么就可以將其作為最終的識別結果,語音識別結果會暫時被保存,在機器人執(zhí)行周期執(zhí)行函數(shù)時使用,作為條件對機器人行動進行控制。

經(jīng)過設計可實現(xiàn)如下功能:點擊啟動圖標,屏幕顯示“開始聆聽”即可進行語音識別。機器人發(fā)出“準備飲料獲取演示”聲音,輸入“機器人”,回應“你好,請問需要飲料嗎”,輸入“是的”,回答“好的,我將為你取回飲料”,之后機器人開始行動。圖5所示為輪式機器人。

如果要進行其他語音識別設置,可進行如下操作:

(1)語音識別。語音識別的關鍵詞文件放置在工程的Grammar子目錄下,根據(jù)需要對里面的關鍵詞進行自由增減,在微軟官方網(wǎng)站可以找到相關語法規(guī)則。語音識別到的關鍵詞,最后會以字符串變量的形式被傳遞到CRobotEvent∶∶SR_KeyWord()回調(diào)函數(shù)中。

(2)語音輸出。在類CRobotEvent中,可隨時通過pSpeech指針調(diào)用CSpeech類的Speak()函數(shù)接口將文字轉換成語音播放出來。

(3)接口函數(shù)進行語音輸出,函數(shù)為pSpeech->Speak(CString inStr),其中參數(shù)inStr為字符串類型,指代內(nèi)容為需要進行語音輸出的語句。

猜你喜歡
特征參數(shù)指令編程
我家有只編程貓
我家有只編程貓
我家有只編程貓
我家有只編程貓
聽我指令:大催眠術
故障診斷中信號特征參數(shù)擇取方法
基于特征參數(shù)化的木工CAD/CAM系統(tǒng)
ARINC661顯控指令快速驗證方法
測控技術(2018年5期)2018-12-09 09:04:26
LED照明產(chǎn)品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
基于PSO-VMD的齒輪特征參數(shù)提取方法研究
仙居县| 长泰县| 通山县| 乐陵市| 金川县| 子洲县| 山丹县| 盐城市| 武冈市| 和林格尔县| 保亭| 那曲县| 柳河县| 封开县| 淮北市| 东安县| 灵武市| 锡林郭勒盟| 德清县| 益阳市| 南昌县| 蕉岭县| 文登市| 宝坻区| 河东区| 准格尔旗| 治县。| 望江县| 沙田区| 上思县| 武清区| 罗山县| 石景山区| 高青县| 黑山县| 贵州省| 乌拉特中旗| 蓬溪县| 探索| 满城县| 宣武区|