用过speech 做过语音识别的朋友来下

Amuro1987218 2008-07-05 03:54:21
类成员里:
CComPtr<ISpRecognizer> m_cpVoice;
CComPtr<ISpRecoGrammar> m_cpCmdGrammar;
CComPtr<ISpRecoContext> m_cpRecoCtxt;
类的初始化函数里:

::CoInitializeEx(NULL,COINIT_APARTMENTTHREADED); // 初始化COM
HRESULT hr;
hr = m_cpVoice.CoCreateInstance( CLSID_SpInprocRecognizer);
hr = m_cpVoice->CreateRecoContext( &m_cpRecoCtxt );
hr = m_cpRecoCtxt->SetNotifyWindowMessage( m_hWnd, WM_RECOEVENT, 0, 0 );//设置消息机制
hr = m_cpRecoCtxt->CreateGrammar( GID_CMD_GR, &m_cpCmdGrammar);
if( FAILED(hr) )
{
MessageBox("Error CreateGrammar","Error",MB_OK);

}

WCHAR wszXMLFile[20]=L"";

//ANSI转UNINCODE
MultiByteToWideChar(CP_ACP, 0, (LPCSTR)"CmdCtrl.xml" , -1, wszXMLFile, 256);

//从文件中读取语法词典
hr = m_cpCmdGrammar->LoadCmdFromFile(wszXMLFile,SPLO_DYNAMIC);
if (FAILED(hr))
{
MessageBox("Error LoadCmdFromFile","Error",MB_OK);

}

hr = m_cpCmdGrammar->SetRuleState(NULL,NULL,SPRS_ACTIVE);
if(FAILED(hr))
{
MessageBox("startsr error");

}

xml也加载成功了,但是一直没收到WM_RECOEVENT消息,应该怎么弄?
...全文
41 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

2,542

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧