Платформа распознавания речи Microsoft

Я написал приложение на C # для распознавания речи с использованием System.Speech, которое отлично работает на Windows 7. Однако я после создания того же приложения, которое будет работать на Windows 2003 (x86).

Моя среда программирования: Windows 7 x64 Pro

Вставил этот код из документации 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 в свойствах проекта. Код компилируется, но как только я запускаю или отлаживаю его, распознавание не работает. Любая идея, что мне не хватает?

7
задан LittleBobbyTables 16 August 2013 в 18:30
поделиться

1 ответ

Вы создаете механизм распознавания речи без указания механизма. Поскольку вы установили движок en-GB, вам нужно указать cultureinfo (или recognizerinfo):

sre = new SpeechRecognitionEngine(new CultureInfo("en-GB")); 
6
ответ дан 7 December 2019 в 09:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: