Платформа распознавания речи Microsoft
-
25-09-2019 - |
Вопрос
Я написал приложение в C # для распознавания речи, используя System.speech, которая работает нормально в Windows 7. Однако я после создания того же приложения, которое будет работать на Windows 2003 (x86).
Моя среда программирования: Windows 7 X64 Pro Visual Studio 2008
Для разработки этого приложения в моей среде программирования я установил:
1.microsoft речевая платформа - время выполнения сервера (версия 10.1) (x86)
2.microsoft речевая платформа - комплект разработки программного обеспечения (SDK) (версия 10.1) (x86)
3.Microsoft речевая платформа - неисправности выполнения сервера (версия 10.1)
(здесь установлено SR для EN-GB)
В моей программе вместо System.speech я использовал Microsoft.speech.recognition;
Вставил этот код из документации 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 в Project Properties. Код компилирует, но после того, как я бегу или отладку его распознавания не работает. Любая идея, что я скучаю?
Решение
Вы создаете механизм распознавания речи без указания двигателя. Так как вы установили двигатель EN-GB, вам нужно указать CultureInfo (или а распознать):
sre = new SpeechRecognitionEngine(new CultureInfo("en-GB"));