Cómo recreamos la voz de un joven Leonid Kuravlev en cuatro minutos de discurso

¡Hola! Mi nombre es Oleg Petrov, soy el jefe del grupo de I + D en el Centro de Tecnología del Habla. Llevamos mucho tiempo trabajando no solo en el reconocimiento de voz, sino que también sabemos cómo sintetizar voces. El ejemplo más simple de por qué una empresa necesita esto: para que para cada nuevo escenario que se enseñe a los robots de voz, no sea necesario organizar una nueva grabación con la persona que una vez lo expresó. También desarrollamos productos basados ​​en biometría facial y de voz y análisis de voz. En general, estamos trabajando en tareas serias y complejas para diversas empresas.







Pero recientemente, colegas de Sberbank vinieron a nosotros con una propuesta para participar en una historia entretenida: "expresar" al héroe de Leonid Kuravlev en un nuevo video. Para él, el rostro de Kuravlev fue recreado a partir de fotogramas de la película "Ivan Vasilyevich cambia de profesión" y superpuesto al rostro de otro actor usando la tecnología Deepfake. Para que no solo podamos ver, sino también escuchar a Georges Miloslavsky en 2020, decidimos ayudar a nuestros colegas. De hecho, a lo largo de los años, la voz de todos nosotros cambia, e incluso si Leonid Vyacheslavovich expresara al héroe, el efecto no sería el mismo.



Debajo del corte, les diré por qué esta, que ya en muchos aspectos es una tarea familiar de síntesis de voz, resultó ser un poco más difícil de lo que esperábamos, y explicaré por qué tales voces no pueden engañar a los sistemas de autorización biométrica de alta calidad.



"Ivan Vasilyevich cambia de profesión" fue lanzado en 1973. En esta década, Leonid Kuravlev logró protagonizar un par de docenas de largometrajes. Sin embargo, esto no simplificó nuestra tarea de ninguna manera:



  1. Los personajes pueden tener pocos monólogos largos;
  2. En los largometrajes, los efectos acústicos, la música de fondo, etc. se superponen al discurso;
  3. El sonido de las películas antiguas de los propios años 70, aunque digitalizadas, tiene defectos;
  4. El actor siempre ajusta la forma de hablar al personaje, representa varias emociones, pero fue necesario repetir la forma de hablar del personaje de Georges Miloslavsky.


Y, a pesar del alto nivel de incertidumbre, asumimos esta tarea, y así abordamos su solución.



Recopilación de datos para el entrenamiento TTS



TTS (Text-to-speech) es una tecnología para traducir texto impreso en voz hablada. Actualmente, se implementa, por regla general, en una pila de métodos de aprendizaje profundo, lo que permite lograr una alta calidad de sonido de una voz sintetizada en comparación con otros enfoques. Por ejemplo, utilizando las capacidades de la supercomputadora Christophari, el modelo puede entrenarse para esto en solo un par de horas.



La principal fuente de material del discurso fueron fragmentos de audio de películas con la participación de Leonid Kuravlev: "Familiares profundos", "No puede ser", "Ivan Vasilyevich cambia de profesión", "Vanidad de vanidades". No todos los episodios de la aparición del héroe de la película son adecuados para enseñar el sistema TTS. Es necesario minimizar la presencia de música de fondo y ruido, el habla de otros actores y diversas manifestaciones que no son del habla. Después de una minuciosa búsqueda de fragmentos adecuados, obtuvimos como máximo 7 minutos de discurso, bastante expresivos y variados según el carácter del personaje interpretado por Leonid. Además, cada película tenía su propia imagen acústica, lo que también afecta en gran medida la percepción y complica la tarea.



Después de preparar las transcripciones de texto del material cortado de acuerdo con nuestra tubería habitual, se construyó una transcripción fonémica del texto y se alineó con la pista de audio. Es necesario estirar una secuencia de fonemas sobre el sonido para determinar los lugares de las pausas reales cuando el hablante pronuncia el texto. Todas estas acciones las realizamos con la ayuda de un procesador lingüístico de diseño propio y un modelo acústico, amablemente facilitados por el departamento de reconocimiento de voz.



La disposición exacta de los fonemas en un disco no es tan importante para un modelo de sintetizador si contiene un módulo llamado Atención. El mecanismo de atención le permite entrenar el modelo para distinguir fonemas de forma independiente, sin embargo, el marcado de pausa es mucho más importante; en primer lugar, las pausas pueden variar mucho en longitud, y conocer la longitud exacta le permite mantener la estabilidad durante el aprendizaje, y en segundo lugar, las pausas suelen ser indicadores de los límites del sintagma. Unidades de habla estructurales independientes, mediante las cuales a menudo es posible trazar los límites de declaraciones independientes. Esto le permite dividir frases demasiado largas en frases más cortas para un uso más eficiente de la memoria de la GPU en el proceso de entrenamiento, así como para aumentar ligeramente el conjunto de datos enumerando todas las posibles opciones de división.



Limpieza de datos



Aunque intentamos extraer las grabaciones más limpias posibles de las películas, algunas de ellas seguían acompañadas de sonidos extraños (el ruido de la ciudad, sonidos de la naturaleza, el sonido del agua, etc.) o música.



Para solucionar este problema, utilizamos dos proyectos de código abierto: un modelo para mejorar la calidad de la voz, trabajando directamente en la señal de audio sin procesar y un algoritmopara dividir una composición musical en partes: voz, batería, bajo y el resto. Necesitábamos obtener grabaciones claras de la voz del hablante con la máxima calidad de sonido (para nuestro sistema TTS - 22050 Hz). Cualquier artefacto ciertamente se filtrará en el modelo neuronal de la voz del hablante, especialmente cuando se trata de una muestra de entrenamiento tan pequeña. Gracias a los proyectos enumerados, fue posible separar completamente la música de la voz sin una pérdida significativa de calidad para aproximadamente la mitad de los ejemplos recopilados.



Como resultado, después de todas las manipulaciones, todavía tenemos 4 minutos y 12 segundos de un discurso claro de la voz de Leonid Vyacheslavovich Kuravlev. Quedó claro que nuestra arquitectura de combate TTS, que, por cierto, puedes escuchar en la nube) no es adecuado para este caso. Sin embargo, justo a la mano estaba un modelo TTS inusual relativamente nuevo de NVidia llamado Flowtron , basado en el método de flujo autorregresivo inverso (IAF).



La característica principal del modelo Flowtron es que se puede utilizar para sintetizar diferentes formas de pronunciar un mismo texto, con una amplia variedad de entonaciones y estilos de habla. Pero esta propiedad es un "arma de doble filo", ya que los ejemplos generados por el modelo distan mucho de ser siempre adecuados en términos de percepción. La entonación puede cambiar de manera muy abrupta y antinatural, la frecuencia de tono (tono de voz) puede cambiar en un amplio rango, creando un sonido divertido pero innecesario. Cuantos más datos iniciales para el entrenamiento, más natural y estable será generar el habla. Pero incluso con una pequeña cantidad de material, a veces es posible sintetizar buenos ejemplos. Decidimos conseguirlos.



Para empezar, un modelo existente, entrenado en un gran conjunto de datos expresivos, tenía que ser entrenado para hablar con una nueva voz. Si solo toma y "alimenta" todo 4 minutos 12 segundos de datos, entonces, dependiendo del parámetro que regule la sensibilidad del entrenamiento, el modelo se volverá a entrenar inmediatamente (hablará muy mal) o aprenderá muy, muy mal (tampoco hablará con una nueva voz) ... Y puede "capturar" el valor óptimo del parámetro durante mucho tiempo y con pasión. Es una buena práctica mezclar datos nuevos con datos antiguos en una proporción conveniente (por ejemplo, uno de cada diez). Luego, antes del inicio del proceso de reentrenamiento, los nuevos datos tendrán tiempo de "asimilarse" bien. Así lo hicieron, pero primero cortaron ejemplos de pausas con superposición, que, con un leve movimiento de los dedos sobre el teclado, convierte 4 minutos de discurso en 23.



El modelo así formado ya era capaz de sintetizar algo con la voz del artista, pero se obtuvieron ejemplos más o menos adecuados en un caso de veinte. También es importante conseguir el estilo, entonación, emoción, calidad de sonido necesarios, que en este caso es extremadamente difícil de controlar. Por lo tanto, fue necesario sintetizar varias decenas de miles de ejemplos para seleccionar manualmente varios adecuados de ellos.



Aquí vienen en nuestra ayuda los flujos normalizadores, sobre los que se construye el modelo en sí. De hecho, Flowtron aprende a mostrar las características acústicas de una señal de voz, dado el texto, en puntos de una distribución normal de la misma dimensión, y esta pantalla es reversible. Durante la síntesis, tiene lugar el proceso inverso (por lo tanto, los flujos se invierten y se normalizan). Por lo tanto, puede tomar un registro, mostrarlo mediante un modelo en puntos específicos y, a partir de estos puntos, recuperar el mismo registro. ¿Inútil? ¡Realmente no! Puede mezclar cuidadosamente estos puntos con los mismos de otra grabación y, por lo tanto, transferir parcialmente el estilo de la última. Puedes añadirles un poco de ruido y conseguir una grabación casi original, ligeramente diferente a la original. Pero si agregas mucho ruido, obtienes tonterías. Por lo tanto, puede multiplicar el conjunto de datos original, obteniendo muchos similares,¡pero no exactamente los mismos ejemplos!



Sin embargo, en este caso, no se puede confiar plenamente en la decencia del modelo. Puede sintetizar muchas cosas. Tuve que escuchar varios miles de ejemplos de un conjunto de datos replicado y seleccionar de manera experta los de alta calidad. Este enfoque se puede llamar "modelo con orejas". Nos permitió obtener una hora completa de datos de entrenamiento a partir de los 23 minutos iniciales (teniendo en cuenta el corte por pausas).



Este programa de formación de varias etapas ha dado sus frutos. Aunque la mayoría de los ejemplos sintetizados con su ayuda ya sonaban bastante valiosos, todavía requería "fuerza bruta". Mezclamos los puntos de los ejemplos de "Ivan Vasilievich" con los puntos de partida. En algún lugar resultó el efecto de una película vieja o una habitación grande. O la frase salió con la voz de un artista, pero no de una manera "miloslavia". Tuve que elegir "sólo" entre un par de miles de muestras. Resultó alrededor de trescientos ejemplos de las frases cortas requeridas con una amplia variedad de estilos y entonaciones, para las cuales, de hecho, seleccionamos muestras para el video promocional de Sber.



Por lo tanto, después de haber realizado una especie de hackatón semanal en nuestro equipo de síntesis de voz de RTC, pudimos recrear la voz de hace 50 años en solo 4 minutos de discurso. La tecnología que hemos probado abre posibilidades para recrear las voces perdidas hace mucho tiempo de personalidades famosas a partir de una cantidad extremadamente pequeña de material. Puedes ver lo que salió de todo esto al final.





Después de leer todo esto, probablemente pensaste que tales capacidades tecnológicas ponen en duda la confiabilidad de los sistemas biométricos, porque la voz de cualquier persona pública, video blogger o usuario común de las redes sociales que publica videos amateur puede ser fácilmente falsificada. A pesar de que de oído la voz sintetizada de Leonid Kuravlev es indistinguible de la real, sigue siendo una síntesis. Esto significa que contiene tales características de sonido que indican que la voz no está viva. La lucha contra la suplantación de identidad y la protección contra los piratas informáticos a menudo se llevan a cabo en concursos científicos especiales, incluidos los mundiales, donde nuestro equipo ha ganado... En los ODM, creemos que los desarrolladores siempre deben ir un paso por delante, y no solo crear nuevas tecnologías y productos basados ​​en ellos, sino también buscar constantemente nuevos medios de protección, sin detenerse en lo que se ha logrado.



All Articles