lunes, marzo 20, 2023

"Are You Talkin' ta me?" DeepFake Voice en Español & Detección de Voces Clonadas

En esta parte llegamos al final de este artículo que hemos dividido en cinco entradas. La primera en saber quién utiliza tus Alexa o tu Google Home sin tu permiso. La segunda parte en analizar un audio con modelos de Machine Learning. En la tercera parte vimos cómo buscar a una persona en Data Lakes de Audios y cómo comparar voces con Inteligencia Artificial. En la parte anterior nos centramos en ver cómo se pueden clonar voces a partir de audios capturados de personas y usarlos para hackear un sistema de biometría de voz. En esta última vamos a verlo en Español y cómo detectar el uso de técnicas de DeepFake de Voz.
Antes de comenzar con el clona de voz en Español, quería hacer referencia a que el trabajo de hackear un sistema de banca con 2FA que utilice biometría de voz se nos ocurrió meses atrás, debido a que en Inglaterra hay varios bancos que utilizan este sistema de seguridad, y lo conocíamos bien. 

De hecho, días antes de nuestra presentación en RootedCON 2023, un periodista hizo exactamente la misma prueba con su banco, tal y cómo contó en el artículo "How I broke into a Bank Account with AI-Generated Voice".

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.

Figura 51: Libro de Machine Learning aplicado a Ciberseguridad de
Carmen TorranoFran Ramírez, Paloma Recuero, José Torres y Santiago Hernández.

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!


Autor: Chema Alonso (Contactar con Chema Alonso)  


No hay comentarios:

Publicar un comentario