Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用系统。关于非英语Win Vista业务的演讲_C#_.net 4.0_Windows Vista_Speech Recognition_System.speech.recognition - Fatal编程技术网

C# 如何使用系统。关于非英语Win Vista业务的演讲

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

我想尝试语音识别来控制程序。我用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.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),但当我尝试加载语法时,仍然发生了错误。