Si hace clic en el pequeño engranaje para la configuración de este video, notará una característica que quizás no haya visto antes, y que no muchos videos tienen. De hecho, le permite cambiar la pista de audio a uno de varios idiomas y escuchar un audio doblado. versión hablada, en lugar de tener que leer los subtítulos traducidos como lo haría normalmente. Ahora bien, esta función es de acceso limitado, no muchos canales la tienen y tuve que solicitar acceso a ella. Pero una vez que se implemente, podría cambiar mucho el funcionamiento de YouTube para audiencias internacionales. Pero tener esta característica plantea un problema, porque esas traducciones dobladas no se hicieron automáticamente.
Entonces, ¿cómo los haces y cómo lo hice yo? Bueno, la historia comienza hace un par de semanas, cuando hice un tweet que básicamente dijo que ya existen todos los requisitos para hacer este tipo de cosas con IA. Hay herramientas para transcribir audio, traducirlo y luego usar voces de IA para hablarlo, y luego puedes sincronizarlo con el tiempo de los subtítulos. E incluso hoy en día es posible entrenar una voz personalizada en uno mismo y poder hablar en otros idiomas. Desafortunadamente eso es muy caro en este momento. Así que me sorprendió mucho que aparentemente no hubiera ningún servicio que pudiera unir todas estas características separadas en una sola cosa. Y decidí, al igual que hice la aplicación YouTube Spammer Purge el año pasado, que lo haría yo mismo. Y así lo hice, hice este programa Python de código abierto, está en GitHub, y se llama Auto Synced and Translated Dubs, nombre muy creativo. Y como puedes adivinar, sí, eso es lo que usé para crear todos los doblajes traducidos para este video. De eso es de lo que voy a hablar hoy, qué hace el programa, cómo funciona, e incluso si usted mismo no es un creador, con suerte lo encontrará interesante.
Y tal vez una vez que esta función se implemente para más personas, entonces podrá decirle a su creadores favoritos al respecto, o esto incluso podría tener usos fuera de YouTube, estoy seguro. Debo señalar que YouTube en realidad tiene un proyecto experimental llamado "Aloud", que hace algo similar a esto, pero no es exactamente lo que tenía en mente. Primero, el proyecto es solo por invitación, aunque tengo acceso a él. Otra cosa es que solo admite español y portugués en este momento, que quería poder hacer mucho más que eso. En tercer lugar, una cosa clave que tenía en mente era el uso de los tiempos de los subtítulos para sincronizar exactamente el discurso de los doblajes con el contenido original. Mientras que con Aloud en este momento, requiere un poco de sincronización manual, de lo contrario habrá ser espacios y lagunas, ya que la IA no está hablando exactamente a la misma velocidad que la persona original. Y finalmente, aunque las voces de IA de Google son buenas, no son las mejores, y quería poder usar la IA más reciente de Microsoft Azure.
Voces, que en mi opinión son de mucha más calidad, tanto en términos de cómo suenan realistas como, literalmente, la frecuencia de muestreo es más alta. Y no es por presumir, pero mi programa aborda todas estas deficiencias que acabo de mencionar. Ahora, antes de mostrarlo, debo admitir que no es tan fácil de configurar como el proyecto de Google, por lo que no lo consideraría un reemplazo. Y espero que Google implemente algunas de estas características en su propio proyecto, porque en realidad no es tan difícil de implementar si pude hacerlo, y de esa manera todos pueden beneficiarse de una manera mucho más fácil.
Así que ahora puedo empezar a mostrarles cómo funciona el programa y lo que hace. Primero y más importante, necesitarás obtener un archivo SRT de subtítulos para el video, y realmente necesitan ser editados por humanos. Sé que decir esto es como el meme de cómo dibujar un búho, pero si al menos haces una transcripción adecuada, entonces YouTube tiene un característica donde puede poner la transcripción y creará automáticamente los tiempos, y luego puede descargar el archivo SRT desde allí. Si tuvieras que utilizar la transcripción automática que te da Google, que en primer lugar no tiene ninguna puntuación, probablemente sepa que a veces puede estropear un poco. Entonces, si luego lo tradujeras, sería muy malo. Y la razón por la que necesita un archivo de subtítulos SRT es porque no solo tienen el texto, sino que también tienen los tiempos para cada grupo de palabras habladas, que es la clave de todo este programa. De todos modos, una vez que tenga el archivo de subtítulos SRT, el programa usará la API de Google para traducir ese texto en cualquier idioma que establezca, e incluso generará un nuevo archivo de subtítulos traducidos para usted.
Luego, una vez que todo esté traducido, para cada uno de los idiomas que elija, que por cierto, toda la configuración se realiza en algunos archivos de configuración, y básicamente una vez que los configuras, no tienes que volver a cambiarlos, y hay un archivo donde pones la configuración para todos los idiomas, y luego, básicamente, puede tenerlos como ajustes preestablecidos, y luego elegir qué idiomas desea habilitar para traducir para cualquier ejecución que esté haciendo. Volviendo atrás, para cada uno de estos idiomas, va a alimentar la lista de líneas de texto al texto a voz. servicio de los subtítulos, que luego sintetizará un montón de clips de audio en una voz de IA para ese idioma en particular. Pero aquí está el problema, queremos que todos estos clips de audio estén sincronizados con el video original. como sea posible, tanto en términos de ubicación, como de la velocidad con la que se pronuncian. Ahora sabemos, basándonos en los tiempos de los subtítulos, cuánto tiempo debería tardar cada grupo de texto en hablar, porque simplemente restamos el tiempo final al tiempo inicial para ese grupo de texto.
Pero por el momento, ninguno de estos servicios de conversión de texto a voz le permite decirle: "Quiero el voz para hablar a esta velocidad de modo que termine esta duración exacta en milisegundos". O al menos no hay una forma directa de conseguir que lo haga. Eso es presagio. Así que ahora tenemos todos los clips de audio y sabemos cuánto debe durar cada uno de ellos. Entonces, el programa en realidad ofrece dos opciones sobre cómo obtener la longitud correcta para colocarlo.
Una opción es simplemente estirar o encoger cada clip de audio para que tenga exactamente la duración que necesita cada uno. Luego, para ensamblar la pista de audio final, el programa básicamente observará la duración del video original y haga una pista de audio silenciosa exactamente tan larga como esa y luego superponga cada clip de audio exactamente donde debería estar basado en el archivo de subtítulos en ese clip silencioso, y luego, una vez que está todo junto, tiene la pista traducida.
La desventaja es que "estiramiento de tiempo" es lo que se llama, encoger o extender el clip de audio, degrada el audio significativamente. Y esto es a pesar de que busco y uso lo que creo que es lo mejor libremente. cosa de programa de algoritmo de camilla de tiempo disponible, que utiliza este programa. En un momento, reproduciré el clip de audio comparando el audio estirado con otra técnica y podrás escuchar lo que quiero decir. Ahora que se ha dicho eso, diré que sea lo que sea que YouTube use para estirar y encoger el sonido para establecer la velocidad de reproducción, el suyo es fantástico.
No tiene ninguna degradación en la calidad, pero desafortunadamente lo que sea que use YouTube, estoy seguro de que es propietario, así que no puedo usarlo. Entonces, para resolver esto y obtener un clip de audio de máxima calidad que también es el longitud correcta exacta, agregué una característica que es lo que llamo una síntesis de dos pasos. Con esto, una vez que el programa recupera el clip de audio del servicio de texto a voz, volverá a ver cuánto tiempo es el clip de audio, y luego lo compara con la duración que debería tener el archivo de subtítulos, y solo obtiene la proporción entre ellos. Y en realidad podemos usar esa relación con el servicio de texto a voz, porque te permiten para ingresar una variable sobre qué tan rápido desea que hable la voz en comparación con su velocidad predeterminada. Y la clave aquí es que en realidad se sintetiza a esa velocidad modificada. No es que simplemente lo sinteticen y lo estiren como lo hicimos nosotros. Así que enviamos una segunda solicitud de voz, esta vez con la velocidad ajustada, y será terminar devolviendo un archivo que efectivamente tiene exactamente la duración correcta que pusimos.
Y no es del todo exacto, pero es como una diferencia imperceptible de milisegundos. Y la razón por la que no pudimos hacer esto antes es porque no sabíamos qué tan rápido la velocidad predeterminada iba a pronunciar ese conjunto particular de palabras. Necesitábamos hacerlo primero, ver cuánto tiempo tomó hacerlo y luego decirle: "Está bien, bueno, tienes que hacerlo mucho más rápido", y luego será exactamente correcto. Y, afortunadamente, la variable que aceptan le permite tener suficientes puntos decimales donde es lo suficientemente exacto. Si te lo estás preguntando, hay una opción en el programa para estirar también el segundo pase, por lo que literalmente se reduce exactamente a la longitud correcta de milisegundos.
Pero eso está desactivado de forma predeterminada porque no importa lo poco que estires el clip de audio, lo degrada significativamente. Así que ahora puedo darte un ejemplo de las dos técnicas diferentes. La primera es si solo haces una pasada y luego la estiras, y la segunda si haces dos pasadas. Entonces, con el lanzamiento original de Windows Vista, tenía un período de gracia de 30 días en el que prácticamente no pasaba nada. Entonces, con el lanzamiento original de Windows Vista, tenía un período de gracia de 30 días en el que prácticamente no pasaba nada.
Así que probablemente escuchaste la diferencia, los dos pases sonaron mejor. La razón por la que es opcional es porque le costará el doble de la cantidad de llamadas a la API, porque no es un nivel gratuito de estos servicios de texto a voz por lo general, pero si supera eso, lo está pagando. Puede que no sea una gran diferencia, pero es algo a considerar, así que le di una opción. Y luego, a partir de ahí, es lo mismo que antes, simplemente tomas cada clip de audio, colóquelo donde debe estar en este lienzo de archivos de audio y listo. Y luego simplemente hace el mismo ciclo para todos los idiomas que configuraste. Y una vez que dejes que se ejecute todo automáticamente, te quedarán un montón de archivos de doblaje de audio y también los archivos de subtítulos traducidos.
Pero espera, hay más, porque ahora que tienes todos estos archivos de audio, necesitas adjúntelos al archivo de video como pistas de audio adicionales cuando vaya a cargar el archivo a YouTube. Así que hice un guión separado como ese y lo incluí también. Aunque en algún momento probablemente lo integre en el programa principal. Este script solo toma cada archivo de audio y obtiene el idioma del nombre del archivo, y luego usa un programa muy popular llamó a FFmpeg para agregar la pista de audio con el etiquetado de idioma adecuado al video sin tener que convertir el video.
Y si vas y miras las pistas de audio en un reproductor multimedia, verás que están todas allí. Ah, e incluso tiene la opción de fusionar una pista de efectos de sonido en cada copia antes de agregarla al video. Entonces, todos los idiomas tendrán música o efectos que se usan a lo largo del video original. Pero espera, aún hay más, porque YouTube te permite agregar títulos y descripciones traducidos. para que se muestren en el idioma nativo de las personas dependiendo de su localidad. Así que sí, incluí otro script que también lo traduce. Simplemente ingrese el título y la descripción, y nuevamente usará la API de Google Translate para todos los idiomas. que había configurado, y luego colóquelo en un archivo de texto desde el cual puede copiarlos y pegarlos fácilmente.
Entonces de esta manera, todo está cubierto. Alguien que hable otro idioma verá el título y la descripción en su propio idioma, ver los subtítulos allí, incluso escucharán el video en su propio idioma de principio a fin. Así que definitivamente voy a comenzar a hacer esto en la mayoría de mis videos en el futuro. Como dije, me gustaría poder hacer un modelo de voz personalizado para que todos los idiomas también se hablaran con mi propia voz. Pero por el momento, eso es demasiado caro. Microsoft Azure sí ofrece este servicio, e incluso tienen en vista previa el capacidad de hacer esta cosa multilingüe donde hablará en varios idiomas.
Sin embargo, debe pagar por el tiempo de cómputo para entrenar ese modelo, que cuesta $52 la hora, y aparentemente toma de 20 a 40 horas entrenar a un modelo, así que eso es $ 1,000 a $ 2,000. Y no tienes forma de saber qué tan bien va a sonar hasta después de que esté hecho. A partir de ahí, usar el modelo tiene un costo similar, es de $ 24 versus $ 16 para la cantidad de caracteres que sea. Aunque tiene que pagar por el alojamiento de punto final, que es básicamente donde el modelo de voz está disponible para su uso, y eso cuesta $ 4 por hora. Aunque puedes simplemente suspenderlo o pausarlo cuando no lo estés usando. Solo asegúrate de recordar suspenderlo. Google Cloud también permite voces personalizadas, pero no creo que te permitan hacerlo en varios idiomas como lo hace Microsoft Azure.
No pude encontrar ningún precio sobre cuánto cuesta entrenar el modelo, Creo que en realidad podría ser gratis con Google. Sin embargo, el problema es que debe pagar aparentemente $ 2,900 por mes para alojar el modelo y usarlo. Y no es como Microsoft Azure, donde puedes pausarlo cuando no lo estás. Otra cosa es que Google dice que tomará varias semanas entrenar el modelo personalizado donde con Azure, ¿cuánto, 40 horas? Tan grande diferencia allí. Aunque me gustaría hacer una predicción. No tengo ninguna duda de que eventualmente la IA se volverá tan buena y tan barata que YouTube simplemente hará Todo esto con la transcripción y el doblaje de básicamente todos los videos automáticamente. Ni siquiera tendrás que elegir hacerlo. En este momento, creo que el principal factor limitante es la capacidad de transcripción, la voz a texto. Porque si bien podría ser bueno para discursos ideales en los que estás así de cerca del micrófono hablando claramente como un audiolibro, en el mundo real para casos como el mío, donde tiendo a hablar un poco rápido y a usar mucha jerga tecnológica, como usted probablemente sepa por ver YouTube y usar esos subtítulos automáticos, no son exactamente tan buenos la mayor parte del tiempo.
Ahora, si se está preguntando acerca de todo mi flujo de trabajo, como si estuviera buscando hacer esto usted mismo, transcribir los videos, yo en realidad use el modelo "Whisper" de OpenAI, que es gratuito y puede ejecutarlo localmente en su propia GPU si tiene una lo suficientemente potente. Y he encontrado que este modelo es mucho más preciso que cualquier otro que haya visto, incluso la API de transcripción de Google. La cosa Whisper incluso hace la puntuación bastante decentemente. Quiero decir, la primera vez que lo probé, puse un video de 4500 palabras que duraba 22 minutos y se saltó tres palabras. Estaba asombrado. No siempre es tan bueno, pero es un muy buen punto de partida desde el cual puedes simplemente reproduzca el video y luego corrija cualquier cambio menor que vea a medida que avanza. Además, otro programa en mi flujo de trabajo se llama Descript. Hace un montón de cosas, pero literalmente solo lo uso para las habilidades de edición de transcripciones. Descript generará su propia transcripción, pero la de OpenAI Whisper es mucho más precisa que encontré.
Aunque, afortunadamente, Descript te permite simplemente reemplazar la transcripción. Lo pegas y sincronizará el nuevo que pusiste. Y luego, lo que me gusta es que hay teclas rápidas para cambiar rápidamente la puntuación y las mayúsculas de palabras sobre la marcha mientras se reproduce, que la mayoría de las veces es el problema con los servicios de transcripción, incluso OpenAI. Lo principal es que hay un período en el lugar equivocado, así que esto es muy fácil de arreglar eso. También es importante que descubrí que la forma en que Descript exporta los archivos de subtítulos, lo que puede hacer, es más adecuada para hacer doblajes. Porque a diferencia de los subtítulos de YouTube, donde los tiempos se contraponen literalmente entre sí.
Sin interrupciones, los subtítulos de Descript comenzarán y terminarán exactamente con las oraciones, por lo que los doblajes son aún más precisos en los tiempos. Ahora agregué una función en el programa para tener en cuenta los subtítulos como en YouTube, donde agregará un tiempo de búfer entre los tiempos para que cuando se generen, habrá un poco de espacio entre las oraciones, por lo que no están todas encadenadas sin interrupciones. Pero, por supuesto, seguirá siendo mejor si los subtítulos se generan desde el principio para estar exactamente alineados con el discurso.
De todos modos, el programa tiene algunas opciones de configuración más en los archivos de configuración, No voy a hablar mucho de eso, se trata principalmente de cosas de formato. Incluso puede personalizar cuánto espacio hay entre oraciones cuando habla la voz, ese tipo de cosas. Pero si está realmente interesado, puede mirar los tres archivos de configuración, todos están explicados allí. Así que espero que hayas encontrado este video genial e interesante. Si lo hiciste, asegúrate de darle un gran pulgar hacia arriba para que sepa que te gustó. Y si quieres seguir viendo, el próximo video que te recomiendo es donde Hablé sobre una herramienta de inteligencia artificial para mejorar el habla hecha por Adobe, que me impresionó.
Así que puede hacer clic allí mismo, voy a poner el enlace aquí. Así que muchas gracias por mirar y nos vemos en la próxima..