Convertir audio en texto
-
08-10-2019 - |
Pregunta
Yo sólo quiero saber si hay alguna acumulación en las bibliotecas o librerías externas en Java o C # que me permiten tomar un archivo de audio y analizarlo y extraer el texto de la misma.
Necesito hacer una solicitud para hacerlo, pero no sé de donde puedo empezar.
Solución
Estas son algunas de las opciones:
Otros consejos
Aquí está 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 requeridos) el manejo de la SpeechRecognized y eventos 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. Es necesario para manejar algunos eventos sin embargo, con el fin de conseguir realmente el acceso 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);
SpeechHypothesizing private void (object sender, SpeechHypothesizedEventArgs e) { /// resultados en tiempo real de motor realTimeResults cadena = e.Result.Text; }
vacío SpeechRecognized (remitente del objeto privada, 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 diferentes opciones en estas clases y que vale la pena explorar con más detalle.
Microsoft Speech API . Creo que proporcionan un SDK que se puede utilizar para su objetivo.
Para Java, parece que hay una solución de sol: javax.speech.recognition
Se puede utilizar SoX (la navaja suiza de los programas de procesamiento de sonido) para convertir archivos de audio a un archivo de texto con los valores numéricos correspondientes al sonido de frecuencia / volumen.
lo he hecho para un proyecto anterior, pero no saben exactamente las opciones de comando.
Aquí hay un enlace al proyecto: http://sox.sourceforge.net/Main/HomePage