



全文預(yù)覽已結(jié)束
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
利用微軟Speech SDK 5.1開發(fā)語音識別系統(tǒng)主要步驟 微軟語音識別分兩種模式:文本識別模式和命令識別模式.此兩種模式的主要區(qū)別,主要在于識別過程中使用的匹配字典不同.前者使用的是通用字典,特點是內(nèi)容多,覆蓋的詞匯量大,字典由sdk提供.適用于沒有預(yù)定目標(biāo)的隨機(jī)聽寫之類的應(yīng)用.同時因為詞匯量大直接導(dǎo)致識別的精度降低,識別速度較慢.后者的字典需要 開發(fā)者自己編寫,就是你們所說的xml文件.xml文件作為一種數(shù)據(jù)存儲的方式,有一定的格式,定義了sdk需要確定的一些標(biāo)簽,和用以匹配的詞匯.這種方式由開發(fā)者定義詞匯的數(shù)量,大大降低匹配過程中需要檢索的詞匯量,提高了識別速度.同時因為侯選項極少,所以一般不會識別錯誤.其缺點也是明顯的:詞匯量小,只有預(yù)先輸入字典的詞匯可以被識別出來,所以一般用來作為常用命令的識別,方便用戶操作,代替菜單命令等. 利用微軟Speech SDK 5.1在MFC中進(jìn)行語音識別開發(fā)時的主要步驟,以Speech API 5.1+VC6為例: 注意:要在工程設(shè)置(project settings)添加sapi.lib文件和一些頭文件。1、初始化COM端口 一般在CWinApp的子類中,調(diào)用CoInitializeEx函數(shù)進(jìn)行COM初始化,代碼如下: :CoInitializeEx(NULL,COINIT_APARTMENTTHREADED); / 初始化COM 2、創(chuàng)建識別引擎 微軟Speech SDK 5.1 支持兩種模式的:共享(Share)和獨享(InProc)。一般情況下可以使用共享型,大的服務(wù)型程序使用InProc。如下: hr = m_cpRecognizer.CoCreateInstance(CLSID_SpSharedRecognizer);/Share hr = m_cpRecognizer.CoCreateInstance(CLSID_SpInprocRecognizer);/InProc 如果是Share型,可直接進(jìn)到步驟3;如果是InProc型,必須使用 ISpRecognizer:SetInput 設(shè)置語音輸入。如下: CComPtr cpAudioToken; /定義一個token hr = SpGetDefaultTokenFromCategoryId(SPCAT_AUDIOIN, &cpAudioToken); /建立默認(rèn)的音頻輸入對象 if (SUCCEEDED(hr) hr = m_cpRecognizer-SetInput(cpAudioToken, TRUE); 或者: CComPtr cpAudio; /定義一個音頻對象 hr = SpCreateDefaultObjectFromCategoryId(SPCAT_AUDIOIN, &cpAudio);/建立默認(rèn)的音頻輸入對象 hr = m_cpRecoEngine-SetInput(cpAudio, TRUE);/設(shè)置識別引擎輸入源 3、創(chuàng)建識別上下文接口 調(diào)用 ISpRecognizer:CreateRecoContext 創(chuàng)建識別上下文接口(ISpRecoContext),如下: hr = m_cpRecoEngine-CreateRecoContext( &m_cpRecoCtxt ); 4、設(shè)置識別消息 調(diào)用 SetNotifyWindowMessage 告訴Windows哪個是我們的識別消息,需要進(jìn)行處理。如下: hr = m_cpRecoCtxt-SetNotifyWindowMessage(m_hWnd, WM_RECOEVENT, 0, 0); SetNotifyWindowMessage 定義在 ISpNotifySource 中。 5、設(shè)置我們感興趣的事件 其中最重要的事件是”SPEI_RECOGNITION“。參照 SPEVENTENUM。代碼如下: const ULONGLONG ullInterest = SPFEI(SPEI_SOUND_START) | SPFEI(SPEI_SOUND_END) | SPFEI(SPEI_RECOGNITION) ; hr = m_cpRecoCtxt-SetInterest(ullInterest, ullInterest); 6、創(chuàng)建語法規(guī)則 語法規(guī)則是識別的靈魂,必須要設(shè)置。分為兩種,一種是聽說式(dictation),一種是命令式(command and control-C&C)。首先 利用ISpRecoContext:CreateGrammar 創(chuàng)建語法對象,然后加載不同的語法規(guī)則,如下: /dictation hr = m_cpRecoCtxt-CreateGrammar( GIDDICTATION, &m_cpDictationGrammar ); if (SUCCEEDED(hr) hr = m_cpDictationGrammar-LoadDictation(NULL, SPLO_STATIC);/加載詞典 /C&C hr = m_cpRecoCtxt-CreateGrammar( GIDCMDCTRL, &m_cpCmdGrammar); 然后利用ISpRecoGrammar:LoadCmdxxx 加載語法,例如從CmdCtrl.xml中加載: WCHAR wszXMLFile20=L; MultiByteToWideChar(CP_ACP, 0, (LPCSTR)CmdCtrl.xml , -1, wszXMLFile, 256);/ANSI轉(zhuǎn)UNINCODE hr = m_cpCmdGrammar-LoadCmdFromFile(wszXMLFile,SPLO_DYNAMIC); 注意:C&C時,語法文件使用xml格式,參見Speech SDK 5.1 中的 Designing Grammar Rules。簡單例子: 你 我 他 LANGI*=804代表簡體中文,在.中增加命令。 7、在開始識別時,激活語法進(jìn)行識別 hr = m_cpDictationGrammar-SetDictationState( SPRS_ACTIVE );/dictation hr = m_cpCmdGrammar-SetRuleState( NULL,NULL,SPRS_ACTIVE );/C&C 8、獲取識別消息,進(jìn)行處理 截獲識別消息(WM_RECOEVENT),然后處理。識別的結(jié)果放在CSpEvent的ISpRecoResult 中。如下: USES_CONVERSION; CSpEvent event; switch (event.eEventId) case SPEI_RECOGNITION: /識別出了語音輸入 m_bGotReco = TRUE; static const WCHAR wszUnrecognized = L; CSpDynamicString dstrText; /取得識別結(jié)果 if (FAILED(event.RecoResult()-GetText(SP_GETWHOLEPHRASE, SP_GETWHOLEPHRASE, TRUE ,&dstrText, NULL) dstrText = wszUnrecognized; BSTR SRo
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- “親子互動”兒童親子餐廳商業(yè)計劃書
- 全球新型環(huán)保型油泵的應(yīng)用與研發(fā)動態(tài)報告
- 寵物的智能防丟解決方案:行業(yè)分析與市場潛力預(yù)測
- 鈣鈦礦量子點發(fā)光層市場應(yīng)用與技術(shù)創(chuàng)新結(jié)合的研究報告
- 健康產(chǎn)業(yè)的數(shù)字化轉(zhuǎn)型及市場營銷方案
- 物流行業(yè)人才能力提升計劃
- 高效MRO集采集配解決方案市場分析報告
- 綠色金融與生態(tài)農(nóng)業(yè)發(fā)展路徑-洞察闡釋
- 城鄉(xiāng)金融服務(wù)一體化發(fā)展與趨勢分析報告
- 企業(yè)研發(fā)團(tuán)隊如何提高科技成果轉(zhuǎn)化率的研究報告
- 熱管散熱技術(shù)在數(shù)據(jù)中心應(yīng)用-全面剖析
- 垃圾分類房建設(shè)合同協(xié)議
- 別墅土建改造合同標(biāo)準(zhǔn)文本
- 天臺保安考試題及答案
- 租賃傭金協(xié)議書范本
- 離婚協(xié)議模板
- 血友病患兒的護(hù)理
- 電力安全事故隱患排查
- 2025年遼寧輕工職業(yè)學(xué)院高職單招職業(yè)技能考試題庫附答案解析
- GFS普及型高頻高壓發(fā)生器課件
- 電影后期制作的技術(shù)要點及流程解析
評論
0/150
提交評論