没人用过speech sdk吗??发了3个帖都没人理??

xbcom 2004-08-28 09:50:38
开发环境vs.net,speech sdk 5.1,win2000

想用命令和控制方式(c&c)识别中文语音读入,sdk帮助上只有英文识别教程,现在已经实现。用xml写的英文识别grammar文件能导入进行识别,但是不清楚怎么写中文grammar的xml文件,在英文grammar文件上的修改都没成功,激活rule的时候发生了错误。

假设xml文件如下:
<GRAMMAR LANGID="409">
<DEFINE>
<ID NAME="RuleId_A" VAL="0"/>
</DEFINE>


<RULE ID="RuleId_A" TOPLEVEL="ACTIVE">
<P PROPID="PropId_B" VAL="PropVal_AB"> good morning </P>
</RULE>
</GRAMMAR>

要想识别中文,如good morning变为“早上好”,应该怎么改写这个xml文件。中文的LANGID好象是804,但改了还是没用。在grammar.CmdSetRuleIdState (0, SGDSActive)这一句老是出错。

代码方面是否也和英文识别不同。我用的主要代码如下。应该怎么改。


private SpeechLib.SpSharedRecoContext objRecoContext;
private SpeechLib.ISpeechRecoGrammar grammar;
private SpeechLib.ISpeechGrammarRule rule;

//初始化
void initRecongition()
{
objRecoContext=new SpSharedRecoContext();
objRecoContext.Recognition += new _ISpeechRecoContextEvents_RecognitionEventHandler(RecoContext_Recognition);

grammar = objRecoContext.CreateGrammar(0);
grammar.CmdLoadFromFile("path+filename",SLODynamic);
grammar.CmdSetRuleIdState(0,SGDSActive); //编译器说这句错误,但英文识别没问题

}

//识别事件后调用方法
public void RecoContext_Recognition(int StreamNumber,object StreamPosition, SpeechRecognitionType RecognitionType,ISpeechRecoResult Result)
{
Result.PhraseInfo.GetText(0,-1,true);
}
...全文
77 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
孟子E章 2004-08-28
  • 打赏
  • 举报
回复
看看你的xml文件格式是否对,另存为utf-8格式看看

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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