2012-07-02 74 views
1

当我尝试加载编程语法的语法时,出现错误: SAPI不执行拼音字母选择。语音识别语法问题 - VB.NET

我的代码:

Public Class Form1 

Dim engine As New Speech.Recognition.SpeechRecognitionEngine 
Dim gram As new Speech.Recognition.Grammar("C:\Test\Speech\mygrammar.xml")  
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 

Dim choices = New Recognition.Choices() 

choices.Add("Red") 
choices.Add("Blue") 
choices.Add("Green") 
choices.Add("Yellow") 
Dim gb = New GrammarBuilder() 

gb.Append(choices) 

Dim doc = New Speech.Recognition.SrgsGrammar.SrgsDocument(gb) 
IO.Directory.CreateDirectory("C:\Test") 
IO.Directory.CreateDirectory("C:\Test\Speech") 
Dim xWriter = System.Xml.XmlWriter.Create("C:\Test\Speech\mygrammar.xml") 

doc.WriteSrgs(xWriter) 
xWriter.Close() 

Dim compiledFile = New FileStream("C:\Test\Speech\mycompiledgrammar.cfg", FileMode.OpenOrCreate) 

Speech.Recognition.SrgsGrammar.SrgsGrammarCompiler.Compile("C:\Test\Speech\mygrammar.xml", compiledFile) 
compiledFile.Close() 

末次

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
engine.LoadGrammar(gram) 'There's the error 
engine.SetInputToWaveFile("D:\record.wav") 
End Sub 
End Class 

回答