O TTS-WITH-RVC (Text-to-fala com RVC) é um pacote projetado para aprimorar os recursos dos sistemas de texto em fala (TTS) , introduzindo um módulo RVC . O pacote permite que os usuários não apenas convertem o texto em fala, mas também personalizem e personalizem a saída de voz de acordo com suas preferências com suporte ao RVC.
O pytorch com CUDA ou MPS é necessário para obter o trabalho TTS-WITH-RVC.
Pode conter bugs. Relate um problema em caso de erro.
0.1.4 - 22 de novembro de 2024: Adicionado parâmetros index_path e index_rate para obter mais controle sobre a conversão de voz baseada em índice
0.1.3 - Corrigido muitos problemas, alguma otimização.
Você deve ter Python <= 3.10 instalado (3.10 é recomendado).
Você deve ter suporte de CUDA ou MPS para sua GPU (os MPs ainda não foi testado).
Instale o Pytorch com suporte de CUDA ou MPS aqui: https://pytorch.org/get-started/locally/
Em seguida, instale o TTS-WITH-RVC usando o PIP Instale:
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 no Path . O TTS-WITH-RVC possui uma classe chamada TTS_RVC . Existem alguns parâmetros necessários:
rvc_path - caminho para o diretório rvclib instalado (geralmente na pasta Venv/SRC.)
input_directory - caminho para o seu diretório de entrada (diretório temp para salvar a saída TTS)
model_path - caminho para o seu modelo .PTH
E parâmetros opcionais:
voice -Lista de voz da Edge-TTS (o padrão é "ru-ru-dmitryneural")
output_directory - Diretório para salvar áudio de voz ( temp/ é padrão).
index_path - caminho para o índice de arquivo para ajustes do modelo de voz (o padrão está vazio String "" ).
index_rate - Taxa de mistura entre a conversão de voz original e indexada (o padrão é 0.75 ).
Para definir a voz, primeiro, faça a instância 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 as vozes disponíveis colocadas no arquivo voices.txt :
tts.get_voices() é desativado indefinidamente devido aos problemas
Em seguida, defina a voz para TTS com tts.set_voice() função:
tts . set_voice ( "un-Un-SelectedNeural" )Definir o idioma apropriado é necessário se você estiver usando outros idiomas para vergonha!
E o passo final está ligando para tts para substituir a voz:
path = tts ( text = "Привет, мир!" , pitch = 6 , index_rate = 0.50 )Parâmetros:
text - texto para TTS (necessário)
pitch - Pitch for RVC (opcional, neg. Os valores são compatíveis, o padrão é 0)
tts_rate - Taxa extra de fala (opcional, neg. Os valores são compatíveis, o padrão é 0)
tts_volume - Volume extra de fala (opcional, neg. Os valores são compatíveis, o padrão é 0)
tts_pitch - PHAME extra de áudio gerado por TTS (opcional, neg. Os valores são compatíveis, não recomendados , o padrão é 0)
output_filename - Caminho especificado para áudio de voz (opcional, o padrão é None )
Um exemplo simples para expressar 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 )Existem alguns processadores de parâmetros de texto para problemas de integração, como adicionar módulo GPT.
Você pode processá -los usando process_args na classe TTS_RVC :
--tts-rate (value) -TTS Parâmetro para editar a taxa de fala (valor negativo para diminuição da taxa e valor positivo para aumentar a taxa)
--tts-volume (value) -Parâmetro TTS para editar o volume da fala (valor negativo para diminuir o volume e o valor positivo para aumentar o volume) parece não funcionar devido à conversão do módulo RVC.
--tts-pitch (value) -Parâmetro TTS para editar o tom de áudio gerado TTS (valor negativo para diminuir o tom e o valor positivo para aumentar o tom) Não recomendo usar isso porque o módulo RVC tem seu próprio pitch para saída.
--rvc-pitch (value) -Parâmetro RVC para editar o tom do áudio de saída (valor negativo para diminuição do tom e o valor positivo para aumentar o tom)
Agora o princípio do trabalho:
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 ) A variável args contém uma matriz com a seguinte estrutura:
args[0] - taxa TTS
args[1] - volume TTS
args[2] - tts pitch
args[3] - RVC Pitch
E agora estamos prontos para usá -lo para geração:
path = tts ( message , pitch = args [ 3 ],
tts_rate = args [ 0 ],
tts_volume = args [ 1 ],
tts_pitch = args [ 2 ]) set_index_path(index_path) - atualiza o caminho para o arquivo de índice para ajustes do modelo de voz.
NameError: name 'device' is not definedCertifique -se de que seu dispositivo suporta CUDA e você instalou a versão correta da tocha.
RuntimeError: Failed to load audio: {e} Certifique -se de instalar ffmpeg .
Sem licença
Atm4x (Artem Dikarev)