Pregunta

Me escribió una aplicación en C # para el reconocimiento de voz utilizando System.Speech que funciona bien en Windows 7. Sin embargo estoy después de crear la misma aplicación que funcione en Windows 2003 (x86).

Mi entorno de programación: Windows 7 x64 Pro Visual Studio 2008

Para el desarrollo de esta aplicación en mi entorno de programación que instalar:

1.Microsoft Speech Plataforma - Server Runtime (versión 10.1) (x86)

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

2.Microsoft Speech Platform - Kit de desarrollo de software (SDK) (Versión 10.1) (86)

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

3.Microsoft Speech Platform - Server Runtime Idiomas (versión 10.1)

(SR aquí instalada para es-ES)

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

En mi programa en lugar de System.Speech que utiliza Microsoft.Speech.Recognition;

Pegado este código de documentación del 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;
  }
}

También Establecer destino para la plataforma x86 en las propiedades del proyecto. compila el código, pero una vez que corro o el reconocimiento de depuración no funciona. Cualquier idea de lo que me estoy perdiendo?

¿Fue útil?

Solución

Estás creando un motor de reconocimiento de voz sin especificar un motor. Puesto que usted ha instalado el motor es-ES, es necesario especificar un CultureInfo (o un recognizerinfo ):

sre = new SpeechRecognitionEngine(new CultureInfo("en-GB")); 
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top