Frage

Ich schrieb eine App in C # für die Spracherkennung mit System.Speech, die gut auf Windows 7 funktioniert. Allerdings bin ich nach der gleichen App erstellen, die auf Windows 2003 (x86) arbeiten.

Meine Programmierumgebung: Windows 7 x64 Pro Visual Studio 2008

Um diese Anwendung in meiner Programmierumgebung zu entwickeln, habe ich installiert:

1.Microsoft Speech Platform - Server Runtime (Version 10.1) (x86)

http: / /www.microsoft.com/downloads/details.aspx?FamilyID=674356C4-E742-4855-B3CC-FC4D5522C449&displaylang=en&displaylang=en

2.Microsoft Speech Platform - Software Development Kit (SDK) (Version 10.1) (x86)

http: // www .microsoft.com / downloads / details.aspx? displaylang = en & FamilyID = 4d36908b-3264-49ef-B154-f23bf7f44ef4

3.Microsoft Speech Platform - Server Runtime Sprachen (Version 10.1)

(hier installiert SR für en-GB)

http: // www .microsoft.com / downloads / details.aspx? displaylang = en & FamilyID = f704cd64-1dbf-47a7-ba49-27c5843a12d5

In meinem Programm statt System.Speech I verwendet Microsoft.Speech.Recognition;

Pasted dieser Code von SDK-Dokumentation:

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;
  }
}

Ich habe Plattform Ziel x86 auch in Projekteigenschaften. Code kompiliert, aber sobald ich laufen oder debuggen Anerkennung nicht funktioniert. Eine Ahnung, was bin ich fehlt?

War es hilfreich?

Lösung

Sie erstellen ein Spracherkennungs-Engine, ohne einen Motor angibt. Da Sie die en-GB-Engine installiert haben, müssen Sie ein Culture (oder eine recognizerinfo ):

sre = new SpeechRecognitionEngine(new CultureInfo("en-GB")); 
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top