La modulación de voz es algo que existe desde hace décadas, fue un recurso clave en la música de los años 80. El vocoder incluso se remonta a la primera mitad del siglo 20, como un voice-coder de telecomunciaciones, una forma de envíar la voz a distancia, siendo una máquina la que pronuncie el mensaje original registrado po run humano.
Pero solo en los últimos años esta tecnología ya ha dado grandes saltos y ha sido refinada para ser cada vez más imperceptible y accesible. La modulación tradicional nunca ha sido nada del otro mundo, modificando parámetros computables de un sonido como la intensidad, el tono o el timbre.
Lo cierto es que los métodos más extendidos siempre dieron resultados claramente alterados y robóticos, en la mayoría de casos muy distantes a una voz humana. Aquí es donde entran el tipo de tecnología que veremos a continuación, un software algorítmico de modulación mucho más refinado.
Voice Changer Client de w-okada
El repositorio de GitHub de w-okada es un entorno que facilita el uso de distintas herramientas para replicar el contenido de un discurso, pero con una voz distinta generada por IA, y todo en tiempo real.
Es una recopilación muy popular y usada para crear sistemas de conversión de voz ejecutados localmente. Aunque puede ser un poco confuso el funcionamiento exacto y el lugar de descarga, se trata de un proyecto de código abierto y su única web oficial es el repositorio de github. Existe el dominio vcclient.com que claramente es una estafa.
Experiencia de usuario
Una vez descargado y ejecutado el programa permite usar distintas versiones, todas funcionan en base a un modelo preestablecido de voz, y parámetros personalizables a mayores. Esos modelos no dejan de ser algoritmos complejos entrenados en base a datos de voz, es decir que están condicionados por esto. Por eso los modelos japoneses no funcionan tan bien para voces en otros idiomas y viceversa.
Una vez dentro de un modelo concreto pueden haber distintos registros de voces ya integrados y la opción de integrar otros nuevos. Además siempre cuenta con un panel para modificar parámetros como la ganancia o el tono, que puede ser muy útil según el micrófono que se use o demás factores.
Otro apartado importante es el chunk, la división que va a hacer del audio de entrada para modificarlo por partes y devolverlas juntas. En general cuanto más pequeñas las partes más fácil es el trabajo para la máquina, pero más recursos consume a para hacerlo en tiempo real.
Hay otros parámetros más técnicos y que dependen mucho del hardware que se use, como usar el cliente o un sevidor (local) para ejecutar el proceso. También debería haber un apartado par escoger usar CPU o GPU, siendo normalmente más eficiente la GPU.
Funcionamiento del programa
Como ya mencionábamos al principio, VC Client modifica el audio en tiempo real de una manera más refinada que la modulación tradicional. Usando un sistema complejo pero rápido para extraer la voz por partes y recrearla, el software se basa en un pipeline de datos para dos versiones del programa.
El método estándar del programa es RVC (Retrieval Voice-Conversion) un modelo de IA que recoge el audio entrante para analizarlo y modificarlo para asemejarse a una voz objetivo. En todos los casos el proceso se basa en preparar el audio entrante para un proceso en tres partes: extracción, representación y síntesis.
El sonido con el que se trabaje en este pipeline necesita estandarizarse para facilitar su procesamiento. Por eso es necesario el paso previo de resampling y buffering. El procedimiento coge el audio de entrada por secciones y las remuestrea a 16 kHz, mantiene un buffer deslizante con contexto extra para estabilizar la estimación de rasgos. Se establece una región de crossfade para suavizar la concatenación de los bloques y se omite la inferencia en las zonas de silencios, de manera que se reduce el coste computacional obviando las secciones donde la señal no es útil.
El pipeline central a partir de este audio ya procesado consiste en:
Extracción de tono: estima la frecuencia fundamental por frame y aplica un desplazamiento de tono (en semitonos) creando un nuevo tono de voz en base al original.
Representación del audio: extrae características del contenido relativamente independientes del hablante. Para esto usa HuBERT, un sistema muy versátil y eficiente a la hora de detectar y registrar los elementos característicos de una muestra de voz. Esto puede suponer mucho rendimiento para la GPU por lo que cuenta con distintos rangos de precisión para adaptarse al dispositivo.
Síntesis de inferencia: ejecuta el modelo de síntesis neuronal que reconstruye la señal convertida a partir del contenido, el tono necesario y la voz objetivo preestablecida, con postprocesado típico.
Alternativamente hay modelos que pueden usar DiffusionSVC, que contaría con el mismo flujo de datos, pero añadiendo algunos pasos a mayores. Esta opción usa un audio generado por difusión probabilística.
Esto quiere decir que en vez de modificar en detalle un audio entrante y devolverlo en tiempo real, está generando un nuevo audio en base a un mel-spectrogram. Tiene un mayor coste computacional, pero el resultado suele sonar más natural y fluido, lo cuál lo hace una opción mejor para la voz cantada.









