`

C#3.0基于 Speech.Recognition的SRGS 语音识别定义模糊语法范例

 
阅读更多

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Speech;
using System.Speech.Recognition;
using System.Speech.Synthesis;
using System.Speech.AudioFormat;
using System.Speech.Recognition.SrgsGrammar;

namespace voice
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{

//载入自定义xml文件
/*
SpeechRecognizer recognizer = new SpeechRecognizer();
SrgsDocument doc = new SrgsDocument("gaarmmar.xml");
recognizer.LoadGrammar(new Grammar(doc));
*/


//载入内存sgrs语法文件范例
/*
SpeechRecognizer recognizer = new SpeechRecognizer();
SrgsDocument doc = new SrgsDocument();
SrgsRule command = new SrgsRule("command",new SrgsOneOf("尹成是大哥", "尹成是二哥", "尹成是三哥"));
doc.Rules.Add(command);
doc.Root = command;
recognizer.LoadGrammar(new Grammar(doc));
*/

//复杂语法文件定义范例

SpeechRecognizer recognizer = new SpeechRecognizer();
SrgsDocument doc = new SrgsDocument();
SrgsRule command = new SrgsRule("command");
SrgsRule rank = new SrgsRule("rank");
SrgsItem of = new SrgsItem("of");
SrgsRule suit = new SrgsRule("suit");
SrgsItem card = new SrgsItem(new SrgsRuleRef(rank), of, new SrgsRuleRef(suit));
command.Add(card);
rank.Add(new SrgsOneOf("一", "二", "三", "四", "五", "六", "七", "八", "九"));
of.SetRepeat(0, 1);
suit.Add(new SrgsOneOf("山大", "山大王", "时代"));
doc.Rules.Add(command, rank, suit);
doc.Root = command;
recognizer.LoadGrammar(new Grammar(doc));


}
}
}
如需源码,请留下email

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics