Clonando Voces en Español: Microsoft Azure Speech Studio
Ahora vamos con el clonado de voces en Español, y usamos para esta tarea el servicio de Microsoft Azure Speech Studio, que permite hacer un clonado de altísima calidad utilizando tanto ficheros de audio como grabación desde el micrófono.
Figura 46: Clonando mi voz con Microsoft Azure Speech Studio
Eso sí, es necesario aceptar los términos y condiciones del clonado de la voz desde el micrófono. En este caso hemos hecho la prueba con 50 frases, para intentar hacerlo bien, lo que lleva aproximadamente una hora de trabajo y clonación de la voz.
Figura 47: Clonando mi voz con Microsoft Azure Speech Studio
Así de sencillo es hoy en día. Después, ya se puede utilizar de forma indiscriminada en cualquier entorno, ya sea en directo, o en vídeos grabados, como vamos a ver a continuación.
Stable Diffusión + Talking head + Voice Clonned + Lips Sync
En este primer ejemplo hemos utilizado una imagen creada con el servicio de
Stable Diffusion en MyPublicInbox que te permite entrenar un modelo con solo 20 imágenes tuyas. Una vez entrenado puedes generar cualquier imagen de ti que quieras con solo darle el prompt adecuado.
Después, hemos animado la imagen generada por el modelo de
Stable Diffusion en MyPublicInbox con un algoritmo de
Talking Heads, que permite con una sola fotografía generar un movimiento. Después, con la voz clonada hicimos el audio. Y para terminar, un algoritmo de
Lips Sync, para conseguir que el audio y los labios de la
Talking Head encajaran.
Figura 49: Stable Diffusion + Talking Heads +
+ Voz Clonada + Lips Sync
El resultado es curioso, pero lo hicimos más que nada para la presentación, ya que el objetivo era ver cómo la voz tiene mi tono y mi forma de hablar habitual. Eso sí, no la hemos tuneado con una herramienta de generación de velocidad, tono, volumen, etcétera en tiempo real, por eso queda un poco "loquendo".
Figura 50: DeepFake + Voz Clonada + Lips Sync
En este ejemplo, es lo mismo, pero con un vídeo de Youtube, y se puede hacer perfectamente con los vídeos de TikTok o de cualquier otra red social donde alguien haya publicado su imagen, su voz o un vídeo. Adios a que tu biometría sea tuya.
DeepFake Voz Detector con Machine Learning
De nuevo, volvemos al mismo problema de saber cuándo alguien está utilizando una voz clonada o no, para proteger nuestros servicios. Para este ejercicio usamos dos algoritmos de
Machine Learning que nos permitieran añadir capas de protección a un sistema, tanto de seguridad basada en
biometría de voz, como a nuestras herramientas anti-
DeepFakes.
Las protecciones en las que hemos trabajado son, detectar cuando no es una persona sino un speaker reproduciendo un audio al aire, y entrenar un algoritmo para detectar voces clonadas con un gran dataset.
Machine Learning para detectar voces clonadas
Volviendo a la aproximación de la segunda parte de este artículo donde usamos algoritmos de Machine Learning para clasificar imágenes basadas en sus
espectogramas, vamos a hacer lo mismo. Tenemos un fichero de audio con una voz (
.wav), lo transformamos en
espectograma (imagen) y utilizamos el
framework fastai para entrenamiento de modelo, con la librería
librosa para tratamiento de archivos de audio y conversión en
espectrogramas.
Figura 52: Algoritmo de ML para detección de voces clonadas
Para entrenar el modelo usamos el dataset
ASVSpoof 2019, que es un challenge para lograr detección de voces clonadas con los mejores algoritmos. El entrenamiento se hace con la recogida de voces clonadas y voces reales de este
dataset y transformación en
espectogramas para entrenar la red sobre imágenes. Una vez se tiene el modelo entrenado, se puede hacer predicción sobre un archivo de voz transformándolo previamente en
espectrograma (mismo pre-proceso que para el entrenamiento).
Figura 53: Detección de voz clonada y voz real con ML
Es verdad que los resultados son muy sensibles al pre-procesado de los ficheros, al ruido en los audios que es necesario eliminarlos, hay que tener una normalización de audios para el entrenamiento, debe ser de similar duración entre audios, etcétera. Pero en todo caso, te da un indicio más sobre el audio de entrada en tus sistema.
Machine Learning para detectar voces sintéticas
En este caso la idea es distinguir entre si un audio está sonando desde la voz de una persona o si ha sido grabado. Es decir, si por ejemplo un atacante ha generado una voz sintética de alguien en un ordenador y lo está reproduciendo o se está escuchando mientras está realizando una llamada telefónica para engañar a alguien. Para este algoritmo de
Machine Learning se necesita un conjunto de datos de entrenamiento que incluya audios originales y audios que simulen el escenario comentado, como es el
dataset FoR (fake-or-real dataset) que incluye en sus datos un dataset diseñado específicamente para esta tarea.
Para simular el escenario comentado, reprodujeron audios provenientes del altavoz de un ordenador y los re-grabaron utilizando otro dispositivo con micrófono no profesional, simulando escenario de un atacante.También tienen otro dataset con audios sin ser re-grabados, es decir, audios originales. A partir de estos datos, se utiliza Deep Learning para un problema de clasificación, con el objetivo de distinguir entre audios originales y los re-grabados que simulan escenario de atacante.
Los audios primero se pre-procesan utilizando comandos de la librería de manipulación de audios
SoX (eliminar silencios en principio y fin, convertimos en un único canal mono, convertimos a tasa de muestreo
16KHz, normalizamos volumen) y se convierten en
espectrogramas, por lo que la tarea se convierte en un problema de clasificación de imágenes. Se entrena una red
convolucional utilizando el framework
Fastai.
Figura 55: Detección de voces re-gragadas vs originales
No es perfecto y tiene sus limitaciones, y los propios autores comentan en las conclusiones del paper que el dataset que han creado para simular escenarios de atacante no es muy general, ya que solo utilizan un único hablante y un único tipo de dispositivo para la re-grabación, por lo que el modelo entrenado puede que no sea del todo robusto frente a audios provenientes de otras fuentes. Pero evidentemente, es una buena linea de investigación y aproximación a este problema.
Conclusiones
Visto lo recorrido en este artículo, podemos decir que la clonación de voces en cualquier idioma se puede dar por algo muy común, por lo pensar en la biometría de voz como una protección de seguridad es una mala idea. Si la estas utilizando, hay que mejorar los mecanismos de seguridad para la detección de posibles voces clonadas. Además, hay que tener en cuenta que escuchar a personas cercanas ha sido siempre motivo de confianza, y esto los estafadores lo saben, así que ya hemos tenido este mismo mes los primeros estafadores utilizando voces clonadas de familiares para estafar a personas.
Además, las técnicas de
DeepFake, tanto de imagen, vídeo como voces, están cerca de ser perfectas, con lo que discriminar cuándo estamos hablando con una persona sintética o de verdad, va a ser cada vez más complicado. Con imágenes ya vimos que es casi imposible, pero con los avances en
IA, con vídeo conferencias o conversaciones de voz en tiempo real, va a ser totalmente imposible en breve. Es, por tanto, necesario seguir desarrollando las técnicas para mejorar el
Test de Voight-Kampff y detectar
DeepFakes de vídeo y audio. Todo lo visto aquí, y más, lo veremos incorporado a nuestra herramienta.
¡Saludos Malignos!
*********************************************************************************************
*********************************************************************************************