winform程序实现中文语音识别

最近需要给自己开发的软件添加语音导航功能,百度+摸索终于实现了,不过比较简陋,分享出来供大家娱乐批评!

现在市场上的语音引擎不多,有微软SAPI、googgle、讯飞,经过多番比较最终决定使用微软SAPI 5.1,原因是免费,便于我集成到winform程序里。

首先,要实现微软的这个语音识别需要几个东西:

1.安装微软SAPI 5.1 SDK

2.安装中文语言包

这两个东西网上都可以下载到,自己找吧!

然后,开始实现吧。

由于微软的语音引擎是微软的,也就是人家外国人做的,中文识别方面当然没有国内的讯飞好了,所以就在语音连续识别和命令词识别之间取舍,为了识别率高点所以采用命令词识别的方法实现。

核心代码:

private static SpRecofnition _Instance = null;

private ISpeechRecoGrammar isrg;

private SpShareRecoContext ssrContext = null;


private void Function()

{

ssrContext = new SpShareRecoContext();

isrg = ssrContext.CreateGrammar(1);

isrg.CmdLoadFromFile(Application.StartuoPath + "\\1.xml",SpeechLoadOption.SLODynamic);

ssrContext.recognition += new _ISpeechRecoContextEvents_RecofnitionEventHandler(ContextRecognition);

isrg.CmdSetRuleState(isrg.Rules.Item(0).Name,SpeechRuleState.SGDSActive);

}

1.xml是语法文件

<?xml version="1.0" encoding="gb2312">

<GRAMMAR LANGID="804">

<RULE NAME="命令" TOPLEVEL="ACTIVE">

<L>

<p>你好</p>

<p>我好</p>

<p>他好</p>

</L>

</RULE>

</GRAMMAR>

注:记得要在控制面板里把语音切换到中文上,否则会报错的!

如果你对微软SAPI没有一点了解的话,可能会看不懂我写的东西,此处给个链接先了解一下微软SAPI。微软语音SAPI介绍以其及语音识别过程

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值