Inglés | 简体中文 | 日本語
¿El modelo lanzado actualmente admite la conversión de voz de disparo cero ? , conversión de voz en tiempo real de disparo cero y conversión de voz de canto de disparo cero . Sin ningún entrenamiento, es capaz de clonar una voz dada un discurso de referencia de 1 a 30 segundos.
Para encontrar una lista de demostraciones y comparaciones con modelos de conversión de voz anteriores, visite nuestra página de demostración.
Seguimos mejorando la calidad del modelo y agregando más funciones.
Hemos realizado una serie de evaluaciones objetivas sobre las capacidades de conversión de voz de nuestro Seed-VC. Para facilitar la reproducción, los audios de origen son 100 expresiones aleatorias de LibriTTS-test-clean, y los audios de referencia son 12 voces seleccionadas al azar con características únicas.
Los audios fuente se pueden encontrar en ./examples/libritts-test-clean
Los audios de referencia se pueden encontrar en ./examples/reference
Evaluamos los resultados de la conversión en términos de similitud de coseno de incrustación del hablante (SECS), tasa de error de palabras (WER) y tasa de error de caracteres (CER) y comparamos nuestros resultados con dos líneas de base sólidas de código abierto, a saber, OpenVoice y CosyVoice.
Los resultados de la siguiente tabla muestran que nuestro modelo Seed-VC supera significativamente a los modelos básicos tanto en inteligibilidad como en similitud de hablantes.
ModelosMétricas | SEGUNDOS ↑ | WER↓ | CER↓ | firmar ↑ | BAK ↑ | OVRL ↑ |
---|---|---|---|---|---|---|
Verdad fundamental | 1.0000 | 8.02 | 1,57 | ~ | ~ | ~ |
voz abierta | 0.7547 | 15.46 | 4.73 | 3.56 | 4.02 | 3.27 |
Voz acogedora | 0.8440 | 18,98 | 7.29 | 3.51 | 4.02 | 3.21 |
Seed-VC (nuestro) | 0.8676 | 11,99 | 2.92 | 3.42 | 3.97 | 3.11 |
También hemos comparado con modelos de conversión de voz distintos de cero para varios hablantes (según la disponibilidad del modelo):
Personajes | ModelosMétricas | SEGUNDOS ↑ | WER↓ | CER↓ | firmar ↑ | BAK ↑ | OVRL ↑ |
---|---|---|---|---|---|---|---|
~ | Verdad fundamental | 1.0000 | 6.43 | 1.00 | ~ | ~ | ~ |
Tokai Teio | Entonces-VITS-4.0 | 0.8637 | 21.46 | 9.63 | 3.06 | 3.66 | 2,68 |
Seed-VC (nuestro) | 0.8899 | 15.32 | 4.66 | 3.12 | 3.71 | 2.72 | |
Verde lechoso | Entonces-VITS-4.0 | 0.6850 | 48.43 | 32,50 | 3.34 | 3.51 | 2,82 |
Seed-VC (nuestro) | 0.8072 | 7.26 | 1.32 | 3.48 | 4.07 | 3.20 | |
Matikane Tannhuaser | Entonces-VITS-4.0 | 0.8594 | 16.25 | 8.64 | 3.25 | 3.71 | 2.84 |
Seed-VC (nuestro) | 0.8768 | 12.62 | 5.86 | 3.18 | 3.83 | 2,85 |
Los resultados muestran que, a pesar de no estar entrenado en los parlantes objetivo, Seed-VC puede lograr resultados significativamente mejores que los modelos distintos de cero. Sin embargo, esto puede variar mucho dependiendo de la calidad del modelo SoVITS. Se aceptan relaciones públicas o problemas si considera que esta comparación es injusta o inexacta.
(Modelo Tokai Teio de zomehwh/sovits-tannhauser)
(Modelo Matikane Tannhuaser de zomehwh/sovits-tannhauser)
(Modelo verde lechoso de sparanoid/milky-green-sovits-4)
Resultado de ASR en inglés calculado por el modelo facebook/hubert-large-ls960-ft
Incrustación de altavoces calculada por el modelo de reemblyzer
Puede reproducir la evaluación ejecutando el script eval.py
Python eval.py --source ./examples/libritts-test-clean --objetivo ./ejemplos/referencia --output ./examples/eval/convertido --pasos-de-difusión 25 --ajuste de longitud 1.0 --inferencia-cfg-tasa 0,7 --xvector-extractor "resemblyzer"--baseline "" # complete openvoice o cosyvoice para calcular el resultado base--max-samples 100 # máximo de expresiones fuente para revisar
Antes de eso, asegúrese de tener los repositorios de openvoice y cosyvoice correctamente instalados en ../OpenVoice/
y ../CosyVoice/
si desea ejecutar una evaluación de referencia.
Se realiza una evaluación adicional de la conversión de voz cantada en el conjunto de datos M4Singer, con 4 parlantes objetivo cuyos datos de audio están disponibles aquí.
La similitud de los hablantes se calcula promediando las similitudes de cosenos entre el resultado de la conversión y todas las muestras disponibles en el conjunto de datos de caracteres respectivo.
Para cada personaje, se elige una expresión aleatoria como indicación para la inferencia de tiro cero. A modo de comparación, entrenamos el modelo RVCv2-f0-48k respectivo para cada personaje como punto de referencia.
Se utilizan como fuente de audio 100 expresiones aleatorias para cada tipo de cantante.
ModelosMétricas | F0CORR ↑ | F0RMSE↓ | SEGUNDOS ↑ | CER↓ | firmar ↑ | BAK ↑ | OVRL ↑ |
---|---|---|---|---|---|---|---|
RVCv2 | 0.9404 | 30.43 | 0.7264 | 28.46 | 3.41 | 4.05 | 3.12 |
Seed-VC (nuestro) | 0.9375 | 33.35 | 0.7405 | 19,70 | 3.39 | 3.96 | 3.06 |
Tipo de cantante de fuente | Personajes | ModelosMétricas | F0CORR ↑ | F0RMSE↓ | SEGUNDOS ↑ | CER↓ | firmar ↑ | BAK ↑ | OVRL ↑ |
---|---|---|---|---|---|---|---|---|---|
Alto (Mujer) | ~ | Verdad fundamental | 1.0000 | 0.00 | ~ | 8.16 | ~ | ~ | ~ |
Azuma (Male) | RVCv2 | 0.9617 | 33.03 | 0,7352 | 24,70 | 3.36 | 4.07 | 3.07 | |
Seed-VC (nuestro) | 0.9658 | 31,64 | 0.7341 | 15.23 | 3.37 | 4.02 | 3.07 | ||
Diana (Mujer) | RVCv2 | 0.9626 | 32,56 | 0.7212 | 19.67 | 3.45 | 4.08 | 3.17 | |
Seed-VC (nuestro) | 0.9648 | 31,94 | 0.7457 | 16.81 | 3.49 | 3,99 | 3.15 | ||
Ding Zhen (Masculino) | RVCv2 | 0.9013 | 26,72 | 0.7221 | 18.53 | 3.37 | 4.03 | 3.06 | |
Seed-VC (nuestro) | 0.9356 | 21,87 | 0.7513 | 15.63 | 3.44 | 3.94 | 3.09 | ||
Kobe Bryant (Hombre) | RVCv2 | 0.9215 | 23.90 | 0,7495 | 37.23 | 3.49 | 4.06 | 3.21 | |
Seed-VC (nuestro) | 0.9248 | 23.40 | 0.7602 | 26,98 | 3.43 | 4.02 | 3.13 | ||
Bajo (masculino) | ~ | Verdad fundamental | 1.0000 | 0.00 | ~ | 8.62 | ~ | ~ | ~ |
Azuma | RVCv2 | 0.9288 | 32,62 | 0.7148 | 24,88 | 3.45 | 4.10 | 3.18 | |
Seed-VC (nuestro) | 0.9383 | 31,57 | 0.6960 | 10.31 | 3.45 | 4.03 | 3.15 | ||
Diana | RVCv2 | 0.9403 | 30.00 | 0.7010 | 14.54 | 3.53 | 4.15 | 3.27 | |
Seed-VC (nuestro) | 0.9428 | 30.06 | 0.7299 | 9.66 | 3.53 | 4.11 | 3.25 | ||
ding zhen | RVCv2 | 0.9061 | 19.53 | 0.6922 | 25,99 | 3.36 | 4.09 | 3.08 | |
Seed-VC (nuestro) | 0.9169 | 18.15 | 0.7260 | 14.13 | 3.38 | 3,98 | 3.07 | ||
Kobe Bryant | RVCv2 | 0.9302 | 16.37 | 0.7717 | 41.04 | 3.51 | 4.13 | 3.25 | |
Seed-VC (nuestro) | 0.9176 | 17,93 | 0.7798 | 24.23 | 3.42 | 4.08 | 3.17 | ||
Soprano (Mujer) | ~ | Verdad fundamental | 1.0000 | 0.00 | ~ | 27,92 | ~ | ~ | ~ |
Azuma | RVCv2 | 0.9742 | 47,80 | 0.7104 | 38,70 | 3.14 | 3.85 | 2.83 | |
Seed-VC (nuestro) | 0.9521 | 64.00 | 0.7177 | 33.10 | 3.15 | 3.86 | 2.81 | ||
Diana | RVCv2 | 0.9754 | 46,59 | 0.7319 | 32.36 | 3.14 | 3.85 | 2.83 | |
Seed-VC (nuestro) | 0.9573 | 59,70 | 0.7317 | 30,57 | 3.11 | 3.78 | 2.74 | ||
ding zhen | RVCv2 | 0.9543 | 31.45 | 0.6792 | 40.80 | 3.41 | 4.08 | 3.14 | |
Seed-VC (nuestro) | 0.9486 | 33.37 | 0.6979 | 34,45 | 3.41 | 3.97 | 3.10 | ||
Kobe Bryant | RVCv2 | 0.9691 | 25,50 | 0.6276 | 61,59 | 3.43 | 4.04 | 3.15 | |
Seed-VC (nuestro) | 0.9496 | 32,76 | 0.6683 | 39,82 | 3.32 | 3,98 | 3.04 | ||
Tenor (masculino) | ~ | Verdad fundamental | 1.0000 | 0.00 | ~ | 5.94 | ~ | ~ | ~ |
Azuma | RVCv2 | 0.9333 | 42.09 | 0.7832 | 16.66 | 3.46 | 4.07 | 3.18 | |
Seed-VC (nuestro) | 0.9162 | 48.06 | 0.7697 | 8.48 | 3.38 | 3,89 | 3.01 | ||
Diana | RVCv2 | 0.9467 | 36,65 | 0.7729 | 15.28 | 3.53 | 4.08 | 3.24 | |
Seed-VC (nuestro) | 0.9360 | 41,49 | 0,7920 | 8.55 | 3.49 | 3.93 | 3.13 | ||
ding zhen | RVCv2 | 0.9197 | 22,82 | 0.7591 | 12,92 | 3.40 | 4.02 | 3.09 | |
Seed-VC (nuestro) | 0.9247 | 22,77 | 0.7721 | 13,95 | 3.45 | 3.82 | 3.05 | ||
Kobe Bryant | RVCv2 | 0.9415 | 19.33 | 0.7507 | 30,52 | 3.48 | 4.02 | 3.19 | |
Seed-VC (nuestro) | 0.9082 | 24,86 | 0.7764 | 13.35 | 3.39 | 3.93 | 3.07 |
A pesar de que Seed-VC no está entrenado en los hablantes objetivo y solo se utiliza una expresión aleatoria como mensaje, aún supera constantemente a los modelos RVCv2 específicos de los hablantes en términos de similitud de hablantes (SECS) e inteligibilidad (CER), lo que demuestra la voz superior. capacidad de clonación y robustez de Seed-VC.
Sin embargo, se observa que la calidad de audio de Seed-VC (DNSMOS) es ligeramente inferior a la de RVCv2. Nos tomamos en serio este inconveniente y daremos alta prioridad a mejorar la calidad del audio en el futuro.
Se aceptan relaciones públicas o problemas si considera que esta comparación es injusta o inexacta.
Resultado del ASR chino calculado por SenseVoiceSmall
Incrustación de altavoces calculada por el modelo de reemblyzer
Configuramos un cambio de tono de +12 semitonos para la conversión de hombre a mujer y -12 semitonos para la conversión de mujer a hombre; de lo contrario, 0 cambio de tono.
Python 3.10 sugerido en Windows o Linux.
instalación de pip -r requisitos.txt
Los puntos de control de la última versión del modelo se descargarán automáticamente cuando se ejecute la inferencia por primera vez.
Inferencia de línea de comando:
python inference.py --source--target --output --diffusion-steps 25 # recomendado 50~100 para conversión de voz cantada--length-adjust 1.0 --inferencia-cfg-tasa 0,7 --f0-condition False # establecido en True para la conversión de voz de canto--auto-f0-adjust False # establecido en True para ajustar automáticamente el tono de origen al nivel de tono objetivo, normalmente no se usa en la conversión de voz de canto--semi-tone-shift 0 # cambio de tono en semitonos para conversión de voz cantada
dónde:
source
es la ruta al archivo de voz para convertirlo en voz de referencia
target
es la ruta al archivo de voz como referencia de voz.
output
es la ruta al directorio de salida
diffusion-steps
es el número de pasos de difusión a usar, el valor predeterminado es 25, use 50-100 para obtener la mejor calidad, use 4-10 para una inferencia más rápida
length-adjust
es el factor de ajuste de longitud, el valor predeterminado es 1,0, establezca <1,0 para acelerar la voz, >1,0 para ralentizar la voz
inference-cfg-rate
tiene una diferencia sutil en la salida, el valor predeterminado es 0,7
f0-condition
es el indicador para condicionar el tono de la salida al tono del audio de origen, el valor predeterminado es Falso, establecido en Verdadero para la conversión de voz de canto.
auto-f0-adjust
es la bandera para ajustar automáticamente el tono de origen al nivel de tono objetivo, el valor predeterminado es Falso, normalmente no se usa en la conversión de voz de canto.
semi-tone-shift
es el cambio de tono en semitonos para la conversión de voz cantada, el valor predeterminado es 0
Interfaz web de Gradio:
aplicación python.py
Luego abra el navegador y vaya a http://localhost:7860/
para usar la interfaz web.
GUI de conversión de voz en tiempo real:
Python en tiempo real-gui.py
IMPORTANTE: Se recomienda encarecidamente utilizar una GPU para la conversión de voz en tiempo real.
Se han realizado algunas pruebas de rendimiento en una GPU para computadora portátil NVIDIA RTX 3060; los resultados y las configuraciones de parámetros recomendadas se enumeran a continuación:
Observaciones | Pasos de difusión | Tasa de CFG de inferencia | Longitud máxima del mensaje | Tiempo de bloqueo (s) | Duración del fundido cruzado (s) | Contexto adicional (izquierda) (s) | Contexto adicional (derecha) (s) | Latencia (ms) | Calidad | Tiempo de inferencia por fragmento (ms) |
---|---|---|---|---|---|---|---|---|---|---|
adecuado para la mayoría de las voces | 10 | 0,7 | 3.0 | 1.0s | 0,04s | 0,5 s | 0,02s | 2070 ms | Medio | 849ms |
mejor rendimiento para voces femeninas agudas | 20 | 0,7 | 3.0 | 2.0s | 0,04s | 0,5 s | 0,02s | 4070ms | Alto | 1585ms |
adecuado para algunas voces masculinas, ya que el requisito de calidad de audio es menor | 5 | 0,7 | 3.0 | 0,6 s | 0,04s | 0,5 s | 0,02s | 1270 ms | Bajo | 488ms |
Inferencia más rápida configurando inference_cfg_rate en 0.0, pero no estoy seguro de si el rendimiento disminuye... | 10 | 0.0 | 3.0 | 0,7s | 0,04s | 0,5 s | 0,02s | 1470ms | Medio | 555ms |
Puede ajustar los parámetros en la GUI de acuerdo con el rendimiento de su propio dispositivo; el flujo de conversión de voz debería funcionar bien siempre que el tiempo de inferencia sea menor que el tiempo de bloqueo.
Tenga en cuenta que la velocidad de inferencia puede disminuir si está ejecutando otras tareas intensivas en la GPU (por ejemplo, jugar, mirar videos)
Generalmente, la latencia es de alrededor de 1 a 2 segundos para evitar la caída de la calidad (¿la triste naturaleza de los modelos de difusión...?), pero seguimos buscando formas de reducirla.
(La lógica de fragmentación de audio y GUI se modifica desde RVC, ¡gracias por su brillante implementación!)
código de liberación
Lanzamiento del modelo preentrenado v0.1:
Demostración del espacio Huggingface:
Página de demostración HTML (tal vez con comparaciones con otros modelos de VC): Demostración
inferencia de transmisión
Reducir la latencia de inferencia de transmisión
Vídeo de demostración para conversión de voz en tiempo real
Conversión de voz para cantar
Resistencia al ruido para audio fuente y de referencia
El audio fuente es resistente al ruido
Posibles mejoras en la arquitectura
Conexiones de salto estilo U-ViT
Se modificó la entrada a OpenAI Whisper
Código para entrenamiento sobre datos personalizados
Cambiado a BigVGAN de NVIDIA para decodificar voz cantada
Modelo de versión Whisper para conversión de voz cantada.
Evaluación objetiva y comparación con RVC/SoVITS para la conversión de voz cantada
Mejorar la calidad del audio
Más por agregar
2024-10-28:
Modelo de conversión de voz cantada de 44k actualizado y afinado con mejor calidad de audio
2024-10-27:
Se agregó GUI de conversión de voz en tiempo real
2024-10-25:
Se agregaron resultados de evaluación exhaustivos y comparaciones con RVCv2 para la conversión de voz cantada.
2024-10-24:
Modelo de conversión de voz cantada actualizado de 44 kHz, con OpenAI Whisper como entrada de contenido de voz
2024-10-07:
Modelo preentrenado v0.3 actualizado, codificador de contenido de voz cambiado a OpenAI Whisper
Se agregaron resultados de evaluación objetiva para el modelo preentrenado v0.3.
2024-09-22:
Modelo de conversión de voz cantada actualizado para usar BigVGAN de NVIDIA, lo que proporciona una gran mejora en las voces cantadas agudas.
Admite salida de fragmentación y transmisión para archivos de audio largos en la interfaz de usuario web
2024-09-18:
Modelo acondicionado f0 actualizado para conversión de voz cantada
2024-09-14:
Modelo preentrenado v0.2 actualizado, con un tamaño más pequeño y menos pasos de difusión para lograr la misma calidad y capacidad adicional para controlar la preservación de la prosodia.
Se agregó un script de inferencia de línea de comando
Se agregaron instrucciones de instalación y uso.