voz visual texto studio reconocimiento reconocedor recognition platformnotsupportedexception ningún instalado idioma hay gramática con coincide c# .net speech-recognition voice-recognition speech-to-text

c# - visual - Voz/Voz a texto



system platformnotsupportedexception no hay ningún reconocedor instalado (6)

Necesito una API o una biblioteca (preferiblemente gratuita) que convierta la voz / voz a través de un micrófono, en texto (cadena).

Además, necesitaré una API o biblioteca que pueda hacer conversión de texto a voz.

Me gustaría usar C # y .NET, pero otros idiomas serán suficientes.

Gracias.


Aquí hay un ejemplo completo usando C # y System.Speech para convertir de voz a texto

El código se puede dividir en 2 partes principales:

configurando el objeto SpeechRecognitionEngine (y sus elementos requeridos) manejando los eventos SpeechRecognized y SpeechHypothesized.

Paso 1: Configurar el motor de reconocimiento de voz

_speechRecognitionEngine = new SpeechRecognitionEngine(); _speechRecognitionEngine.SetInputToDefaultAudioDevice(); _dictationGrammar = new DictationGrammar(); _speechRecognitionEngine.LoadGrammar(_dictationGrammar); _speechRecognitionEngine.RecognizeAsync(RecognizeMode.Multiple);

En este punto, su objeto está listo para comenzar a transcribir audio desde el micrófono. Sin embargo, debe manejar algunos eventos para poder acceder a los resultados.

Paso 2: Manejo de los eventos de SpeechRecognitionEngine

_speechRecognitionEngine.SpeechRecognized - = new EventHandler (SpeechRecognized); _speechRecognitionEngine.SpeechHypothesized - = new EventHandler (SpeechHypothesizing);

_speechRecognitionEngine.SpeechRecognized + = new EventHandler (SpeechRecognized); _speechRecognitionEngine.SpeechHypothesized + = new EventHandler (SpeechHypothesizing);

Private void SpeechHypothesizing (objeto remitente, SpeechHypothesizedEventArgs e) {/// resultados en tiempo real de la cadena del motor realTimeResults = e.Result.Text; }

Private void SpeechRecognized (emisor de objetos, SpeechRecognizedEventArgs e) {/// respuesta final de la cadena del motor finalAnswer = e.Result.Text; }

Eso es. Si desea utilizar un archivo .wav pregrabado en lugar de un micrófono, debería utilizar

_speechRecognitionEngine.SetInputToWaveFile (pathToTargetWavFile);

en lugar de

_speechRecognitionEngine.SetInputToDefaultAudioDevice ();

Hay un montón de opciones diferentes en estas clases y vale la pena explorarlas con más detalle.

http://ellismis.com/2012/03/17/converting-or-transcribing-audio-to-text-using-c-and-net-system-speech/


Consulte Uso de c ++ para llamar y usar el Reconocimiento de voz de Windows.

Que dice:

Microsoft proporciona motores de reconocimiento de voz para las versiones de Windows tanto del cliente como del servidor. Ambos pueden ser programados con C ++ o con lenguajes .NET. La API tradicional para la programación en C ++ se conoce como SAPI. Los espacios de nombres de .NET framework para voz de cliente y servidor son System.Speech y Microsoft.Speech.

Documentación de SAPI: http://msdn.microsoft.com/en-us/library/ms723627(VS.85).aspx

El espacio de nombres .NET para el reconocimiento del cliente es System.Speech - http://msdn.microsoft.com/en-us/library/system.speech.recognition.aspx . Windows Vista y 7 incluyen el motor de voz.

El espacio de nombres .NET para el reconocimiento del servidor es Microsoft.Speech y el SDK completo para la versión 10.2 está disponible en microsoft.com/downloads/en/… . El motor del habla es una descarga gratuita.

Muchas de las preguntas anteriores han abordado esto. Consulte Prototipo basado en el reconocimiento de voz , inicie el reconocimiento de voz y la síntesis de voz , y SAPI y Windows 7 Problem para obtener ejemplos.


Hay un DLL incorporado en cada sistema operativo Windows para Text2Speach. Encontrará la dll correspondiente en c: / Programs / Shared Folders / Microsoft Shared / Speech / sapi.dll (sAPI - speach api) - No estoy muy seguro acerca de la ruta - pero de todos modos puede buscar sapi.dll.

Después puedes usar el siguiente fragmento de código

SpVoice oVoice = new SpVoice(); oVoice.Voice = oVoice.GetVoices("","").Item(0); // 0 indicating what kind of speaker you want oVoice.Volume = 50; oVoice.Speak("hello world", SpeechVoiceSpeakFlags.SVSFDefault); oVoice = null;


Para la conversión de texto a voz tienes que seguir 3 pasos:

1. Agregar referencia System.Speech.

2. Añadir encabezados:

utilizando System.Speech;

utilizando System.Speech.Synthesis;

3. Agregue el siguiente código donde textBox1 es un nombre predeterminado de Cuadro de texto.

SpeechSynthesizer speaker = new SpeechSynthesizer(); speaker.Rate = 1; speaker.Volume = 100; speaker.Speak(textBox1.Text);


Puede usar CMU Sphinx ya que es una solución bastante abierta y escalable y creo que puede usarse tanto en el lado del cliente como del servidor:

http://cmusphinx.sourceforge.net/

Si está buscando una solución de escritorio de Microsoft, puede usar SAPI:

http://msdn.microsoft.com/en-us/magazine/cc163663.aspx

En el lado del servidor, puede usar Microsoft Unified Communication, pero también considere las licencias:

http://www.microsoft.com/uc/en/gb/default.aspx

Actualizar:

Este hilo también tiene una buena referencia:

Reconocimiento de voz C #: ¿Es esto lo que dijo el usuario?


I''d like to use C# and .NET, but other languages will suffice. Marque esto si está abierto a C++ Festival