我在 C# 中使用 System.Speech 编写了一个用于语音识别的应用程序,该应用程序在 Windows 7 上运行良好。但是我在创建可以在 Windows 2003 (x86) 上运行的相同应用程序之后。
我的编程环境:Windows 7 x64 Pro Visual Studio 2008
为了在我的编程环境中开发这个应用程序,我安装了:
1.Microsoft 语音平台 - 服务器运行时(版本 10.1)(x86)
2.微软语音平台-软件开发工具包(SDK)(10.1版)(x86)
3.Microsoft Speech Platform - 服务器运行时语言(版本 10.1)
(此处为 en-GB 安装了 SR)
在我的程序中,我使用了 Microsoft.Speech.Recognition 而不是 System.Speech;
从 SDK 文档中粘贴此代码:
using Microsoft.Speech.Recognition;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// Create a new SpeechRecognitionEngine instance.
sre = new SpeechRecognitionEngine();
// Create a simple grammar that recognizes “red”, “green”, or “blue”.
Choices colors = new Choices();
colors.Add("red");
colors.Add("green");
colors.Add("blue");
GrammarBuilder gb = new GrammarBuilder();
gb.Append(colors);
// Create the actual Grammar instance, and then load it into the speech recognizer.
Grammar g = new Grammar(gb);
sre.LoadGrammar(g);
// Register a handler for the SpeechRecognized event.
sre.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(sre_SpeechRecognized);
sre.SetInputToDefaultAudioDevice();
sre.RecognizeAsync(RecognizeMode.Multiple);
}
// Simple handler for the SpeechRecognized event.
void sre_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
MessageBox.Show(e.Result.Text);
}
SpeechRecognitionEngine sre;
}
}
我还在项目属性中将平台目标设置为 x86。代码可以编译,但是一旦我运行或调试它就无法识别。知道我错过了什么吗?