Tengo muchos contenidos de video de conferencias para los que me gustaría tener los subtítulos. YouTube genera automáticamente subtítulos para videos bajo ciertas condiciones (esas condiciones siguen siendo un misterio para mí).
Me gustaría poder utilizar esta tecnología de reconocimiento de voz fuera de YouTube. No quiero subir todos los videos solo para obtener la transcripción (demasiado tiempo), además, no creo que YouTube lo haga para videos que duran más de 30 minutos (la mayoría de ellos son), además, yo no piense que lo hará para los videos que no están en la lista pública (lo cual es un problema porque es contenido premium que se debe vender).
Escenario perfecto: hay un programa que puedo ejecutar desde mi escritorio para obtener la transcripción de estos videos y es de igual o mejor calidad que la de YouTube y tiene códigos de tiempo similares a un SRT o XML que YouTube genera [ Cómo obtener subtítulos de YouTube ].
Escenario aceptable: hay algunos trucos que puedo hacer para obligar a YouTube a transcribir los videos, ya sean privados o públicos, y a pesar de la duración.
Escenario factible: hay una biblioteca o algo que puedo usar para codificar mi propio programa. Soy bueno con C # y estoy de acuerdo con C ++ (pero realmente prefiero C #).
Respuestas:
Google implementó la API Web Speech (tanto para el reconocimiento de voz como para la síntesis) en Chrome, que puede usar si es un desarrollador. Esto es lo que YouTube usa para generar subtítulos en algunos videos. Quizás encuentres código para interactuar con él.
El flujo de datos probablemente sería:
Un archivo de video => extraer y convertir audio => enviarlo a Google API => obtener el texto => escribir en un SRT.
EDITAR: no parece haber una página API oficial, aparte de la especificación W3C. Así que aquí hay más enlaces:
Estos ejemplos tratan sobre el uso de la API desde Chrome, pero puede consultar directamente el motor de reconocimiento de voz en línea de Google. Por ejemplo, Jasper , un asistente personal de reconocimiento de voz para Raspberrry Pi, le permite elegir Google como el motor de reconocimiento de voz.
fuente
Hay una herramienta llamada "autosub" (ver agermanidis / autosub en github) que hace precisamente esto, aunque utiliza la API de voz de Google más antigua. La herramienta usa ffmpeg para pelar el audio en archivos FLAC y luego envía los archivos FLAC a Google para su transcripción. Produce un archivo SRT o VTT.
La precisión es baja en parte debido a la antigua API de Google. Hay una API más reciente ("API de REST de Cloud Speech" en https://cloud.google.com/speech/docs/apis ). Esta API es bastante simple y, en algún momento, iba a bifurcar autosub para usarla.
La alternativa es subir a YouTube y descargar el archivo VTT cuando se completen los subtítulos. La complicación con esto es que YouTube produce subtítulos muy finos (por ejemplo, un par de palabras) en lugar de, por ejemplo, una oración. Esto hace que sea más difícil verificar los subtítulos cuando se realiza un escaneo manual.
fuente
La forma más fácil es esta: vaya a Google Docs, abra un nuevo documento de texto y seleccione entre las herramientas "escritura de voz", luego reproduzca su cinta. Si. ¡Es fácil! (y admite varios idiomas)
De lo contrario, puede usar una página web local con HTML5 como esta: https://www.labnol.org/software/add-speech-recognition-to-website/19989/
fuente