C#程序异常

C#程序异常,c#,sapi,C#,Sapi,此程序正在引发异常,如何解决此问题 例外情况是“语音识别在此系统上不可用。无法找到SAPI和语音识别引擎” 公共部分类表单1:表单 { SpeechRecognizer rec=新的SpeechRecognizer(); 公共表格1() { 初始化组件(); rec.speechrecogned+=rec_speechrecogned; } void rec_SpeechRecognized(对象发送方,SpeechRecognizedEventArgs e) { lblLetter.Text=

此程序正在引发异常,如何解决此问题

例外情况是“语音识别在此系统上不可用。无法找到SAPI和语音识别引擎”

公共部分类表单1:表单
{
SpeechRecognizer rec=新的SpeechRecognizer();
公共表格1()
{
初始化组件();
rec.speechrecogned+=rec_speechrecogned;
}
void rec_SpeechRecognized(对象发送方,SpeechRecognizedEventArgs e)
{
lblLetter.Text=e.Result.Text;
}
私有void Form1\u加载(对象发送方、事件参数e)
{
var c=新选择();

对于(var i=0;i嗯,听起来您的系统上没有安装必要的组件,或者您可能没有在完全受信任的应用程序中运行:

直接调用方的完全信任。部分受信任代码无法使用此成员。有关详细信息,请参阅使用部分受信任代码中的库

虽然我认为你会从中得到一个不同的错误。这个问题是发生在所有的机器上还是只发生在一台或两台机器上?如果是后者,则表明它是未安装的必需组件


尝试将
SpeechRecognizer
对象的初始化移动到表单构造函数中,并将其包装在
Try…catch
块中。这将导致)告诉您是否真的是这导致了问题,并b)允许您正常恢复。

您试图在哪个操作系统上运行此操作?我已在Windows 7 Professional上成功执行了您的代码

我的怀疑是,虽然框架中提供了
System.Speech
,但SAPI/语音识别引擎并未随框架一起安装,尽管默认情况下它们随Windows 7一起提供。请查看您的
Windows\system32
文件夹,看看是否有名为
Speech
的子文件夹来确定这一点

我刚刚使用Reflector和
System.Speech.Recognition.SpeechRecognizer
的构造函数快速浏览了
System.Speech.dll
,最终调用并实例化了一个名为
System.Speech.Internal.SapiInterop.SapiRecognizer
的类,这清楚地表明您需要取消管理已安装未安装的组件


尝试下载并安装。

对您收到的错误消息有任何不清楚的地方吗?对我来说似乎很简单。在您的系统上安装SAPI和语音识别引擎,因为我们无法访问您的系统。默认情况下,它们不会安装在Windows的服务器版本上。
public partial class Form1 : Form
{
    SpeechRecognizer rec = new SpeechRecognizer();
    public Form1()
    {
        InitializeComponent();
        rec.SpeechRecognized += rec_SpeechRecognized;

    }
    void rec_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
    {
        lblLetter.Text = e.Result.Text;
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        var c = new Choices();
        for (var i = 0; i <= 100; i++)
            c.Add(i.ToString());
        var gb = new GrammarBuilder(c);
        var g = new Grammar(gb);
        rec.LoadGrammar(g);
        rec.Enabled = true;

    }