C# 如何使用系统。关于非英语Win Vista业务的演讲
我想尝试语音识别来控制程序。我用C#编写了测试程序,在调试时,每次都会发生错误-C# 如何使用系统。关于非英语Win Vista业务的演讲,c#,.net-4.0,windows-vista,speech-recognition,system.speech.recognition,C#,.net 4.0,Windows Vista,Speech Recognition,System.speech.recognition,我想尝试语音识别来控制程序。我用C#编写了测试程序,在调试时,每次都会发生错误- System.Runtime.InteropServices.COMException (0x80004005): Calling part of COM return error HRESULT E_FAIL.* in System.Speech.Recognition.RecognizerBase.Initialize(SapiRecognizer recognizer, Boolean inproc) in
System.Runtime.InteropServices.COMException (0x80004005): Calling part of COM return error HRESULT E_FAIL.*
in System.Speech.Recognition.RecognizerBase.Initialize(SapiRecognizer recognizer, Boolean inproc)
in System.Speech.Recognition.SpeechRecognitionEngine.get_RecoBase()
in System.Speech.Recognition.SpeechRecognitionEngine.LoadGrammar(Grammar grammar)
看起来错误是由engine.LoadGrammar(new DictationGrammar())引起的代码>
在我的笔记本上,我安装了捷克操作系统Vista,也许这就是语音识别语言与操作系统语言不同的问题
有没有一种方法可以在非英语操作系统中使用system.speech进行开发,或者在某些方面我错了?语言方面没有问题,我想用英语进行语音识别,但我无法获得英语Vista或MUI语言包
完整代码如下
非常感谢
using System;
using System.Windows;
using System.Speech.Recognition;
namespace rozpoznani_reci_WPF
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
SpeechRecognitionEngine engine = new SpeechRecognitionEngine();
try
{
engine.LoadGrammar(new DictationGrammar());
engine.SetInputToDefaultAudioDevice();
engine.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(recognizer_SpeechRecognized);
}
catch(Exception e)
{
//MessageBox.Show(e.ToString());
textBox1.Text = e.ToString();
}
}
void recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
if (e.Result != null)
{
textBox1.Text = e.Result.Text + " ";
}
}
}
}
使用系统;
使用System.Windows;
使用系统语音识别;
名称空间rozpoznani_reci_WPF
{
公共部分类主窗口:窗口
{
公共主窗口()
{
初始化组件();
SpeechRecognitionEngine=新建SpeechRecognitionEngine();
尝试
{
engine.LoadGrammar(新的DictationGrammar());
engine.setInputOdeFaultAudioDevice();
engine.SpeechRecognized+=新事件处理程序(识别器\u SpeechRecognized);
}
捕获(例外e)
{
//Show(例如ToString());
textBox1.Text=e.ToString();
}
}
无效识别器_SpeechRecognized(对象发送者,SpeechRecognizedEventArgs e)
{
如果(例如,结果!=null)
{
textBox1.Text=e.Result.Text+“”;
}
}
}
}
根据MSDN文档,无参数构造函数
为Windows桌面语音技术提供的默认口述语法初始化DictionGrammar类的新实例
您的机器上有捷克语指示语法类吗?如果没有,则需要创建一个构造函数并使用另一个构造函数,然后从URI加载一个构造函数。您还可以使用来构造自己的,并使用来加载它
你可能也会发现有用;这是从2008年开始的,但您确实询问了Vista.:-) 谢谢你的帖子!我有一个问题,这个链接-它不工作。我找不到任何捷克语语法。但无论如何,我想使用英语进行语音识别,所以我安装了speech platform runtime和SDK 11以及language TELE(en-US),但当我尝试加载语法时,仍然发生了错误。