Pregunta

Estoy construyendo una aplicación web para la grabación de mensajes de voz y estoy buscando las mejores opciones para convertir los mensajes de voz a texto. ¿Alguien tiene algunas sugerencias sobre lo que debe utilizar para hacer la conversión? Would System.Speech trabajo?

¿Fue útil?

Solución

System.Speech es un cliente de API centrado. Vista y Windows 7 incluyen los motores de voz para System.Speech. Usted podría utilizar esto para la transcripción debido a que los motores de voz del cliente proporcionados por Microsoft incluyen una gramática de dictado.

Los motores de voz del servidor proporcionados por Microsoft no incluyen una gramática de dictado, por lo que son más difíciles de usar para la transcripción. El espacio de nombres de .NET para el reconocimiento del servidor es Microsoft.Speech y el SDK completo para la versión 10.2 está disponible en http://www.microsoft.com/downloads/en/details.aspx?FamilyID=1b1604d3-4f66-4241-9a21-90a294a5c9a4 . El motor de voz es una descarga gratuita.

Para empezar a utilizar el habla NET, hay una muy buena artículo que fue publicado hace unos años en el http://msdn.microsoft.com/en-us/magazine/cc163663.aspx . Es probablemente el mejor artículo de introducción que he encontrado hasta el momento. Es un poco fuera de fecha, pero muy helfpul. (El método AppendResultKeyValue se dejó caer después de la beta.)

Este es un ejemplo rápido que muestra una de las más sencillas formas de las ventanas .NET aplicación para utilizar una gramática de dictado que podía imaginar. Esto debería funcionar en Windows Vista o Windows 7. He creado un formulario. Caído un botón en él e hizo el gran botón. Se ha añadido una referencia a System.Speech y la línea:

using System.Speech.Recognition;

Entonces añade el siguiente controlador de eventos para button1:

private void button1_Click(object sender, EventArgs e)
{         
    SpeechRecognitionEngine recognizer = new SpeechRecognitionEngine();
    Grammar dictationGrammar = new DictationGrammar();
    recognizer.LoadGrammar(dictationGrammar);
    try
    {
        button1.Text = "Speak Now";
        recognizer.SetInputToDefaultAudioDevice();
        RecognitionResult result = recognizer.Recognize();
        button1.Text = result.Text;
    }
    catch (InvalidOperationException exception)
    {
        button1.Text = String.Format("Could not recognize input from default aduio device. Is a microphone or sound card available?\r\n{0} - {1}.", exception.Source, exception.Message);
    }
    finally
    {
        recognizer.UnloadAllGrammars();
    }                          
}

Un poco más de información comparando las distintas versiones de los motores de voz y APIs enviados por Microsoft se puede encontrar en ¿Cuál es la diferencia entre System.Speech.Recognition y Microsoft.Speech.Recognition?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top