TTS-With-RVC (texto a voz con RVC) es un paquete diseñado para mejorar las capacidades de los sistemas de texto a voz (TTS) mediante la introducción de un módulo RVC . El paquete permite a los usuarios no solo convertir el texto en voz, sino también personalizar y personalizar la salida de voz de acuerdo con sus preferencias con el soporte de RVC.
Se requiere Pytorch con CUDA o MPS para que TTS-With-RVC funcione.
Puede contener errores. Informar un problema en caso de error.
0.1.4 - 22 de noviembre de 2024: Parámetros agregados index_path e index_rate para un mayor control sobre la conversión de voz basada en índice
0.1.3 - Se solucionó muchos problemas, cierta optimización.
Debe tener Python <= 3.10 instalado (se recomienda 3.10).
Debe tener soporte CUDA o MPS para su GPU (todavía no se ha probado los MPS).
Instale Pytorch con CUDA o soporte de MPS aquí: https://pytorch.org/get-started/locally/
Luego, instale tts-with-rvc usando PIP instalación:
python -m pip install git+https://github.com/Atm4x/tts-with-rvc.git#egg=tts_with_rvc
python -m pip install git+https://github.com/Atm4x/rvc-lib.git@dev#egg=rvc
python -m pip install -e git+https://github.com/Atm4x/rvc-lib.git#egg=rvclib
python -m pip install git+https://github.com/Atm4x/rvc-tts-pipeline-fix.git@dev#egg=rvc_tts_pipe
Environment variables en Path . TTS-With-RVC tiene una clase llamada TTS_RVC . Hay algunos parámetros que se requieren:
rvc_path - Ruta a su directorio RVCLIB instalado (generalmente en la carpeta VenV/SRC).
input_directory - ruta a su directorio de entrada (directorio TEMP para guardar la salida de TTS)
model_path - ruta a su modelo .pth
Y parámetros opcionales:
voice -Voice from Edge-TTS List (el valor predeterminado es "Ru-ru-dmitryneural")
output_directory - Directorio para guardar audio expresado ( temp/ es predeterminado).
index_path : ruta al índice de archivo para ajustes del modelo de voz (el valor predeterminado es una cadena vacía "" ).
index_rate : la tasa de combinación entre la conversión de voz original e indexada (el valor predeterminado es 0.75 ).
Para establecer la voz, en primer lugar, haga una instancia de TTS_RVC:
from tts_with_rvc import TTS_RVC
tts = TTS_RVC ( rvc_path = "src \ rvclib" , model_path = "models \ YourModel.pth" , input_directory = "input \ " , index_path = "logs \ YourIndex.index" ) Todas las voces disponibles colocadas en el archivo voices.txt :
tts.get_voices() está deshabilitado indefinidamente debido a los problemas
A continuación, configure la voz para TTS con la función tts.set_voice() :
tts . set_voice ( "un-Un-SelectedNeural" )¡Establecer el idioma apropiado es necesario si está utilizando otros idiomas para off offovers!
Y el paso final es llamar tts para reemplazar la voz:
path = tts ( text = "Привет, мир!" , pitch = 6 , index_rate = 0.50 )Parámetros:
text : texto para TTS (requerido)
pitch - Pitch for RVC (Opcional, Neg. Los valores son compatibles, el valor predeterminado es 0)
tts_rate - Tasa de discurso adicional (opcional, los valores neg. son compatibles, el valor predeterminado es 0)
tts_volume - Volumen adicional de discurso (opcional, los valores neg. son compatibles, el valor predeterminado es 0)
tts_pitch - Punto adicional del audio generado por TTS (opcional, Neg. Los valores son compatibles, no recomendados , el valor predeterminado es 0)
output_filename : ruta especificada para audio expresado (opcional, predeterminado es None )
Un ejemplo simple para expresar texto:
from tts_with_rvc import TTS_RVC
from playsound import playsound
tts = TTS_RVC (
rvc_path = "src \ rvclib" ,
model_path = "models \ DenVot.pth" ,
input_directory = "input \ " ,
index_path = "logs \ added_IVF1749_Flat_nprobe_1.index"
)
tts . set_voice ( "ru-RU-DmitryNeural" )
path = tts ( text = "Привет, мир!" , pitch = 6 , index_rate = 0.9 )
playsound ( path )Hay algunos procesadores de parámetros de texto para problemas de integración, como agregar el módulo GPT.
Puede procesarlos utilizando process_args en la clase TTS_RVC :
--tts-rate (value) -parámetro TTS para editar la tasa de voz (valor negativo para disminuir la tasa y el valor positivo para aumentar la tasa)
--tts-volume (value) -Parámetro TTS para editar el volumen del habla (valor negativo para disminuir el volumen y el valor positivo para aumentar el volumen) parece no funcionar debido a la conversión del módulo RVC.
--tts-pitch (value) -Parámetro TTS para editar el tono de TTS generó audio (valor negativo para disminuir el tono y el valor positivo para aumentar el tono) No recomiendo usar esto porque el módulo RVC tiene su propio pitch para la salida.
--rvc-pitch (value) -Parámetro RVC para editar el tono del audio de salida (valor negativo para disminuir el tono y el valor positivo para aumentar el tono)
Ahora el principio de trabajo:
from tts_with_rvc import TTS_RVC
tts = TTS_RVC ( rvc_path = "src \ rvclib" , model_path = "models \ YourModel.pth" , input_directory = "input \ " )
# This method returns arguments and original text without these text parameters
args , message = tts . process_args ( message ) La variable args contiene una matriz con la siguiente estructura:
args[0] - tasa de TTS
args[1] - Volumen TTS
args[2] - TTS Pitch
args[3] - Pitch RVC
Y ahora estamos listos para usarlo para la generación:
path = tts ( message , pitch = args [ 3 ],
tts_rate = args [ 0 ],
tts_volume = args [ 1 ],
tts_pitch = args [ 2 ]) set_index_path(index_path) : actualiza la ruta al archivo de índice para ajustes del modelo de voz.
NameError: name 'device' is not definedAsegúrese de que su dispositivo admita CUDA y haya instalado la versión correcta de la antorcha.
RuntimeError: Failed to load audio: {e} Asegúrese de instalar ffmpeg .
Sin licencia
ATM4X (Artem Dikarev)