mirror of
https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI.git
synced 2026-01-19 18:41:52 +00:00
chore: link Português to READMEs
This commit is contained in:
105
docs/pt/Changelog_pt.md
Normal file
105
docs/pt/Changelog_pt.md
Normal file
@@ -0,0 +1,105 @@
|
||||
### 2023-10-06
|
||||
- Criamos uma GUI para alteração de voz em tempo real: go-realtime-gui.bat/gui_v1.py (observe que você deve escolher o mesmo tipo de dispositivo de entrada e saída, por exemplo, MME e MME).
|
||||
- Treinamos um modelo RMVPE de extração de pitch melhor.
|
||||
- Otimizar o layout da GUI de inferência.
|
||||
|
||||
### 2023-08-13
|
||||
1-Correção de bug regular
|
||||
- Alterar o número total mínimo de épocas para 1 e alterar o número total mínimo de epoch para 2
|
||||
- Correção de erros de treinamento por não usar modelos de pré-treinamento
|
||||
- Após a separação dos vocais de acompanhamento, limpe a memória dos gráficos
|
||||
- Alterar o caminho absoluto do faiss save para o caminho relativo
|
||||
- Suporte a caminhos com espaços (tanto o caminho do conjunto de treinamento quanto o nome do experimento são suportados, e os erros não serão mais relatados)
|
||||
- A lista de arquivos cancela a codificação utf8 obrigatória
|
||||
- Resolver o problema de consumo de CPU causado pela busca do faiss durante alterações de voz em tempo real
|
||||
|
||||
Atualizações do 2-Key
|
||||
- Treine o modelo de extração de pitch vocal de código aberto mais forte do momento, o RMVPE, e use-o para treinamento de RVC, inferência off-line/em tempo real, com suporte a PyTorch/Onnx/DirectML
|
||||
- Suporte para placas gráficas AMD e Intel por meio do Pytorch_DML
|
||||
|
||||
(1) Mudança de voz em tempo real (2) Inferência (3) Separação do acompanhamento vocal (4) Não há suporte para treinamento no momento, mudaremos para treinamento de CPU; há suporte para inferência RMVPE de gpu por Onnx_Dml
|
||||
|
||||
|
||||
### 2023-06-18
|
||||
- Novos modelos v2 pré-treinados: 32k e 48k
|
||||
- Correção de erros de inferência de modelo não-f0
|
||||
- Para conjuntos de treinamento que excedam 1 hora, faça minibatch-kmeans automáticos para reduzir a forma dos recursos, de modo que o treinamento, a adição e a pesquisa do Index sejam muito mais rápidos.
|
||||
- Fornecer um espaço de brinquedo vocal2guitar huggingface
|
||||
- Exclusão automática de áudios de conjunto de treinamento de atalhos discrepantes
|
||||
- Guia de exportação Onnx
|
||||
|
||||
Experimentos com falha:
|
||||
- ~~Recuperação de recurso: adicionar recuperação de recurso temporal: não eficaz~~
|
||||
- ~~Recuperação de recursos: adicionar redução de dimensionalidade PCAR: a busca é ainda mais lenta~~
|
||||
- ~~Aumento de dados aleatórios durante o treinamento: não é eficaz~~
|
||||
|
||||
Lista de tarefas:
|
||||
- ~~Vocos-RVC (vocoder minúsculo): não é eficaz~~
|
||||
- ~~Suporte de crepe para treinamento: substituído pelo RMVPE~~
|
||||
- ~~Inferência de crepe de meia precisão:substituída pelo RMVPE. E difícil de conseguir.~~
|
||||
- Suporte ao editor de F0
|
||||
|
||||
### 2023-05-28
|
||||
- Adicionar notebook jupyter v2, changelog em coreano, corrigir alguns requisitos de ambiente
|
||||
- Adicionar consoante sem voz e modo de proteção de respiração
|
||||
- Suporte à detecção de pitch crepe-full
|
||||
- Separação vocal UVR5: suporte a modelos dereverb e modelos de-echo
|
||||
- Adicionar nome e versão do experimento no nome do Index
|
||||
- Suporte aos usuários para selecionar manualmente o formato de exportação dos áudios de saída durante o processamento de conversão de voz em lote e a separação vocal UVR5
|
||||
- Não há mais suporte para o treinamento do modelo v1 32k
|
||||
|
||||
### 2023-05-13
|
||||
- Limpar os códigos redundantes na versão antiga do tempo de execução no pacote de um clique: lib.infer_pack e uvr5_pack
|
||||
- Correção do bug de pseudo multiprocessamento no pré-processamento do conjunto de treinamento
|
||||
- Adição do ajuste do raio de filtragem mediana para o algoritmo de reconhecimento de inclinação da extração
|
||||
- Suporte à reamostragem de pós-processamento para exportação de áudio
|
||||
- A configuração "n_cpu" de multiprocessamento para treinamento foi alterada de "extração de f0" para "pré-processamento de dados e extração de f0"
|
||||
- Detectar automaticamente os caminhos de Index na pasta de registros e fornecer uma função de lista suspensa
|
||||
- Adicionar "Perguntas e respostas frequentes" na página da guia (você também pode consultar o wiki do RVC no github)
|
||||
- Durante a inferência, o pitch da colheita é armazenado em cache quando se usa o mesmo caminho de áudio de entrada (finalidade: usando a extração do pitch da colheita, todo o pipeline passará por um processo longo e repetitivo de extração do pitch. Se o armazenamento em cache não for usado, os usuários que experimentarem diferentes configurações de raio de filtragem de timbre, Index e mediana de pitch terão um processo de espera muito doloroso após a primeira inferência)
|
||||
|
||||
### 2023-05-14
|
||||
- Use o envelope de volume da entrada para misturar ou substituir o envelope de volume da saída (pode aliviar o problema de "muting de entrada e ruído de pequena amplitude de saída"). Se o ruído de fundo do áudio de entrada for alto, não é recomendável ativá-lo, e ele não é ativado por padrão (1 pode ser considerado como não ativado)
|
||||
- Suporte ao salvamento de modelos pequenos extraídos em uma frequência especificada (se você quiser ver o desempenho em épocas diferentes, mas não quiser salvar todos os pontos de verificação grandes e extrair manualmente modelos pequenos pelo processamento ckpt todas as vezes, esse recurso será muito prático)
|
||||
- Resolver o problema de "erros de conexão" causados pelo proxy global do servidor, definindo variáveis de ambiente
|
||||
- Oferece suporte a modelos v2 pré-treinados (atualmente, apenas as versões 40k estão disponíveis publicamente para teste e as outras duas taxas de amostragem ainda não foram totalmente treinadas)
|
||||
- Limita o volume excessivo que excede 1 antes da inferência
|
||||
- Ajustou ligeiramente as configurações do pré-processamento do conjunto de treinamento
|
||||
|
||||
|
||||
#######################
|
||||
|
||||
Histórico de registros de alterações:
|
||||
|
||||
### 2023-04-09
|
||||
- Parâmetros de treinamento corrigidos para melhorar a taxa de utilização da GPU: A100 aumentou de 25% para cerca de 90%, V100: 50% para cerca de 90%, 2060S: 60% para cerca de 85%, P40: 25% para cerca de 95%; melhorou significativamente a velocidade de treinamento
|
||||
- Parâmetro alterado: total batch_size agora é por GPU batch_size
|
||||
- Total_epoch alterado: limite máximo aumentado de 100 para 1000; padrão aumentado de 10 para 20
|
||||
- Corrigido o problema da extração de ckpt que reconhecia o pitch incorretamente, causando inferência anormal
|
||||
- Corrigido o problema do treinamento distribuído que salvava o ckpt para cada classificação
|
||||
- Aplicada a filtragem de recursos nan para extração de recursos
|
||||
- Corrigido o problema com a entrada/saída silenciosa que produzia consoantes aleatórias ou ruído (os modelos antigos precisavam ser treinados novamente com um novo conjunto de dados)
|
||||
|
||||
### Atualização 2023-04-16
|
||||
- Adicionada uma mini-GUI de alteração de voz local em tempo real, iniciada com um clique duplo em go-realtime-gui.bat
|
||||
- Filtragem aplicada para bandas de frequência abaixo de 50 Hz durante o treinamento e a inferência
|
||||
- Diminuição da extração mínima de tom do pyworld do padrão 80 para 50 para treinamento e inferência, permitindo que vozes masculinas de tom baixo entre 50-80 Hz não sejam silenciadas
|
||||
- A WebUI suporta a alteração de idiomas de acordo com a localidade do sistema (atualmente suporta en_US, ja_JP, zh_CN, zh_HK, zh_SG, zh_TW; o padrão é en_US se não for suportado)
|
||||
- Correção do reconhecimento de algumas GPUs (por exemplo, falha no reconhecimento da V100-16G, falha no reconhecimento da P4)
|
||||
|
||||
### Atualização de 2023-04-28
|
||||
- Atualizadas as configurações do Index faiss para maior velocidade e qualidade
|
||||
- Removida a dependência do total_npy; o futuro compartilhamento de modelos não exigirá a entrada do total_npy
|
||||
- Restrições desbloqueadas para as GPUs da série 16, fornecendo configurações de inferência de 4 GB para GPUs com VRAM de 4 GB
|
||||
- Corrigido o erro na separação do acompanhamento vocal do UVR5 para determinados formatos de áudio
|
||||
- A mini-GUI de alteração de voz em tempo real agora suporta modelos de pitch não 40k e que não são lentos
|
||||
|
||||
### Planos futuros:
|
||||
Recursos:
|
||||
- Opção de adição: extrair modelos pequenos para cada epoch salvo
|
||||
- Adicionar opção: exportar mp3 adicional para o caminho especificado durante a inferência
|
||||
- Suporte à guia de treinamento para várias pessoas (até 4 pessoas)
|
||||
|
||||
Modelo básico:
|
||||
- Coletar arquivos wav de respiração para adicionar ao conjunto de dados de treinamento para corrigir o problema de sons de respiração distorcidos
|
||||
- No momento, estamos treinando um modelo básico com um conjunto de dados de canto estendido, que será lançado no futuro
|
||||
193
docs/pt/README.pt.md
Normal file
193
docs/pt/README.pt.md
Normal file
@@ -0,0 +1,193 @@
|
||||
<div align="center">
|
||||
|
||||
<h1>Retrieval-based-Voice-Conversion-WebUI</h1>
|
||||
Uma estrutura de conversão de voz fácil de usar baseada em VITS.<br><br>
|
||||
|
||||
[](https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI)
|
||||
|
||||
<img src="https://counter.seku.su/cmoe?name=rvc&theme=r34" /><br>
|
||||
|
||||
[](https://colab.research.google.com/github/RVC-Project/Retrieval-based-Voice-Conversion-WebUI/blob/main/Retrieval_based_Voice_Conversion_WebUI.ipynb)
|
||||
[](https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI/blob/main/LICENSE)
|
||||
[](https://huggingface.co/lj1995/VoiceConversionWebUI/tree/main/)
|
||||
|
||||
[](https://discord.gg/HcsmBBGyVk)
|
||||
|
||||
</div>
|
||||
|
||||
------
|
||||
[**Changelog**](https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI/blob/main/docs/Changelog_EN.md) | [**FAQ (Frequently Asked Questions)**](https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI/wiki/FAQ-(Frequently-Asked-Questions))
|
||||
|
||||
[**English**](../en/README.en.md) | [**中文简体**](../../README.md) | [**日本語**](../jp/README.ja.md) | [**한국어**](../kr/README.ko.md) ([**韓國語**](../kr/README.ko.han.md)) | [**Türkçe**](../tr/README.tr.md) | [**Português**](../pt/README.pt.md)
|
||||
|
||||
|
||||
Confira nosso [Vídeo de demonstração](https://www.bilibili.com/video/BV1pm4y1z7Gm/) aqui!
|
||||
|
||||
Treinamento/Inferência WebUI:go-web.bat
|
||||

|
||||
|
||||
GUI de conversão de voz em tempo real:go-realtime-gui.bat
|
||||

|
||||
|
||||
|
||||
> 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](#Credits) 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:
|
||||
```bash
|
||||
# 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/RVC-Project/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:
|
||||
```bash
|
||||
# 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:
|
||||
```bash
|
||||
|
||||
for Nvidia graphics cards
|
||||
pip install -r requirements.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`:
|
||||
```bash
|
||||
sh ./run.sh
|
||||
```
|
||||
|
||||
## Preparação de outros Pré-modelos
|
||||
RVC requer outros pré-modelos para inferir e treinar.
|
||||
|
||||
```bash
|
||||
#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](https://huggingface.co/lj1995/VoiceConversionWebUI/tree/main/).
|
||||
|
||||
Aqui está uma lista de pré-modelos e outros arquivos que o RVC precisa:
|
||||
```bash
|
||||
./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 você estiver usando Windows, também pode precisar desses dois arquivos, pule se FFmpeg e FFprobe estiverem instalados
|
||||
ffmpeg.exe
|
||||
|
||||
https://huggingface.co/lj1995/VoiceConversionWebUI/blob/main/ffmpeg.exe
|
||||
|
||||
ffprobe.exe
|
||||
|
||||
https://huggingface.co/lj1995/VoiceConversionWebUI/blob/main/ffprobe.exe
|
||||
|
||||
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:
|
||||
```bash
|
||||
python infer-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](https://rocm.docs.amd.com/en/latest/deploy/linux/os-native/install.html).
|
||||
|
||||
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:
|
||||
```bash
|
||||
python infer-web.py
|
||||
```
|
||||
|
||||
## Credits
|
||||
+ [ContentVec](https://github.com/auspicious3000/contentvec/)
|
||||
+ [VITS](https://github.com/jaywalnut310/vits)
|
||||
+ [HIFIGAN](https://github.com/jik876/hifi-gan)
|
||||
+ [Gradio](https://github.com/gradio-app/gradio)
|
||||
+ [FFmpeg](https://github.com/FFmpeg/FFmpeg)
|
||||
+ [Ultimate Vocal Remover](https://github.com/Anjok07/ultimatevocalremovergui)
|
||||
+ [audio-slicer](https://github.com/openvpi/audio-slicer)
|
||||
+ [Vocal pitch extraction:RMVPE](https://github.com/Dream-High/RMVPE)
|
||||
+ The pretrained model is trained and tested by [yxlllc](https://github.com/yxlllc/RMVPE) and [RVC-Boss](https://github.com/RVC-Boss).
|
||||
|
||||
## Thanks to all contributors for their efforts
|
||||
<a href="https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI/graphs/contributors" target="_blank">
|
||||
<img src="https://contrib.rocks/image?repo=RVC-Project/Retrieval-based-Voice-Conversion-WebUI" />
|
||||
</a>
|
||||
|
||||
102
docs/pt/faiss_tips_pt.md
Normal file
102
docs/pt/faiss_tips_pt.md
Normal file
@@ -0,0 +1,102 @@
|
||||
pONTAS de afinação FAISS
|
||||
==================
|
||||
# sobre faiss
|
||||
faiss é uma biblioteca de pesquisas de vetores densos na área, desenvolvida pela pesquisa do facebook, que implementa com eficiência muitos métodos de pesquisa de área aproximada.
|
||||
A Pesquisa Aproximada de área encontra vetores semelhantes rapidamente, sacrificando alguma precisão.
|
||||
|
||||
## faiss em RVC
|
||||
No RVC, para a incorporação de recursos convertidos pelo HuBERT, buscamos incorporações semelhantes à incorporação gerada a partir dos dados de treinamento e as misturamos para obter uma conversão mais próxima do discurso original. No entanto, como essa pesquisa leva tempo se realizada de forma ingênua, a conversão de alta velocidade é realizada usando a pesquisa aproximada de área.
|
||||
|
||||
# visão geral da implementação
|
||||
Em '/logs/nome-do-seu-modelo/3_feature256', onde o modelo está localizado, os recursos extraídos pelo HuBERT de cada dado de voz estão localizados.
|
||||
A partir daqui, lemos os arquivos npy ordenados por nome de arquivo e concatenamos os vetores para criar big_npy. (Este vetor tem a forma [N, 256].)
|
||||
Depois de salvar big_npy as /logs/nome-do-seu-modelo/total_fea.npy, treine-o com faiss.
|
||||
|
||||
Neste artigo, explicarei o significado desses parâmetros.
|
||||
|
||||
# Explicação do método
|
||||
## Fábrica de Index
|
||||
Uma fábrica de Index é uma notação faiss exclusiva que expressa um pipeline que conecta vários métodos de pesquisa de área aproximados como uma string.
|
||||
Isso permite que você experimente vários métodos aproximados de pesquisa de área simplesmente alterando a cadeia de caracteres de fábrica do Index.
|
||||
No RVC é usado assim:
|
||||
|
||||
```python
|
||||
index = faiss.index_factory(256, "IVF%s,Flat" % n_ivf)
|
||||
```
|
||||
Entre os argumentos de index_factory, o primeiro é o número de dimensões do vetor, o segundo é a string de fábrica do Index e o terceiro é a distância a ser usada.
|
||||
|
||||
Para uma notação mais detalhada
|
||||
https://github.com/facebookresearch/faiss/wiki/The-index-factory
|
||||
|
||||
## Construção de Index
|
||||
Existem dois Indexs típicos usados como similaridade de incorporação da seguinte forma.
|
||||
|
||||
- Distância euclidiana (MÉTRICA_L2)
|
||||
- Produto interno (METRIC_INNER_PRODUCT)
|
||||
|
||||
A distância euclidiana toma a diferença quadrática em cada dimensão, soma as diferenças em todas as dimensões e, em seguida, toma a raiz quadrada. Isso é o mesmo que a distância em 2D e 3D que usamos diariamente.
|
||||
O produto interno não é usado como um Index de similaridade como é, e a similaridade de cosseno que leva o produto interno depois de ser normalizado pela norma L2 é geralmente usada.
|
||||
|
||||
O que é melhor depende do caso, mas a similaridade de cosseno é frequentemente usada na incorporação obtida pelo word2vec e modelos de recuperação de imagem semelhantes aprendidos pelo ArcFace. Se você quiser fazer a normalização l2 no vetor X com numpy, você pode fazê-lo com o seguinte código com eps pequeno o suficiente para evitar a divisão 0.
|
||||
|
||||
```python
|
||||
X_normed = X / np.maximum(eps, np.linalg.norm(X, ord=2, axis=-1, keepdims=True))
|
||||
```
|
||||
|
||||
Além disso, para a Construção de Index, você pode alterar o Index de distância usado para cálculo escolhendo o valor a ser passado como o terceiro argumento.
|
||||
|
||||
```python
|
||||
index = faiss.index_factory(dimention, text, faiss.METRIC_INNER_PRODUCT)
|
||||
```
|
||||
|
||||
## FI
|
||||
IVF (Inverted file indexes) é um algoritmo semelhante ao Index invertido na pesquisa de texto completo.
|
||||
Durante o aprendizado, o destino da pesquisa é agrupado com kmeans e o particionamento Voronoi é realizado usando o centro de cluster. A cada ponto de dados é atribuído um cluster, por isso criamos um dicionário que procura os pontos de dados dos clusters.
|
||||
|
||||
Por exemplo, se os clusters forem atribuídos da seguinte forma
|
||||
|index|Cluster|
|
||||
|-----|-------|
|
||||
|1|A|
|
||||
|2|B|
|
||||
|3|A|
|
||||
|4|C|
|
||||
|5|B|
|
||||
|
||||
O Index invertido resultante se parece com isso:
|
||||
|
||||
| cluster | Index |
|
||||
|-------|-----|
|
||||
| A | 1, 3 |
|
||||
| B | 2 5 |
|
||||
| C | 4 |
|
||||
|
||||
Ao pesquisar, primeiro pesquisamos n_probe clusters dos clusters e, em seguida, calculamos as distâncias para os pontos de dados pertencentes a cada cluster.
|
||||
|
||||
# Parâmetro de recomendação
|
||||
Existem diretrizes oficiais sobre como escolher um Index, então vou explicar de
|
||||
acordo. https://github.com/facebookresearch/faiss/wiki/Guidelines-to-choose-an-index
|
||||
|
||||
Para conjuntos de dados abaixo de 1M, o 4bit-PQ é o método mais eficiente disponível no faiss em abril de 2023.
|
||||
Combinando isso com a fertilização in vitro, estreitando os candidatos com 4bit-PQ e, finalmente, recalcular a distância com um Index preciso pode ser descrito usando a seguinte fábrica de Indexs.
|
||||
|
||||
```python
|
||||
index = faiss.index_factory(256, "IVF1024,PQ128x4fs,RFlat")
|
||||
```
|
||||
|
||||
## Parâmetros recomendados para FIV
|
||||
Considere o caso de muitas FIVs. Por exemplo, se a quantização grosseira por FIV for realizada para o número de dados, isso é o mesmo que uma pesquisa exaustiva ingênua e é ineficiente.
|
||||
Para 1M ou menos, os valores de FIV são recomendados entre 4*sqrt(N) ~ 16*sqrt(N) para N número de pontos de dados.
|
||||
|
||||
Como o tempo de cálculo aumenta proporcionalmente ao número de n_sondas, consulte a precisão e escolha adequadamente. Pessoalmente, não acho que o RVC precise de tanta precisão, então n_probe = 1 está bem.
|
||||
|
||||
## FastScan
|
||||
O FastScan é um método que permite a aproximação de alta velocidade de distâncias por quantização de produto cartesiano, realizando-as em registros.
|
||||
A quantização cartesiana do produto executa o agrupamento independentemente para cada dimensão d (geralmente d = 2) durante o aprendizado, calcula a distância entre os agrupamentos com antecedência e cria uma tabela de pesquisa. No momento da previsão, a distância de cada dimensão pode ser calculada em O(1) olhando para a tabela de pesquisa.
|
||||
Portanto, o número que você especifica após PQ geralmente especifica metade da dimensão do vetor.
|
||||
|
||||
Para uma descrição mais detalhada do FastScan, consulte a documentação oficial.
|
||||
https://github.com/facebookresearch/faiss/wiki/Fast-accumulation-of-PQ-and-AQ-codes-(FastScan)
|
||||
|
||||
## RFlat
|
||||
RFlat é uma instrução para recalcular a distância aproximada calculada pelo FastScan com a distância exata especificada pelo terceiro argumento da Construção de Index.
|
||||
Ao obter áreas k, os pontos k*k_factor são recalculados.
|
||||
224
docs/pt/faq_pt.md
Normal file
224
docs/pt/faq_pt.md
Normal file
@@ -0,0 +1,224 @@
|
||||
# <b>FAQ AI HUB BRASIL</b>
|
||||
## <span style="color: #337dff;">O que é epoch, quantos utilizar, quanto de dataset utilizar e qual à configuração interessante?</span>
|
||||
Epochs basicamente quantas vezes o seu dataset foi treinado.
|
||||
|
||||
Recomendado ler Q8 e Q9 no final dessa página pra entender mais sobre dataset e epochs
|
||||
|
||||
__**Não é uma regra, mas opinião:**__
|
||||
|
||||
### **Mangio-Crepe Hop Length**
|
||||
- 64 pra cantores e dubladores
|
||||
- 128(padrão) para os demais (editado)
|
||||
|
||||
### **Epochs e dataset**
|
||||
600epoch para cantores - --dataset entre 10 e 50 min desnecessario mais que 50 minutos--
|
||||
300epoch para os demais - --dataset entre 10 e 50 min desnecessario mais que 50 minutos--
|
||||
|
||||
### **Tom**
|
||||
magio-crepe se for audios extraído de alguma musica
|
||||
harvest se for de estúdio<hr>
|
||||
|
||||
## <span style="color: #337dff;">O que é index?</span>
|
||||
Basicamente o que define o sotaque. Quanto maior o numero, mas próximo o sotaque fica do original. Porém, quando o modelo é bem, não é necessário um index.<hr>
|
||||
|
||||
## <span style="color: #337dff;">O que significa cada sigla (pm, harvest, crepe, magio-crepe, RMVPE)?</span>
|
||||
|
||||
- pm = extração mais rápida, mas discurso de qualidade inferior;
|
||||
- harvest = graves melhores, mas extremamente lentos;
|
||||
- dio = conversão rápida mas pitch ruim;
|
||||
- crepe = melhor qualidade, mas intensivo em GPU;
|
||||
- crepe-tiny = mesma coisa que o crepe, só que com a qualidade um pouco inferior;
|
||||
- **mangio-crepe = melhor qualidade, mais otimizado; (MELHOR OPÇÃO)**
|
||||
- mangio-crepe-tiny = mesma coisa que o mangio-crepe, só que com a qualidade um pouco inferior;
|
||||
- RMVPE: um modelo robusto para estimativa de afinação vocal em música polifônica;<hr>
|
||||
|
||||
## <span style="color: #337dff;">Pra rodar localmente, quais os requisitos minimos?</span>
|
||||
Já tivemos relatos de pessoas com GTX 1050 rodando inferencia, se for treinar numa 1050 vai demorar muito mesmo e inferior a isso, normalmente da tela azul
|
||||
|
||||
O mais importante é placa de vídeo, vram na verdade
|
||||
Se você tiver 4GB ou mais, você tem uma chance.
|
||||
|
||||
**NOS DOIS CASOS NÃO É RECOMENDADO UTILIZAR O PC ENQUANTO ESTÁ UTILIZNDO, CHANCE DE TELA AZUL É ALTA**
|
||||
### Inference
|
||||
Não é algo oficial para requisitos minimos
|
||||
- Placa de vídeo: nvidia de 4gb
|
||||
- Memoria ram: 8gb
|
||||
- CPU: ?
|
||||
- Armanezamento: 20gb (sem modelos)
|
||||
|
||||
### Treinamento de voz
|
||||
Não é algo oficial para requisitos minimos
|
||||
- Placa de vídeo: nvidia de 6gb
|
||||
- Memoria ram: 16gb
|
||||
- CPU: ?
|
||||
- Armanezamento: 20gb (sem modelos)<hr>
|
||||
|
||||
## <span style="color: #337dff;">Limite de GPU no Google Colab excedido, apenas CPU o que fazer?</span>
|
||||
Recomendamos esperar outro dia pra liberar mais 15gb ou 12 horas pra você. Ou você pode contribuir com o Google pagando algum dos planos, ai aumenta seu limite.<br>
|
||||
Utilizar apenas CPU no Google Colab demora DEMAIS.<hr>
|
||||
|
||||
|
||||
## <span style="color: #337dff;">Google Colab desconectando com muita frequencia, o que fazer?</span>
|
||||
Neste caso realmente não tem muito o que fazer. Apenas aguardar o proprietário do código corrigir ou a gente do AI HUB Brasil achar alguma solução. Isso acontece por diversos motivos, um incluindo a Google barrando o treinamento de voz.<hr>
|
||||
|
||||
## <span style="color: #337dff;">O que é Batch Size/Tamanho de lote e qual numero utilizar?</span>
|
||||
Batch Size/Tamanho do lote é basicamente quantos epoch faz ao mesmo tempo. Se por 20, ele fazer 20 epoch ao mesmo tempo e isso faz pesar mais na máquina e etc.<br>
|
||||
|
||||
No Google Colab você pode utilizar até 20 de boa.<br>
|
||||
Se rodando localmente, depende da sua placa de vídeo, começa por baixo (6) e vai testando.<hr>
|
||||
|
||||
## <span style="color: #337dff;">Sobre backup na hora do treinamento</span>
|
||||
Backup vai de cada um. Eu quando uso a ``easierGUI`` utilizo a cada 100 epoch (meu caso isolado).
|
||||
No colab, se instavel, coloque a cada 10 epoch
|
||||
Recomendo utilizarem entre 25 e 50 pra garantir.
|
||||
|
||||
Lembrando que cada arquivo geral é por volta de 50mb, então tenha muito cuidado quanto você coloca. Pois assim pode acabar lotando seu Google Drive ou seu PC.
|
||||
|
||||
Depois de finalizado, da pra apagar os epoch de backup.<hr>
|
||||
|
||||
## <span style="color: #337dff;">Como continuar da onde parou pra fazer mais epochs?</span>
|
||||
Primeira coisa que gostaria de lembrar, não necessariamente quanto mais epochs melhor. Se fizer epochs demais vai dar **overtraining** o que pode ser ruim.
|
||||
|
||||
### GUI NORMAL
|
||||
- Inicie normalmente a GUI novamente.
|
||||
- Na aba de treino utilize o MESMO nome que estava treinando, assim vai continuar o treino onde parou o ultimo backup.
|
||||
- Ignore as opções ``Processar o Conjunto de dados`` e ``Extrair Tom``
|
||||
- Antes de clicar pra treinar, arrume os epoch, bakcup e afins.
|
||||
- Obviamente tem que ser um numero maior do qu estava em epoch.
|
||||
- Backup você pode aumentar ou diminuir
|
||||
- Agora você vai ver a opção ``Carregue o caminho G do modelo base pré-treinado:`` e ``Carregue o caminho D do modelo base pré-treinado:``
|
||||
-Aqui você vai por o caminho dos modelos que estão em ``./logs/minha-voz``
|
||||
- Vai ficar algo parecido com isso ``e:/RVC/logs/minha-voz/G_0000.pth`` e ``e:/RVC/logs/minha-voz/D_0000.pth``
|
||||
-Coloque pra treinar
|
||||
|
||||
**Lembrando que a pasta logs tem que ter todos os arquivos e não somente o arquivo ``G`` e ``D``**
|
||||
|
||||
### EasierGUI
|
||||
- Inicie normalmente a easierGUI novamente.
|
||||
- Na aba de treino utilize o MESMO nome que estava treinando, assim vai continuar o treino onde parou o ultimo backup.
|
||||
- Selecione 'Treinar modelo', pode pular os 2 primeiros passos já que vamos continuar o treino.<hr><br>
|
||||
|
||||
|
||||
# <b>FAQ Original traduzido</b>
|
||||
## <b><span style="color: #337dff;">Q1: erro ffmpeg/erro utf8.</span></b>
|
||||
Provavelmente não é um problema do FFmpeg, mas sim um problema de caminho de áudio;
|
||||
|
||||
O FFmpeg pode encontrar um erro ao ler caminhos contendo caracteres especiais como spaces e (), o que pode causar um erro FFmpeg; e quando o áudio do conjunto de treinamento contém caminhos chineses, gravá-lo em filelist.txt pode causar um erro utf8.<hr>
|
||||
|
||||
## <b><span style="color: #337dff;">Q2:Não é possível encontrar o arquivo de Index após "Treinamento com um clique".</span></b>
|
||||
Se exibir "O treinamento está concluído. O programa é fechado ", então o modelo foi treinado com sucesso e os erros subsequentes são falsos;
|
||||
|
||||
A falta de um arquivo de index 'adicionado' após o treinamento com um clique pode ser devido ao conjunto de treinamento ser muito grande, fazendo com que a adição do index fique presa; isso foi resolvido usando o processamento em lote para adicionar o index, o que resolve o problema de sobrecarga de memória ao adicionar o index. Como solução temporária, tente clicar no botão "Treinar Index" novamente.<hr>
|
||||
|
||||
## <b><span style="color: #337dff;">Q3:Não é possível encontrar o modelo em “Modelo de voz” após o treinamento</span></b>
|
||||
Clique em "Atualizar lista de voz" ou "Atualizar na EasyGUI e verifique novamente; se ainda não estiver visível, verifique se há erros durante o treinamento e envie capturas de tela do console, da interface do usuário da Web e dos ``logs/experiment_name/*.log`` para os desenvolvedores para análise posterior.<hr>
|
||||
|
||||
## <b><span style="color: #337dff;">Q4:Como compartilhar um modelo/Como usar os modelos dos outros?</span></b>
|
||||
Os arquivos ``.pth`` armazenados em ``*/logs/minha-voz`` não são destinados para compartilhamento ou inference, mas para armazenar os checkpoits do experimento para reprodutibilidade e treinamento adicional. O modelo a ser compartilhado deve ser o arquivo ``.pth`` de 60+MB na pasta **weights**;
|
||||
|
||||
No futuro, ``weights/minha-voz.pth`` e ``logs/minha-voz/added_xxx.index`` serão mesclados em um único arquivo de ``weights/minha-voz.zip`` para eliminar a necessidade de entrada manual de index; portanto, compartilhe o arquivo zip, não somente o arquivo .pth, a menos que você queira continuar treinando em uma máquina diferente;
|
||||
|
||||
Copiar/compartilhar os vários arquivos .pth de centenas de MB da pasta de logs para a pasta de weights para inference forçada pode resultar em erros como falta de f0, tgt_sr ou outras chaves. Você precisa usar a guia ckpt na parte inferior para manualmente ou automaticamente (se as informações forem encontradas nos ``logs/minha-voz``), selecione se deseja incluir informações de tom e opções de taxa de amostragem de áudio de destino e, em seguida, extrair o modelo menor. Após a extração, haverá um arquivo pth de 60+ MB na pasta de weights, e você pode atualizar as vozes para usá-lo.<hr>
|
||||
|
||||
## <b><span style="color: #337dff;">Q5 Erro de conexão:</span></b>
|
||||
Para sermos otimistas, aperte F5/recarregue a página, pode ter sido apenas um bug da GUI
|
||||
|
||||
Se não...
|
||||
Você pode ter fechado o console (janela de linha de comando preta).
|
||||
Ou o Google Colab, no caso do Colab, as vezes pode simplesmente fechar<hr>
|
||||
|
||||
## <b><span style="color: #337dff;">Q6: Pop-up WebUI 'Valor esperado: linha 1 coluna 1 (caractere 0)'.</span></b>
|
||||
Desative o proxy LAN do sistema/proxy global e atualize.<hr>
|
||||
|
||||
## <b><span style="color: #337dff;">Q7:Como treinar e inferir sem a WebUI?</span></b>
|
||||
Script de treinamento:
|
||||
<br>Você pode executar o treinamento em WebUI primeiro, e as versões de linha de comando do pré-processamento e treinamento do conjunto de dados serão exibidas na janela de mensagens.<br>
|
||||
|
||||
Script de inference:
|
||||
<br>https://huggingface.co/lj1995/VoiceConversionWebUI/blob/main/myinfer.py<br>
|
||||
|
||||
|
||||
por exemplo<br>
|
||||
|
||||
``runtime\python.exe myinfer.py 0 "E:\audios\1111.wav" "E:\RVC\logs\minha-voz\added_IVF677_Flat_nprobe_7.index" harvest "test.wav" "weights/mi-test.pth" 0.6 cuda:0 True``<br>
|
||||
|
||||
|
||||
f0up_key=sys.argv[1]<br>
|
||||
input_path=sys.argv[2]<br>
|
||||
index_path=sys.argv[3]<br>
|
||||
f0method=sys.argv[4]#harvest or pm<br>
|
||||
opt_path=sys.argv[5]<br>
|
||||
model_path=sys.argv[6]<br>
|
||||
index_rate=float(sys.argv[7])<br>
|
||||
device=sys.argv[8]<br>
|
||||
is_half=bool(sys.argv[9])<hr>
|
||||
|
||||
## <b><span style="color: #337dff;">Q8: Erro Cuda/Cuda sem memória.</span></b>
|
||||
Há uma pequena chance de que haja um problema com a configuração do CUDA ou o dispositivo não seja suportado; mais provavelmente, não há memória suficiente (falta de memória).<br>
|
||||
|
||||
Para treinamento, reduza o (batch size) tamanho do lote (se reduzir para 1 ainda não for suficiente, talvez seja necessário alterar a placa gráfica); para inference, ajuste as configurações x_pad, x_query, x_center e x_max no arquivo config.py conforme necessário. Cartões de memória 4G ou inferiores (por exemplo, 1060(3G) e várias placas 2G) podem ser abandonados, enquanto os placas de vídeo com memória 4G ainda têm uma chance.<hr>
|
||||
|
||||
## <b><span style="color: #337dff;">Q9:Quantos total_epoch são ótimos?</span></b>
|
||||
Se a qualidade de áudio do conjunto de dados de treinamento for ruim e o nível de ruído for alto, **20-30 epochs** são suficientes. Defini-lo muito alto não melhorará a qualidade de áudio do seu conjunto de treinamento de baixa qualidade.<br>
|
||||
|
||||
Se a qualidade de áudio do conjunto de treinamento for alta, o nível de ruído for baixo e houver duração suficiente, você poderá aumentá-lo. **200 é aceitável** (uma vez que o treinamento é rápido e, se você puder preparar um conjunto de treinamento de alta qualidade, sua GPU provavelmente poderá lidar com uma duração de treinamento mais longa sem problemas).<hr>
|
||||
|
||||
## <b><span style="color: #337dff;">Q10:Quanto tempo de treinamento é necessário?</span></b>
|
||||
|
||||
**Recomenda-se um conjunto de dados de cerca de 10 min a 50 min.**<br>
|
||||
|
||||
Com garantia de alta qualidade de som e baixo ruído de fundo, mais pode ser adicionado se o timbre do conjunto de dados for uniforme.<br>
|
||||
|
||||
Para um conjunto de treinamento de alto nível (limpo + distintivo), 5min a 10min é bom.<br>
|
||||
|
||||
Há algumas pessoas que treinaram com sucesso com dados de 1 a 2 minutos, mas o sucesso não é reproduzível por outros e não é muito informativo. <br>Isso requer que o conjunto de treinamento tenha um timbre muito distinto (por exemplo, um som de menina de anime arejado de alta frequência) e a qualidade do áudio seja alta;
|
||||
Dados com menos de 1 minuto, já obtivemo sucesso. Mas não é recomendado.<hr>
|
||||
|
||||
|
||||
## <b><span style="color: #337dff;">Q11:Qual é a taxa do index e como ajustá-la?</span></b>
|
||||
Se a qualidade do tom do modelo pré-treinado e da fonte de inference for maior do que a do conjunto de treinamento, eles podem trazer a qualidade do tom do resultado do inference, mas ao custo de um possível viés de tom em direção ao tom do modelo subjacente/fonte de inference, em vez do tom do conjunto de treinamento, que é geralmente referido como "vazamento de tom".<br>
|
||||
|
||||
A taxa de index é usada para reduzir/resolver o problema de vazamento de timbre. Se a taxa do index for definida como 1, teoricamente não há vazamento de timbre da fonte de inference e a qualidade do timbre é mais tendenciosa em relação ao conjunto de treinamento. Se o conjunto de treinamento tiver uma qualidade de som mais baixa do que a fonte de inference, uma taxa de index mais alta poderá reduzir a qualidade do som. Reduzi-lo a 0 não tem o efeito de usar a mistura de recuperação para proteger os tons definidos de treinamento.<br>
|
||||
|
||||
Se o conjunto de treinamento tiver boa qualidade de áudio e longa duração, aumente o total_epoch, quando o modelo em si é menos propenso a se referir à fonte inferida e ao modelo subjacente pré-treinado, e há pouco "vazamento de tom", o index_rate não é importante e você pode até não criar/compartilhar o arquivo de index.<hr>
|
||||
|
||||
## <b><span style="color: #337dff;">Q12:Como escolher o GPU ao inferir?</span></b>
|
||||
No arquivo ``config.py``, selecione o número da placa em "device cuda:".<br>
|
||||
|
||||
O mapeamento entre o número da placa e a placa gráfica pode ser visto na seção de informações da placa gráfica da guia de treinamento.<hr>
|
||||
|
||||
## <b><span style="color: #337dff;">Q13:Como usar o modelo salvo no meio do treinamento?</span></b>
|
||||
Salvar via extração de modelo na parte inferior da guia de processamento do ckpt.<hr>
|
||||
|
||||
## <b><span style="color: #337dff;">Q14: Erro de arquivo/memória (durante o treinamento)?</span></b>
|
||||
Muitos processos e sua memória não é suficiente. Você pode corrigi-lo por:
|
||||
|
||||
1. Diminuir a entrada no campo "Threads da CPU".
|
||||
2. Diminuir o tamanho do conjunto de dados.
|
||||
|
||||
## Q15: Como continuar treinando usando mais dados
|
||||
|
||||
passo 1: coloque todos os dados wav no path2.
|
||||
|
||||
etapa 2: exp_name2 + path2 -> processar conjunto de dados e extrair recurso.
|
||||
|
||||
passo 3: copie o arquivo G e D mais recente de exp_name1 (seu experimento anterior) para a pasta exp_name2.
|
||||
|
||||
passo 4: clique em "treinar o modelo" e ele continuará treinando desde o início da época anterior do modelo exp.
|
||||
|
||||
## Q16: erro sobre llvmlite.dll
|
||||
|
||||
OSError: Não foi possível carregar o arquivo de objeto compartilhado: llvmlite.dll
|
||||
|
||||
FileNotFoundError: Não foi possível encontrar o módulo lib\site-packages\llvmlite\binding\llvmlite.dll (ou uma de suas dependências). Tente usar o caminho completo com sintaxe de construtor.
|
||||
|
||||
O problema acontecerá no Windows, instale https://aka.ms/vs/17/release/vc_redist.x64.exe e será corrigido.
|
||||
|
||||
## Q17: RuntimeError: O tamanho expandido do tensor (17280) deve corresponder ao tamanho existente (0) na dimensão 1 não singleton. Tamanhos de destino: [1, 17280]. Tamanhos de tensor: [0]
|
||||
|
||||
Exclua os arquivos wav cujo tamanho seja significativamente menor que outros e isso não acontecerá novamente. Em seguida, clique em "treinar o modelo" e "treinar o índice".
|
||||
|
||||
## Q18: RuntimeError: O tamanho do tensor a (24) deve corresponder ao tamanho do tensor b (16) na dimensão não singleton 2
|
||||
|
||||
Não altere a taxa de amostragem e continue o treinamento. Caso seja necessário alterar, o nome do exp deverá ser alterado e o modelo será treinado do zero. Você também pode copiar o pitch e os recursos (pastas 0/1/2/2b) extraídos da última vez para acelerar o processo de treinamento.
|
||||
|
||||
65
docs/pt/training_tips_pt.md
Normal file
65
docs/pt/training_tips_pt.md
Normal file
@@ -0,0 +1,65 @@
|
||||
Instruções e dicas para treinamento RVC
|
||||
======================================
|
||||
Estas DICAS explicam como o treinamento de dados é feito.
|
||||
|
||||
# Fluxo de treinamento
|
||||
Explicarei ao longo das etapas na guia de treinamento da GUI.
|
||||
|
||||
## Passo 1
|
||||
Defina o nome do experimento aqui.
|
||||
|
||||
Você também pode definir aqui se o modelo deve levar em consideração o pitch.
|
||||
Se o modelo não considerar o tom, o modelo será mais leve, mas não será adequado para cantar.
|
||||
|
||||
Os dados de cada experimento são colocados em `/logs/nome-do-seu-modelo/`.
|
||||
|
||||
## Passo 2a
|
||||
Carrega e pré-processa áudio.
|
||||
|
||||
### Carregar áudio
|
||||
Se você especificar uma pasta com áudio, os arquivos de áudio dessa pasta serão lidos automaticamente.
|
||||
Por exemplo, se você especificar `C:Users\hoge\voices`, `C:Users\hoge\voices\voice.mp3` será carregado, mas `C:Users\hoge\voices\dir\voice.mp3` será Não carregado.
|
||||
|
||||
Como o ffmpeg é usado internamente para leitura de áudio, se a extensão for suportada pelo ffmpeg, ela será lida automaticamente.
|
||||
Após converter para int16 com ffmpeg, converta para float32 e normalize entre -1 e 1.
|
||||
|
||||
### Eliminar ruído
|
||||
O áudio é suavizado pelo filtfilt do scipy.
|
||||
|
||||
### Divisão de áudio
|
||||
Primeiro, o áudio de entrada é dividido pela detecção de partes de silêncio que duram mais que um determinado período (max_sil_kept=5 segundos?). Após dividir o áudio no silêncio, divida o áudio a cada 4 segundos com uma sobreposição de 0,3 segundos. Para áudio separado em 4 segundos, após normalizar o volume, converta o arquivo wav para `/logs/nome-do-seu-modelo/0_gt_wavs` e, em seguida, converta-o para taxa de amostragem de 16k para `/logs/nome-do-seu-modelo/1_16k_wavs ` como um arquivo wav.
|
||||
|
||||
## Passo 2b
|
||||
### Extrair pitch
|
||||
Extraia informações de pitch de arquivos wav. Extraia as informações de pitch (=f0) usando o método incorporado em Parselmouth ou pyworld e salve-as em `/logs/nome-do-seu-modelo/2a_f0`. Em seguida, converta logaritmicamente as informações de pitch para um número inteiro entre 1 e 255 e salve-as em `/logs/nome-do-seu-modelo/2b-f0nsf`.
|
||||
|
||||
### Extrair feature_print
|
||||
Converta o arquivo wav para incorporação antecipadamente usando HuBERT. Leia o arquivo wav salvo em `/logs/nome-do-seu-modelo/1_16k_wavs`, converta o arquivo wav em recursos de 256 dimensões com HuBERT e salve no formato npy em `/logs/nome-do-seu-modelo/3_feature256`.
|
||||
|
||||
## Passo 3
|
||||
treinar o modelo.
|
||||
### Glossário para iniciantes
|
||||
No aprendizado profundo, o conjunto de dados é dividido e o aprendizado avança aos poucos. Em uma atualização do modelo (etapa), os dados batch_size são recuperados e previsões e correções de erros são realizadas. Fazer isso uma vez para um conjunto de dados conta como um epoch.
|
||||
|
||||
Portanto, o tempo de aprendizagem é o tempo de aprendizagem por etapa x (o número de dados no conjunto de dados/tamanho do lote) x o número de epoch. Em geral, quanto maior o tamanho do lote, mais estável se torna o aprendizado (tempo de aprendizado por etapa ÷ tamanho do lote) fica menor, mas usa mais memória GPU. A RAM da GPU pode ser verificada com o comando nvidia-smi. O aprendizado pode ser feito em pouco tempo aumentando o tamanho do lote tanto quanto possível de acordo com a máquina do ambiente de execução.
|
||||
|
||||
### Especifique o modelo pré-treinado
|
||||
O RVC começa a treinar o modelo a partir de pesos pré-treinados em vez de 0, para que possa ser treinado com um pequeno conjunto de dados.
|
||||
|
||||
Por padrão
|
||||
|
||||
- Se você considerar o pitch, ele carrega `rvc-location/pretrained/f0G40k.pth` e `rvc-location/pretrained/f0D40k.pth`.
|
||||
- Se você não considerar o pitch, ele carrega `rvc-location/pretrained/f0G40k.pth` e `rvc-location/pretrained/f0D40k.pth`.
|
||||
|
||||
Ao aprender, os parâmetros do modelo são salvos em `logs/nome-do-seu-modelo/G_{}.pth` e `logs/nome-do-seu-modelo/D_{}.pth` para cada save_every_epoch, mas especificando nesse caminho, você pode começar a aprender. Você pode reiniciar ou iniciar o treinamento a partir de weights de modelo aprendidos em um experimento diferente.
|
||||
|
||||
### Index de aprendizado
|
||||
O RVC salva os valores de recursos do HuBERT usados durante o treinamento e, durante a inferência, procura valores de recursos que sejam semelhantes aos valores de recursos usados durante o aprendizado para realizar a inferência. Para realizar esta busca em alta velocidade, o index é aprendido previamente.
|
||||
Para aprendizagem de index, usamos a biblioteca de pesquisa de associação de áreas aproximadas faiss. Leia o valor do recurso `logs/nome-do-seu-modelo/3_feature256` e use-o para aprender o index, e salve-o como `logs/nome-do-seu-modelo/add_XXX.index`.
|
||||
|
||||
(A partir da versão 20230428update, ele é lido do index e não é mais necessário salvar/especificar.)
|
||||
|
||||
### Descrição do botão
|
||||
- Treinar modelo: Após executar o passo 2b, pressione este botão para treinar o modelo.
|
||||
- Treinar índice de recursos: após treinar o modelo, execute o aprendizado do index.
|
||||
- Treinamento com um clique: etapa 2b, treinamento de modelo e treinamento de index de recursos, tudo de uma vez.
|
||||
Reference in New Issue
Block a user