2010-10-18 31 views
7

Solo quiero saber si hay alguna compilación en librerías o librerías externas en Java o C# que me permita tomar un archivo de audio y analizarlo y extraer el texto del mismo.Convertir audio a texto

Necesito hacer una solicitud para hacerlo, pero no sé por dónde puedo comenzar.

+0

definitivamente no incorporado. Supongo que desea extender sus preguntas a bibliotecas que puede usar desde Java o C#. – Thilo

+0

Gracias Sr. Thilo, está bien si conoce cualquier biblioteca externa de C# o Java que pueda hacer lo que yo quiera, lo agradeceré si me lo diga, Gracias de antemano –

+0

Esto podría ayudar http://java.sun.com/ productos/java-media/speech/reference/codesamples/index.html –

Respuesta

1

Puede usar SoX (la navaja suiza de programas de procesamiento de sonido) para convertir archivos de audio a archivos de texto con valores numéricos correspondientes a la frecuencia/volumen del sonido.

Lo he hecho para un proyecto anterior pero no conozco las opciones de comando exactas.

aquí es un enlace al proyecto: http://sox.sourceforge.net/Main/HomePage

7

Aquí es un ejemplo completo utilizando C# y System.Speech

El código puede ser dividido en 2 partes principales:

Configuración del objeto SpeechRecognitionEngine (y sus elementos necesarios) manejando los eventos SpeechRecognized y SpeechHypothesized.

Paso 1: Configuración de la SpeechRecognitionEngine

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

En este punto, el objeto está listo para iniciar la transcripción de audio desde el micrófono. Sin embargo, debe manejar algunos eventos para poder acceder a los resultados.

Paso 2: Manejo de los SpeechRecognitionEngine Eventos

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

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

private void SpeechHypothesizing (object sender, SpeechHypothesizedEventArgs e) { resultados /// en tiempo real de la cadena motor de realTimeResults = e.Result.Texto; }

privada vacío SpeechRecognized (remitente del objeto, SpeechRecognizedEventArgs e) { /// respuesta final de la cadena del motor finalAnswer = e.Result.Text; }

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

_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/