微软Speech SDK开发语音识别系统主要步骤及模式.pdfVIP

  • 0
  • 0
  • 约8.15千字
  • 约 6页
  • 2026-02-05 发布于北京
  • 举报

微软Speech SDK开发语音识别系统主要步骤及模式.pdf

微软语音识别分为两种模式:文本识别模式和命令识别模式。这两种模式的主要区别在于识别

过程中使用的匹配字典不同。前者使用的是通用字典,特点是内容丰富,覆盖的词汇量大,字

典SDK听

由。适用于没有预定目标的随机写之类的应用。同时因为词汇量大,直接导致识

X

别精度降低,识别速度较慢。后者的字典需要开发者自己编写,即所说的ML文件。

XML件作为一种数据方式,有一定的格式,定义了SDK需要确定的一些和用于匹

配的词汇。这种方式由开发者定义词汇数量,大大减少了匹配过程中需要检索的词汇量,提高

了识别速度。同时由于候选词极少,因此一般不会识别错误。其缺点也是明显的:词汇量小,

只有预先输入字典的词汇可以被识别出来,所以通常用于常用命令的识别,方便用户操作,替

代菜单命令等。

利用微软SpeechSDK5.1在MFC中进行语音识别开发时的主要步骤,以SpeechAPI

5.1+VC6为例:

1、初始化COM端口

通常在WinApp的子类中,调用CoInitializeEx函数进行COM初始化,代码如下:::

C

CoInitializeEx(NULL,COINIT_APARTMENTTHREADED);//初始化COM注意:调用这个

函数时,要在工程设置(projectsettings)‑C/C++,Category中选Preprocessor,在

_

Preprocessordefinitions:下的文本框中加上“WIN32_DCOM”。否则编译不能通过。

2、创建识别引擎

微软SpeechSDK5.1支持两种模式:共享(Share)和独享(InProc)。通常情况下可

以使用共享型,大型服务型程序使用InProc。如下:hr=

m_cpRecognizer.CoCreateInstance(CLSID_SpSharedRecognizer);//Sharehr=

m_cpRecognizer.CoCreateInstance(CLSID_SpInprocRecognizer);//InProc如果是

Share型,可直接进行到步骤3;如果是InProc型,必须使用

ISpRecognizer::SetInput设置语音输入。如下:CComPtrISpObjectToken

cpAudioToken;//定义一个tokenhr

SpGetDefaultTokenFromCategoryId(SPCAT_AUDIOIN,cpAudioToken);//创建

默认的音频输入对象if(SUCCEEDED(hr)){hr=m_cpRecognizer‑

SetInput(cpAudioToken,TRUE);}或者:CComPtrISpAudiocpAudio;//定义一个

音频对象hr=SpCreateDefaultObjectFromCategoryId(SPCAT_AUDIOIN,

cpAudio);//创建默认的音频输入对象hr=m_cpRecoEngine‑SetInput(cpAudio,

TRUE);//设置识别引擎输入源

3、创建识别上下文接口

调用ISpRecognizer::CreateRecoContext创建识别上下文接口(ISpRecoContext),如

下:hr=m_cpRecoEngine‑CreateRecoContext(m_cpRecoCtxt);

4、设置识别消息

调用SetNotifyWindowMessage告诉Windows哪个是我们需要处理的识别消息。如

下:

微软语音识别分两种模式:文本识别模式和命令识别模式.此两种模式的主要区别,主要在于

识别过程中使用的匹配字典不同.前者使用的是通用字典,特点是内容多,覆盖的词汇量大,字

典由sdk.适用于没有预定目标的随机听写之类的应用.同时因为词汇量大直接导致识别

的精度降低,识别速度较慢.后者的字典需要开发者自己编写,就是所说的xml文件.xml

文件作为一种数据的方式,有一定的格式,定义了sdk需要确定的一些,和用以匹配

的词汇.这种方式由开发者定义词汇

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档