-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Strings from WebUI and docs translated into pt-BR (#400)
- Loading branch information
1 parent
9974cf3
commit 7daa2fc
Showing
11 changed files
with
862 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,79 @@ | ||
# Fish Speech | ||
|
||
<div align="center"> | ||
|
||
[Inglês](README.md) | [Chinês](README.zh.md) | **Português (Brasil)** | ||
|
||
</div> | ||
|
||
<div> | ||
<a target="_blank" href="https://discord.gg/Es5qTB9BcN"> | ||
<img alt="Discord" src="https://img.shields.io/discord/1214047546020728892?color=%23738ADB&label=Discord&logo=discord&logoColor=white&style=flat-square"/> | ||
</a> | ||
<a target="_blank" href="https://hub.docker.com/r/lengyue233/fish-speech"> | ||
<img alt="Docker" src="https://img.shields.io/docker/pulls/lengyue233/fish-speech?style=flat-square&logo=docker"/> | ||
</a> | ||
<a target="_blank" href="https://github.com/fishaudio/fish-speech/actions/workflows/build-windows-package.yml"> | ||
<img alt="Action" src="https://img.shields.io/github/actions/workflow/status/fishaudio/fish-speech/build-windows-package.yml?style=flat-square&label=Build%20Windows%20Package&logo=github"/> | ||
</a> | ||
</div> | ||
|
||
Este código-fonte e os modelos são publicados sob a licença CC-BY-NC-SA-4.0. Consulte [LICENSE](LICENSE) para mais detalhes. | ||
|
||
## Isenção de Responsabilidade | ||
|
||
Não nos responsabilizamos por qualquer uso ilegal do código-fonte. Consulte as leis locais sobre DMCA (Digital Millennium Copyright Act) e outras leis relevantes em sua região. | ||
|
||
## Demonstração Online | ||
|
||
[Fish Audio](https://fish.audio) | ||
|
||
## Início Rápido de Inferência Local | ||
|
||
[inference.ipynb](/inference.ipynb) | ||
|
||
## Vídeos | ||
|
||
#### 1.2 Introdução: https://www.bilibili.com/video/BV1wz421B71D | ||
|
||
#### 1.1 Apresentação Técnica: https://www.bilibili.com/video/BV1zJ4m1K7cj | ||
|
||
## Documentação | ||
|
||
- [Inglês](https://speech.fish.audio/en/) | ||
- [Chinês](https://speech.fish.audio/) | ||
- [Japonês](https://speech.fish.audio/ja/) | ||
- [Português (Brasil)](https://speech.fish.audio/pt/) | ||
|
||
## Exemplos | ||
|
||
- [Inglês](https://speech.fish.audio/en/samples/) | ||
- [Chinês](https://speech.fish.audio/samples/) | ||
- [Japonês](https://speech.fish.audio/ja/samples/) | ||
- [Português (Brasil)](https://speech.fish.audio/pt/samples/) | ||
|
||
## Agradecimentos | ||
|
||
- [VITS2 (daniilrobnikov)](https://github.com/daniilrobnikov/vits2) | ||
- [Bert-VITS2](https://github.com/fishaudio/Bert-VITS2) | ||
- [GPT VITS](https://github.com/innnky/gpt-vits) | ||
- [MQTTS](https://github.com/b04901014/MQTTS) | ||
- [GPT Fast](https://github.com/pytorch-labs/gpt-fast) | ||
- [GPT-SoVITS](https://github.com/RVC-Boss/GPT-SoVITS) | ||
|
||
## Patrocinadores | ||
|
||
<div> | ||
<a href="https://6block.com/"> | ||
<img src="https://avatars.githubusercontent.com/u/60573493" width="100" height="100" alt="6Block Avatar"/> | ||
</a> | ||
<br> | ||
<a href="https://6block.com/">Servidores de processamento de dados fornecidos por 6Block</a> | ||
</div> | ||
<div> | ||
<a href="https://www.lepton.ai/"> | ||
<img src="https://www.lepton.ai/favicons/apple-touch-icon.png" width="100" height="100" alt="Lepton Avatar"/> | ||
</a> | ||
<br> | ||
<a href="https://www.lepton.ai/">Inferência online do Fish Audio em parceria com a Lepton</a> | ||
</div> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,125 @@ | ||
# Ajuste Fino | ||
|
||
É óbvio que ao abrir esta página, você não deve estar muito satisfeito com o desempenho do modelo pré-treinado com poucos exemplos. Você pode querer ajustar o modelo para melhorar seu desempenho em seu conjunto de dados. | ||
|
||
Na atual versão, a única coisa que você precisa ajustar é a parte do 'LLAMA'. | ||
|
||
## Ajuste Fino do LLAMA | ||
### 1. Preparando o conjunto de dados | ||
|
||
``` | ||
. | ||
├── SPK1 | ||
│ ├── 21.15-26.44.lab | ||
│ ├── 21.15-26.44.mp3 | ||
│ ├── 27.51-29.98.lab | ||
│ ├── 27.51-29.98.mp3 | ||
│ ├── 30.1-32.71.lab | ||
│ └── 30.1-32.71.mp3 | ||
└── SPK2 | ||
├── 38.79-40.85.lab | ||
└── 38.79-40.85.mp3 | ||
``` | ||
|
||
Você precisa converter seu conjunto de dados para o formato acima e colocá-lo em `data`. O arquivo de áudio pode ter as extensões `.mp3`, `.wav` ou `.flac`, e o arquivo de anotação deve ter a extensão `.lab`. | ||
|
||
!!! warning | ||
É recomendado aplicar normalização de volume ao conjunto de dados. Você pode usar o [fish-audio-preprocess](https://github.com/fishaudio/audio-preprocess) para fazer isso. | ||
|
||
```bash | ||
fap loudness-norm data-raw data --clean | ||
``` | ||
|
||
|
||
### 2. Extração em lote de tokens semânticos | ||
|
||
Certifique-se de ter baixado os pesos do VQGAN. Se não, execute o seguinte comando: | ||
|
||
```bash | ||
huggingface-cli download fishaudio/fish-speech-1.2-sft --local-dir checkpoints/fish-speech-1.2-sft | ||
``` | ||
|
||
Em seguida, você pode executar o seguinte comando para extrair os tokens semânticos: | ||
|
||
```bash | ||
python tools/vqgan/extract_vq.py data \ | ||
--num-workers 1 --batch-size 16 \ | ||
--config-name "firefly_gan_vq" \ | ||
--checkpoint-path "checkpoints/fish-speech-1.2-sft/firefly-gan-vq-fsq-4x1024-42hz-generator.pth" | ||
``` | ||
|
||
!!! note | ||
Você pode ajustar `--num-workers` e `--batch-size` para aumentar a velocidade de extração, mas certifique-se de não exceder o limite de memória da sua GPU. | ||
Para o formato VITS, você pode especificar uma lista de arquivos usando `--filelist xxx.list`. | ||
|
||
Este comando criará arquivos `.npy` no diretório `data`, como mostrado abaixo: | ||
|
||
``` | ||
. | ||
├── SPK1 | ||
│ ├── 21.15-26.44.lab | ||
│ ├── 21.15-26.44.mp3 | ||
│ ├── 21.15-26.44.npy | ||
│ ├── 27.51-29.98.lab | ||
│ ├── 27.51-29.98.mp3 | ||
│ ├── 27.51-29.98.npy | ||
│ ├── 30.1-32.71.lab | ||
│ ├── 30.1-32.71.mp3 | ||
│ └── 30.1-32.71.npy | ||
└── SPK2 | ||
├── 38.79-40.85.lab | ||
├── 38.79-40.85.mp3 | ||
└── 38.79-40.85.npy | ||
``` | ||
|
||
### 3. Empacotar o conjunto de dados em protobuf | ||
|
||
```bash | ||
python tools/llama/build_dataset.py \ | ||
--input "data" \ | ||
--output "data/protos" \ | ||
--text-extension .lab \ | ||
--num-workers 16 | ||
``` | ||
|
||
Após executar o comando, você deverá ver o arquivo `quantized-dataset-ft.protos` no diretório `data`. | ||
|
||
### 4. E finalmente, chegamos ao ajuste fino com LoRA | ||
|
||
Da mesma forma, certifique-se de ter baixado os pesos do `LLAMA`. Se não, execute o seguinte comando: | ||
|
||
```bash | ||
huggingface-cli download fishaudio/fish-speech-1.2-sft --local-dir checkpoints/fish-speech-1.2-sft | ||
``` | ||
|
||
E então, execute o seguinte comando para iniciar o ajuste fino: | ||
|
||
```bash | ||
python fish_speech/train.py --config-name text2semantic_finetune \ | ||
project=$project \ | ||
[email protected]_config=r_8_alpha_16 | ||
``` | ||
|
||
!!! note | ||
Se quiser, você pode modificar os parâmetros de treinamento, como `batch_size`, `gradient_accumulation_steps`, etc., para se ajustar à memória da sua GPU, modificando `fish_speech/configs/text2semantic_finetune.yaml`. | ||
|
||
!!! note | ||
Para usuários do Windows, é recomendado usar `trainer.strategy.process_group_backend=gloo` para evitar problemas com `nccl`. | ||
|
||
Após concluir o treinamento, consulte a seção [inferência](inference.md), e use `--speaker SPK1` para gerar fala. | ||
|
||
!!! info | ||
Por padrão, o modelo aprenderá apenas os padrões de fala do orador e não o timbre. Ainda pode ser preciso usar prompts para garantir a estabilidade do timbre. | ||
Se quiser que ele aprenda o timbre, aumente o número de etapas de treinamento, mas isso pode levar ao overfitting (sobreajuste). | ||
|
||
Após o treinamento, é preciso converter os pesos do LoRA em pesos regulares antes de realizar a inferência. | ||
|
||
```bash | ||
python tools/llama/merge_lora.py \ | ||
--lora-config r_8_alpha_16 \ | ||
--base-weight checkpoints/fish-speech-1.2-sft \ | ||
--lora-weight results/$project/checkpoints/step_000000010.ckpt \ | ||
--output checkpoints/fish-speech-1.2-sft-yth-lora/ | ||
``` | ||
!!! note | ||
É possível também tentar outros checkpoints. Sugerimos usar o checkpoint que melhor atenda aos seus requisitos, pois eles geralmente têm um desempenho melhor em dados fora da distribuição (OOD). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,131 @@ | ||
# Introdução | ||
|
||
<div> | ||
<a target="_blank" href="https://discord.gg/Es5qTB9BcN"> | ||
<img alt="Discord" src="https://img.shields.io/discord/1214047546020728892?color=%23738ADB&label=Discord&logo=discord&logoColor=white&style=flat-square"/> | ||
</a> | ||
<a target="_blank" href="http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=jCKlUP7QgSm9kh95UlBoYv6s1I-Apl1M&authKey=xI5ttVAp3do68IpEYEalwXSYZFdfxZSkah%2BctF5FIMyN2NqAa003vFtLqJyAVRfF&noverify=0&group_code=593946093"> | ||
<img alt="QQ" src="https://img.shields.io/badge/QQ Group-%2312B7F5?logo=tencent-qq&logoColor=white&style=flat-square"/> | ||
</a> | ||
<a target="_blank" href="https://hub.docker.com/r/lengyue233/fish-speech"> | ||
<img alt="Docker" src="https://img.shields.io/docker/pulls/lengyue233/fish-speech?style=flat-square&logo=docker"/> | ||
</a> | ||
</div> | ||
|
||
!!! warning | ||
Não nos responsabilizamos por qualquer uso ilegal do código-fonte. Consulte as leis locais sobre DMCA (Digital Millennium Copyright Act) e outras leis relevantes em sua região. <br/> | ||
Este código-fonte é liberado sob a licença `BSD-3-Clause`, e todos os modelos são liberados sob a licença CC-BY-NC-SA-4.0. | ||
|
||
<p align="center"> | ||
<img src="../assets/figs/diagrama.png" width="75%"> | ||
</p> | ||
|
||
## Requisitos | ||
|
||
- Memória da GPU: 4GB (para inferência), 8GB (para ajuste fino) | ||
- Sistema: Linux, Windows | ||
|
||
## Configuração para Windows | ||
|
||
No Windows, usuários avançados podem considerar usar o WSL2 ou Docker para executar o código. | ||
|
||
Para Usuários comuns (não-avançados), siga os métodos abaixo para executar o código sem um ambiente Linux (incluindo suporte para `torch.compile`): | ||
|
||
<ol> | ||
<li>Extraia o arquivo compactado do projeto.</li> | ||
<li>Prepare o ambiente conda: | ||
<ul> | ||
<li>Abra o <code>install_env.bat</code> para baixar e iniciar a instalação do miniconda.</li> | ||
<li>Personalize o download (opcional): | ||
<ul> | ||
<li>**Site espelho:** Para usar um site espelho para downloads mais rápidos, defina <code>USE_MIRROR=true</code> no <code>install_env.bat</code> (padrão). Caso contrário, use <code>USE_MIRROR=false</code>.</li> | ||
<li>**Ambiente compilado:** Para baixar a versão de prévia com o ambiente compilado, defina <code>INSTALL_TYPE=preview</code>. Para a versão estável sem ambiente compilado, use <code>INSTALL_TYPE=stable</code>.</li> | ||
</ul> | ||
</li> | ||
</ul> | ||
</li> | ||
<li>Se você escolheu a versão de prévia com ambiente compilado (<code>INSTALL_TYPE=preview</code>), siga para a próxima etapa (opcional): | ||
<ol> | ||
<li>Baixe o compilador LLVM usando os seguintes links: | ||
<ul> | ||
<li><a href="https://huggingface.co/fishaudio/fish-speech-1/resolve/main/LLVM-17.0.6-win64.exe?download=true">LLVM-17.0.6 (download do site original)</a></li> | ||
<li><a href="https://hf-mirror.com/fishaudio/fish-speech-1/resolve/main/LLVM-17.0.6-win64.exe?download=true">LLVM-17.0.6 (download do site espelho)</a></li> | ||
<li>Após baixar o <code>LLVM-17.0.6-win64.exe</code>, clique duas vezes para instalá-lo, escolha um local de instalação apropriado. E durante a instalação, marque a opção <code>Add Path to Current User</code> para adicionar às variáveis de ambiente.</li> | ||
<li>Confirme se a instalação foi concluída.</li> | ||
</ul> | ||
</li> | ||
<li>Baixe e instale o pacote Microsoft Visual C++ Redistributable para resolver possíveis problemas de .dll ausentes. | ||
<ul> | ||
<li><a href="https://aka.ms/vs/17/release/vc_redist.x64.exe">Download do MSVC++ 14.40.33810.0</a></li> | ||
</ul> | ||
</li> | ||
<li>Baixe e instale o Visual Studio Community Edition para obter as ferramentas de compilação MSVC++, resolvendo as dependências do arquivo de cabeçalho LLVM. | ||
<ul> | ||
<li><a href="https://visualstudio.microsoft.com/pt-br/downloads/">Download do Visual Studio</a></li> | ||
<li>Após instalar o Visual Studio Installer, baixe o Visual Studio Community 2022.</li> | ||
<li>Clique no botão <code>Modificar</code>, conforme mostrado abaixo, encontre a opção <code>Desenvolvimento para desktop com C++</code> e marque-a para download.</li> | ||
<p align="center"> | ||
<img src="../assets/figs/VS_1_pt-BR.png" width="75%"> | ||
</p> | ||
</ul> | ||
</li> | ||
<li>Instale o <a href="https://developer.nvidia.com/cuda-12-1-0-download-archive?target_os=Windows&target_arch=x86_64">CUDA Toolkit 12</a></li> | ||
</ol> | ||
</li> | ||
<li>Clique duas vezes em <code>start.bat</code> para entrar na página da WebUI de configuração de inferência de treinamento do Fish-Speech. | ||
<ul> | ||
<li>(Opcional) Se desejar ir direto para a página de inferência, edite o arquivo <code>API_FLAGS.txt</code> no diretório raiz do projeto e modifique as três primeiras linhas da seguinte forma: | ||
<pre><code>--infer | ||
# --api | ||
# --listen ... | ||
...</code></pre> | ||
</li> | ||
<li>(Opcional) Se preferir iniciar o servidor da API, edite o arquivo <code>API_FLAGS.txt</code> no diretório raiz do projeto e modifique as três primeiras linhas da seguinte forma: | ||
<pre><code># --infer | ||
--api | ||
--listen ... | ||
...</code></pre> | ||
</li> | ||
</ul> | ||
</li> | ||
<li>(Opcional) Clique duas vezes em <code>run_cmd.bat</code> para entrar na CLI do conda/python deste projeto.</li> | ||
</ol> | ||
|
||
## Configuração para Linux | ||
|
||
```bash | ||
# Crie um ambiente virtual python 3.10, você também pode usar virtualenv | ||
conda create -n fish-speech python=3.10 | ||
conda activate fish-speech | ||
|
||
# Instale o pytorch | ||
pip3 install torch torchvision torchaudio | ||
|
||
# Instale o fish-speech | ||
pip3 install -e . | ||
|
||
# Para os Usuário do Ubuntu / Debian: Instale o sox | ||
apt install libsox-dev | ||
``` | ||
|
||
## Histórico de Alterações | ||
|
||
- 02/07/2024: Fish-Speech atualizado para a versão 1.2, removido o Decodificador VITS e aprimorado consideravelmente a capacidade de zero-shot. | ||
- 10/05/2024: Fish-Speech atualizado para a versão 1.1, implementado o decodificador VITS para reduzir a WER e melhorar a similaridade de timbre. | ||
- 22/04/2024: Finalizada a versão 1.0 do Fish-Speech, modificados significativamente os modelos VQGAN e LLAMA. | ||
- 28/12/2023: Adicionado suporte para ajuste fino `lora`. | ||
- 27/12/2023: Adicionado suporte para `gradient checkpointing`, `causual sampling` e `flash-attn`. | ||
- 19/12/2023: Atualizada a interface web e a API HTTP. | ||
- 18/12/2023: Atualizada a documentação de ajuste fino e exemplos relacionados. | ||
- 17/12/2023: Atualizado o modelo `text2semantic`, suportando o modo sem fonemas. | ||
- 13/12/2023: Versão beta lançada, incluindo o modelo VQGAN e um modelo de linguagem baseado em LLAMA (suporte apenas a fonemas). | ||
|
||
## Agradecimentos | ||
|
||
- [VITS2 (daniilrobnikov)](https://github.com/daniilrobnikov/vits2) | ||
- [Bert-VITS2](https://github.com/fishaudio/Bert-VITS2) | ||
- [GPT VITS](https://github.com/innnky/gpt-vits) | ||
- [MQTTS](https://github.com/b04901014/MQTTS) | ||
- [GPT Fast](https://github.com/pytorch-labs/gpt-fast) | ||
- [Transformers](https://github.com/huggingface/transformers) | ||
- [GPT-SoVITS](https://github.com/RVC-Boss/GPT-SoVITS) |
Oops, something went wrong.