1
0
mirror of https://github.com/fumiama/Retrieval-based-Voice-Conversion-WebUI.git synced 2026-06-05 01:10:22 +08:00
Files
Retrieval-based-Voice-Conve…/docs/pt
Alex Murkoff 1e22d468ea feat(audio): use PyAV instead of ffmpeg (#31)
* feat(audio): use PyAV instead of ffmpeg

replaced usage of ffmpeg in favor of PyAV (`av`)

* refactor(audio): store all of the audio related functions in the `infer.lib.audio`

refactors previous commit to have singular functions for each task, all located in `infer.lib.audio`

* fix(audio): remove downsample_audio from mdxnet.py

it is no longer needed, since it's imported from infer.lib.audio

* docs: remove every ffmpeg mention in the documentation to avoid confusion

* chore(requirements): remove ffmpeg-python and ffmpy from all requirements

* fix(audio): fix loading for UVR

wrapped gathering of META info from the stream into a function

fixes loading for UVR

* fix(audio): use np.frombuffer() instead of direct conversion of the resampled frames

this fixes traceback on preprocessing

* feat(audio): pre-allocate decoded_audio array in the load_audio function

this should improve performance, even if just a little

* Revert "docs: remove every ffmpeg mention in the documentation to avoid confusion"

This reverts commit 1e05bbce03.

* chore(format): run black on dev

* fix(requirements): revert removal of ffmpeg in unitest.yml and Dockerfile

* Revert "fix(requirements): revert removal of ffmpeg in unitest.yml and Dockerfile"

This reverts commit e28a0eebb2.

* feat(audio): pre-allocate numpy array to store the AudioFrame data in ndarray of dtype float32

* chore(format): run black on dev

* fix(audio): fix the decoded_audio size estimation

in estimated_total_samples we multiply by `sr` instead of `container.streams.audio[0].rate` since we want to estimate size of the OUTPUT file, not the input one. - Added dynamic resizing, in case something goes wrong and the size of decoded_audio is estimated incorrectly

Fixed function `load_audio` when the input audio's samplerate does not match the desired samplerate (`sr`)

* chore(format): run black on dev

* refactor(audio): remove `clean_path()` function as it serves no purpose anymore

* docs: remove everything related to ffmpeg

this includes everything except for formats support specification in the training_tips docs, since it has nothing to do with what ffmpeg does/did but rather what audio formats are supported (all the ones that ffmpeg supports!)

* docs: fix order of the steps in preparation in the READMEs

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-06-12 20:13:26 +09:00
..
2024-06-07 00:50:51 +09:00

Retrieval-based-Voice-Conversion-WebUI

Uma estrutura de conversão de voz fácil de usar baseada em VITS.

madewithlove

moe

Licence Huggingface

Discord


Changelog | FAQ (Frequently Asked Questions)

English | 中文简体 | 日本語 | 한국어 (韓國語) | Türkçe | Português

Confira nosso Vídeo de demonstração aqui!

Treinamento/Inferência WebUIgo-web.bat Traduzido

GUI de conversão de voz em tempo realgo-realtime-gui.bat image

O dataset para o modelo de pré-treinamento usa quase 50 horas de conjunto de dados de código aberto VCTK de alta qualidade.

Dataset de músicas licenciadas de alta qualidade serão adicionados ao conjunto de treinamento, um após o outro, para seu uso, sem se preocupar com violação de direitos autorais.

Aguarde o modelo básico pré-treinado do RVCv3, que possui parâmetros maiores, mais dados de treinamento, melhores resultados, velocidade de inferência inalterada e requer menos dados de treinamento para treinamento.

Resumo

Este repositório possui os seguintes recursos:

  • Reduza o vazamento de tom substituindo o recurso de origem pelo recurso de conjunto de treinamento usando a recuperação top1;
  • Treinamento fácil e rápido, mesmo em placas gráficas relativamente ruins;
  • Treinar com uma pequena quantidade de dados também obtém resultados relativamente bons (>=10min de áudio com baixo ruído recomendado);
  • Suporta fusão de modelos para alterar timbres (usando guia de processamento ckpt-> mesclagem ckpt);
  • Interface Webui fácil de usar;
  • Use o modelo UVR5 para separar rapidamente vocais e instrumentos.
  • Use o mais poderoso algoritmo de extração de voz de alta frequência InterSpeech2023-RMVPE para evitar o problema de som mudo. Fornece os melhores resultados (significativamente) e é mais rápido, com consumo de recursos ainda menor que o Crepe_full.
  • Suporta aceleração de placas gráficas AMD/Intel.
  • Aceleração de placas gráficas Intel ARC com suporte para IPEX.

Preparando o ambiente

Os comandos a seguir precisam ser executados no ambiente Python versão 3.8 ou superior.

(Windows/Linux) Primeiro instale as dependências principais através do pip:

# Instale as dependências principais relacionadas ao PyTorch, pule se instaladas
# Referência: https://pytorch.org/get-started/locally/
pip install torch torchvision torchaudio

#Para arquitetura Windows + Nvidia Ampere (RTX30xx), você precisa especificar a versão cuda correspondente ao pytorch de acordo com a experiência de https://github.com/fumiama/Retrieval-based-Voice-Conversion-WebUI/issues/ 21
#pip instalar tocha torchvision torchaudio --index-url https://download.pytorch.org/whl/cu117

#Para placas Linux + AMD, você precisa usar as seguintes versões do pytorch:
#pip instalar tocha torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm5.4.2

Então pode usar poesia para instalar as outras dependências:

# Instale a ferramenta de gerenciamento de dependências Poetry, pule se instalada
# Referência: https://python-poetry.org/docs/#installation
curl -sSL https://install.python-poetry.org | python3 -

#Instale as dependências do projeto
poetry install

Você também pode usar pip para instalá-los:


for Nvidia graphics cards
  pip install -r requirements/main.txt

for AMD/Intel graphics cards on Windows (DirectML)
  pip install -r requirements/dml.txt

for Intel ARC graphics cards on Linux / WSL using Python 3.10: 
  pip install -r requirements/ipex.txt

for AMD graphics cards on Linux (ROCm):
  pip install -r requirements/amd.txt

Usuários de Mac podem instalar dependências via run.sh:

sh ./run.sh

Preparação de outros Pré-modelos

RVC requer outros pré-modelos para inferir e treinar.

#Baixe todos os modelos necessários em https://huggingface.co/lj1995/VoiceConversionWebUI/tree/main/
python tools/download_models.py

Ou apenas baixe-os você mesmo em nosso Huggingface space.

Aqui está uma lista de pré-modelos e outros arquivos que o RVC precisa:

./assets/hubert/hubert_base.pt

./assets/pretrained 

./assets/uvr5_weights

Downloads adicionais são necessários se você quiser testar a versão v2 do modelo.

./assets/pretrained_v2

Se você deseja testar o modelo da versão v2 (o modelo da versão v2 alterou a entrada do recurso dimensional 256 do Hubert + final_proj de 9 camadas para o recurso dimensional 768 do Hubert de 12 camadas e adicionou 3 discriminadores de período), você precisará baixar recursos adicionais

./assets/pretrained_v2

Se quiser usar o algoritmo de extração de tom vocal SOTA RMVPE mais recente, você precisa baixar os pesos RMVPE e colocá-los no diretório raiz RVC

https://huggingface.co/lj1995/VoiceConversionWebUI/blob/main/rmvpe.pt

    Para usuários de placas gráficas AMD/Intel, você precisa baixar:

    https://huggingface.co/lj1995/VoiceConversionWebUI/blob/main/rmvpe.onnx

Os usuários de placas gráficas Intel ARC precisam executar o comando source /opt/intel/oneapi/setvars.sh antes de iniciar o Webui.

Em seguida, use este comando para iniciar o Webui:

python web.py

Se estiver usando Windows ou macOS, você pode baixar e extrair RVC-beta.7z para usar RVC diretamente usando go-web.bat no Windows ou sh ./run.sh no macOS para iniciar o Webui.

Suporte ROCm para placas gráficas AMD (somente Linux)

Para usar o ROCm no Linux, instale todos os drivers necessários conforme descrito aqui.

No Arch use pacman para instalar o driver:

pacman -S rocm-hip-sdk rocm-opencl-sdk

Talvez você também precise definir estas variáveis de ambiente (por exemplo, em um RX6700XT):

export ROCM_PATH=/opt/rocm
export HSA_OVERRIDE_GFX_VERSION=10.3.0

Verifique também se seu usuário faz parte do grupo render e video:

sudo usermod -aG render $USERNAME
sudo usermod -aG video $USERNAME

Depois disso, você pode executar o WebUI:

python web.py

Credits

Thanks to all contributors for their efforts

contributors