diff --git a/README.md b/README.md index 1e2e8ecf..a1436d74 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,11 @@ # Fish Speech +
+ +**English** | [中文简体](README.zh.md) | [Portuguese (Brazil)](README.pt-BR) + +
+
Discord @@ -12,8 +18,6 @@
-[Chinese README](README.zh.md) - This codebase and all models are released under CC-BY-NC-SA-4.0 License. Please refer to [LICENSE](LICENSE) for more details. ## Disclaimer @@ -37,6 +41,7 @@ We do not hold any responsibility for any illegal usage of the codebase. Please - [English](https://speech.fish.audio/en/) - [中文](https://speech.fish.audio/) - [日本語](https://speech.fish.audio/ja/) +- [Portuguese (Brazil)](https://speech.fish.audio/pt/) ## Credits diff --git a/README.pt-BR.md b/README.pt-BR.md new file mode 100644 index 00000000..f8104d7c --- /dev/null +++ b/README.pt-BR.md @@ -0,0 +1,79 @@ +# Fish Speech + +
+ +[Inglês](README.md) | [Chinês](README.zh.md) | **Português (Brasil)** + +
+ +
+ +Discord + + +Docker + + +Action + +
+ +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 + +
+ + 6Block Avatar + +
+ Servidores de processamento de dados fornecidos por 6Block +
+
+ + Lepton Avatar + +
+ Inferência online do Fish Audio em parceria com a Lepton +
diff --git a/README.zh.md b/README.zh.md index 881ada54..f10c2f89 100644 --- a/README.zh.md +++ b/README.zh.md @@ -1,5 +1,11 @@ # Fish Speech +
+ +[English](README.md) | **中文简体** | [Português (Brasil)](README.pt-BR) + +
+
Discord @@ -40,12 +46,14 @@ - [English](https://speech.fish.audio/en/) - [中文](https://speech.fish.audio/) - [日本語](https://speech.fish.audio/ja/) +- [Portuguese (Brazil)](https://speech.fish.audio/pt/) ## 例子 - [English](https://speech.fish.audio/en/samples/) - [中文](https://speech.fish.audio/samples/) - [日本語](https://speech.fish.audio/ja/samples/) +- [Portuguese (Brazil)](https://speech.fish.audio/pt/samples/) ## 鸣谢 diff --git a/docs/assets/figs/VS_1_pt-BR.png b/docs/assets/figs/VS_1_pt-BR.png new file mode 100644 index 00000000..d7cf5c85 Binary files /dev/null and b/docs/assets/figs/VS_1_pt-BR.png differ diff --git a/docs/assets/figs/diagrama.png b/docs/assets/figs/diagrama.png new file mode 100644 index 00000000..140f926a Binary files /dev/null and b/docs/assets/figs/diagrama.png differ diff --git a/docs/pt/finetune.md b/docs/pt/finetune.md new file mode 100644 index 00000000..dc7ec34d --- /dev/null +++ b/docs/pt/finetune.md @@ -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 \ + +lora@model.model.lora_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). diff --git a/docs/pt/index.md b/docs/pt/index.md new file mode 100644 index 00000000..a5cf7407 --- /dev/null +++ b/docs/pt/index.md @@ -0,0 +1,131 @@ +# Introdução + +
+ +Discord + + +QQ + + +Docker + +
+ +!!! 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.
+ 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. + +

+ +

+ +## 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`): + +
    +
  1. Extraia o arquivo compactado do projeto.
  2. +
  3. Prepare o ambiente conda: +
      +
    • Abra o install_env.bat para baixar e iniciar a instalação do miniconda.
    • +
    • Personalize o download (opcional): +
        +
      • **Site espelho:** Para usar um site espelho para downloads mais rápidos, defina USE_MIRROR=true no install_env.bat (padrão). Caso contrário, use USE_MIRROR=false.
      • +
      • **Ambiente compilado:** Para baixar a versão de prévia com o ambiente compilado, defina INSTALL_TYPE=preview. Para a versão estável sem ambiente compilado, use INSTALL_TYPE=stable.
      • +
      +
    • +
    +
  4. +
  5. Se você escolheu a versão de prévia com ambiente compilado (INSTALL_TYPE=preview), siga para a próxima etapa (opcional): +
      +
    1. Baixe o compilador LLVM usando os seguintes links: + +
    2. +
    3. Baixe e instale o pacote Microsoft Visual C++ Redistributable para resolver possíveis problemas de .dll ausentes. + +
    4. +
    5. 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. +
        +
      • Download do Visual Studio
      • +
      • Após instalar o Visual Studio Installer, baixe o Visual Studio Community 2022.
      • +
      • Clique no botão Modificar, conforme mostrado abaixo, encontre a opção Desenvolvimento para desktop com C++ e marque-a para download.
      • +

        + +

        +
      +
    6. +
    7. Instale o CUDA Toolkit 12
    8. +
    +
  6. +
  7. Clique duas vezes em start.bat para entrar na página da WebUI de configuração de inferência de treinamento do Fish-Speech. +
      +
    • (Opcional) Se desejar ir direto para a página de inferência, edite o arquivo API_FLAGS.txt no diretório raiz do projeto e modifique as três primeiras linhas da seguinte forma: +
      --infer
      +# --api
      +# --listen ...
      +...
      +
    • +
    • (Opcional) Se preferir iniciar o servidor da API, edite o arquivo API_FLAGS.txt no diretório raiz do projeto e modifique as três primeiras linhas da seguinte forma: +
      # --infer
      +--api
      +--listen ...
      +...
      +
    • +
    +
  8. +
  9. (Opcional) Clique duas vezes em run_cmd.bat para entrar na CLI do conda/python deste projeto.
  10. +
+ +## 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) diff --git a/docs/pt/inference.md b/docs/pt/inference.md new file mode 100644 index 00000000..0a4e7186 --- /dev/null +++ b/docs/pt/inference.md @@ -0,0 +1,153 @@ +# Inferência + +Suporte para inferência por linha de comando, API HTTP e interface web (WebUI). + +!!! note + O processo de raciocínio, em geral, consiste em várias partes: + + 1. Codificar cerca de 10 segundos de voz usando VQGAN. + 2. Inserir os tokens semânticos codificados e o texto correspondente no modelo de linguagem como um exemplo. + 3. Dado um novo trecho de texto, fazer com que o modelo gere os tokens semânticos correspondentes. + 4. Inserir os tokens semânticos gerados no VITS / VQGAN para decodificar e gerar a voz correspondente. + +## Inferência por Linha de Comando + +Baixe os modelos `vqgan` e `llama` necessários do nosso repositório Hugging Face. + +```bash +huggingface-cli download fishaudio/fish-speech-1.2-sft --local-dir checkpoints/fish-speech-1.2-sft +``` + +### 1. Gerar prompt a partir da voz: + +!!! note + Se quiser permitir que o modelo escolha aleatoriamente um timbre de voz, pule esta etapa. + +```bash +python tools/vqgan/inference.py \ + -i "paimon.wav" \ + --checkpoint-path "checkpoints/fish-speech-1.2-sft/firefly-gan-vq-fsq-4x1024-42hz-generator.pth" +``` + +Você deverá obter um arquivo `fake.npy`. + +### 2. Gerar tokens semânticos a partir do texto: + +```bash +python tools/llama/generate.py \ + --text "O texto que você deseja converter" \ + --prompt-text "Seu texto de referência" \ + --prompt-tokens "fake.npy" \ + --checkpoint-path "checkpoints/fish-speech-1.2-sft" \ + --num-samples 2 \ + --compile +``` + +Este comando criará um arquivo `codes_N` no diretório de trabalho, onde N é um número inteiro começando de 0. + +!!! note + Use `--compile` para fundir kernels CUDA para ter uma inferência mais rápida (~30 tokens/segundo -> ~500 tokens/segundo). + Mas, se não planeja usar a aceleração CUDA, comente o parâmetro `--compile`. + +!!! info + Para GPUs que não suportam bf16, pode ser necessário usar o parâmetro `--half`. + +### 3. Gerar vocais a partir de tokens semânticos: + +#### Decodificador VQGAN + +```bash +python tools/vqgan/inference.py \ + -i "codes_0.npy" \ + --checkpoint-path "checkpoints/fish-speech-1.2-sft/firefly-gan-vq-fsq-4x1024-42hz-generator.pth" +``` + +## Inferência por API HTTP + +Fornecemos uma API HTTP para inferência. O seguinte comando pode ser usado para iniciar o servidor: + +```bash +python -m tools.api \ + --listen 0.0.0.0:8080 \ + --llama-checkpoint-path "checkpoints/fish-speech-1.2-sft" \ + --decoder-checkpoint-path "checkpoints/fish-speech-1.2-sft/firefly-gan-vq-fsq-4x1024-42hz-generator.pth" \ + --decoder-config-name firefly_gan_vq +``` + +Para acelerar a inferência, adicione o parâmetro `--compile`. + +Depois disso, é possível visualizar e testar a API em http://127.0.0.1:8080/. + +Abaixo está um exemplo de envio de uma solicitação usando `tools/post_api.py`. + +```bash +python -m tools.post_api \ + --text "Texto a ser inserido" \ + --reference_audio "Caminho para o áudio de referência" \ + --reference_text "Conteúdo de texto do áudio de referência" \ + --streaming True +``` + +O comando acima indica a síntese do áudio desejada de acordo com as informações do áudio de referência e a retorna em modo de streaming. + +Caso selecione, de forma aleatória, o áudio de referência com base em `{SPEAKER}` e `{EMOTION}`, o configure de acordo com as seguintes etapas: + +### 1. Crie uma pasta `ref_data` no diretório raiz do projeto. + +### 2. Crie uma estrutura de diretórios semelhante à seguinte dentro da pasta `ref_data`. + +``` +. +├── SPEAKER1 +│ ├──EMOTION1 +│ │ ├── 21.15-26.44.lab +│ │ ├── 21.15-26.44.wav +│ │ ├── 27.51-29.98.lab +│ │ ├── 27.51-29.98.wav +│ │ ├── 30.1-32.71.lab +│ │ └── 30.1-32.71.flac +│ └──EMOTION2 +│ ├── 30.1-32.71.lab +│ └── 30.1-32.71.mp3 +└── SPEAKER2 + └─── EMOTION3 + ├── 30.1-32.71.lab + └── 30.1-32.71.mp3 +``` + +Ou seja, primeiro coloque as pastas `{SPEAKER}` em `ref_data`, depois coloque as pastas `{EMOTION}` em cada pasta de orador (speaker) e coloque qualquer número de `pares áudio-texto` em cada pasta de emoção. + +### 3. Digite o seguinte comando no ambiente virtual + +```bash +python tools/gen_ref.py + +``` + +### 4. Chame a API. + +```bash +python -m tools.post_api \ + --text "Texto a ser inserido" \ + --speaker "${SPEAKER1}" \ + --emotion "${EMOTION1}" \ + --streaming True +``` + +O exemplo acima é apenas para fins de teste. + +## Inferência por WebUI + +Para iniciar a WebUI de Inferência execute o seguinte comando: + +```bash +python -m tools.webui \ + --llama-checkpoint-path "checkpoints/fish-speech-1.2-sft" \ + --decoder-checkpoint-path "checkpoints/fish-speech-1.2-sft/firefly-gan-vq-fsq-4x1024-42hz-generator.pth" \ + --decoder-config-name firefly_gan_vq +``` + +!!! note + É possível usar variáveis de ambiente do Gradio, como `GRADIO_SHARE`, `GRADIO_SERVER_PORT`, `GRADIO_SERVER_NAME`, para configurar a WebUI. + +Divirta-se! diff --git a/docs/pt/samples.md b/docs/pt/samples.md new file mode 100644 index 00000000..75a1669d --- /dev/null +++ b/docs/pt/samples.md @@ -0,0 +1,223 @@ +# Amostras + +As amostras da v1.2 estão disponíveis em [Bilibili](https://www.bilibili.com/video/BV1wz421B71D/). + +As seguintes amostras são do modelo v1.1. + +## Frase em Chinês 1 +``` +人间灯火倒映湖中,她的渴望让静水泛起涟漪。若代价只是孤独,那就让这份愿望肆意流淌。 +流入她所注视的世间,也流入她如湖水般澄澈的目光。 +``` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
OradorÁudio de EntradaÁudio Sintetizado
Nahida (Genshin Impact)
Zhongli (Genshin Impact)
Furina (Genshin Impact)
Orador Aleatório 1 -
Orador Aleatório 2 -
+ + +## Frase em Chinês 2 +``` +你们这个是什么群啊,你们这是害人不浅啊你们这个群!谁是群主,出来!真的太过分了。你们搞这个群干什么? +我儿子每一科的成绩都不过那个平均分呐,他现在初二,你叫我儿子怎么办啊?他现在还不到高中啊? +你们害死我儿子了!快点出来你这个群主!再这样我去报警了啊!我跟你们说你们这一帮人啊,一天到晚啊, +搞这些什么游戏啊,动漫啊,会害死你们的,你们没有前途我跟你说。你们这九百多个人,好好学习不好吗? +一天到晚在上网。有什么意思啊?麻烦你重视一下你们的生活的目标啊?有一点学习目标行不行?一天到晚上网是不是人啊? +``` + + + + + + + + + + + + + + + + + + + + + +
OradorÁudio de EntradaÁudio Sintetizado
Nahida (Genshin Impact)
Orador Aleatório -
+ + +## Frase em Chinês 3 +``` +大家好,我是 Fish Audio 开发的开源文本转语音模型。经过十五万小时的数据训练, +我已经能够熟练掌握中文、日语和英语,我的语言处理能力接近人类水平,声音表现形式丰富多变。 +作为一个仅有亿级参数的模型,我相信社区成员能够在个人设备上轻松运行和微调,让我成为您的私人语音助手。 +``` + + + + + + + + + + + + + + + + + +
OradorÁudio de EntradaÁudio Sintetizado
Orador Aleatório -
+ +## Frase em Inglês 1 + +``` +In the realm of advanced technology, the evolution of artificial intelligence stands as a +monumental achievement. This dynamic field, constantly pushing the boundaries of what +machines can do, has seen rapid growth and innovation. From deciphering complex data +patterns to driving cars autonomously, AI's applications are vast and diverse. +``` + + + + + + + + + + + + + + + + + + + + + +
OradorÁudio de EntradaÁudio Sintetizado
Orador Aleatório 1 -
Orador Aleatório 2 -
+ +## Frase em Inglês 2 +``` +Hello everyone, I am an open-source text-to-speech model developed by +Fish Audio. After training with 150,000 hours of data, I have become proficient +in Chinese, Japanese, and English, and my language processing abilities +are close to human level. My voice is capable of a wide range of expressions. +As a model with only hundreds of millions of parameters, I believe community +members can easily run and fine-tune me on their personal devices, allowing +me to serve as your personal voice assistant. +``` + + + + + + + + + + + + + + + + +
OradorÁudio de EntradaÁudio Sintetizado
Orador Aleatório -
+ +## Frase em Japonês 1 + +``` +先進技術の領域において、人工知能の進化は画期的な成果として立っています。常に機械ができることの限界を +押し広げているこのダイナミックな分野は、急速な成長と革新を見せています。複雑なデータパターンの解読か +ら自動運転車の操縦まで、AIの応用は広範囲に及びます。 +``` + + + + + + + + + + + + + + + + + + + + + + +
OradorÁudio de EntradaÁudio Sintetizado
Orador Aleatório 1 -
Orador Aleatório 2 -
+ +## Frase em Japonês 2 +``` +皆さん、こんにちは。私はフィッシュオーディオによって開発されたオープンソースのテ +キストから音声への変換モデルです。15万時間のデータトレーニングを経て、 +中国語、日本語、英語を熟知しており、言語処理能力は人間に近いレベルです。 +声の表現も多彩で豊かです。数億のパラメータを持つこのモデルは、コミュニティ +のメンバーが個人のデバイスで簡単に実行し、微調整することができると +信じています。これにより、私を個人の音声アシスタントとして活用できます。 +``` + + + + + + + + + + + + + + + + +
OradorÁudio de EntradaÁudio Sintetizado
Orador Aleatório -
diff --git a/fish_speech/i18n/locale/pt_BR.json b/fish_speech/i18n/locale/pt_BR.json new file mode 100644 index 00000000..c3df431a --- /dev/null +++ b/fish_speech/i18n/locale/pt_BR.json @@ -0,0 +1,133 @@ +{ + "5 to 10 seconds of reference audio, useful for specifying speaker.": "5 a 10 segundos de áudio de referência, útil para especificar o orador.", + "A text-to-speech model based on VQ-GAN and Llama developed by [Fish Audio](https://fish.audio).": "Um modelo de texto para fala baseado em VQ-GAN e Llama desenvolvido por [Fish Audio](https://fish.audio).", + "Accumulate Gradient Batches": "Acumular Lotes de Gradiente", + "Add to Processing Area": "Adicionar à Área de Processamento", + "Added path successfully!": "Caminho adicionado com sucesso!", + "Advanced Config": "Configuração Avançada", + "Base LLAMA Model": "Modelo LLAMA Base", + "Batch Inference": "Inferência em Lote", + "Batch Size": "Tamanho do Lote", + "Changing with the Model Path": "Alterando com o Caminho do Modelo", + + "Compile Model": "Compilar Modelo", + "Compile the model can significantly reduce the inference time, but will increase cold start time": "Compilar o modelo pode reduzir significativamente o tempo de inferência, mas aumentará a latência inicial", + "Copy": "Copiar", + "Data Preprocessing": "Pré-processamento de Dados", + "Data Preprocessing Path": "Caminho de Pré-processamento de Dados", + "Data Source": "Fonte de Dados", + "Decoder Model Config": "Configuração do Modelo Decodificador", + "Decoder Model Path": "Caminho do Modelo Decodificador", + "Disabled": "Desativado", + "Enable Initial Prompt": "Habilitar Prompt Inicial", + "Enable Reference Audio": "Habilitar Áudio de Referência", + "English": "Inglês", + "Japanese": "Japonês", + "Chinese": "Chinês", + "Portuguese": "Português", + "Spanish": "Espanhol", + "Error Message": "Mensagem de Erro", + "Faster Whisper, Up to 5g GPU memory usage": "Faster Whisper (Usa até 5 GB de vRAM)", + "File Preprocessing": "Pré-processamento de Arquivos", + "Generate": "Gerar", + "Generated Audio": "Áudio Gerado", + "If there is no corresponding text for the audio, apply ASR for assistance, support .txt or .lab format": "Se não houver texto correspondente ao áudio, utilize o ASR para assistência (formatos .txt ou .lab)", + "Infer interface is closed": "A interface de inferência foi fechada", + "Inference Configuration": "Configuração de Inferência", + "Inference Server Configuration": "Configuração do Servidor de Inferência", + "Inference Server Error": "Erro do Servidor de Inferência", + "Inferring interface is launched at {}": "A interface de inferência foi iniciada em {}", + "Initial Learning Rate": "Taxa de Aprendizagem Inicial", + "Initial Prompt": "Prompt Inicial", + "Initial prompt can provide contextual or vocabulary-specific guidance to the model.": "O prompt inicial pode fornecer orientação contextual ou específica de vocabulário para o modelo.", + "Input Audio & Source Path for Transcription": "Entrada de Áudio/Caminho de Origem para Transcrição", + "Input Text": "Texto de Entrada", + "Invalid path: {}": "Caminho inválido: {}", + "It is recommended to use CUDA, if you have low configuration, use CPU": "Para GPUs Nvidia é recomendado usar CUDA. Se não tiver uma GPU Nvidia, use CPU", + "Iterative Prompt Length, 0 means off": "Comprimento do Prompt Iterativo (0 = desativado)", + "LLAMA Configuration": "Configuração do LLAMA", + "LLAMA Model Config": "Configuração do Modelo LLAMA", + "LLAMA Model Path": "Caminho do Modelo LLAMA", + "Labeling Device": "Dispositivo de Rotulagem", + "LoRA Model to be merged": "Modelo LoRA para mesclagem", + "Maximum Length per Sample": "Comprimento Máximo por Amostra", + "Maximum Training Steps": "Etapas Máximas de Treinamento", + "Maximum tokens per batch, 0 means no limit": "Número máximo de tokens por lote, 0 significa sem limite", + "Merge": "Mesclar", + "Merge LoRA": "Mesclar LoRA", + "Merge successfully": "Mesclado com sucesso", + "Model Output Path": "Caminho de Saída do Modelo", + "Model Quantization": "Quantização do Modelo", + "Model Size": "Tamanho do Modelo", + "Move": "Mover", + "Move files successfully": "Arquivos movidos com sucesso", + "No audio generated, please check the input text.": "Nenhum áudio gerado, verifique o texto de entrada.", + "No selected options": "Nenhuma opção selecionada", + "Normalization Result Preview (Currently Only Chinese)": "Pré-visualização do Resultado da Normalização (Atualmente Apenas Chinês)", + "Number of Workers": "Número de Processos", + "Open Inference Server": "Abrir Servidor de Inferência", + "Open Labeler WebUI": "Abrir WebUI de Rotulagem", + "Open Tensorboard": "Abrir Tensorboard", + "Opened labeler in browser": "WebUI de rotulagem aberta no navegador", + "Optional Label Language": "Idioma do Rótulo (Opcional)", + "Optional online ver": "Versão online (opcional)", + "Output Path": "Caminho de Saída", + "Path error, please check the model file exists in the corresponding path": "Erro de caminho, verifique se o arquivo do modelo existe no caminho correspondente", + "Post-quantification Precision": "Precisão Pós-quantização", + "Precision": "Precisão", + "Probability of applying Speaker Condition": "Probabilidade de Aplicar Condição de Orador", + "Put your text here.": "Insira seu texto aqui.", + "Quantify": "Quantizar", + "Quantify successfully": "Quantizado com sucesso", + "Realtime Transform Text": "Transformar Texto em Tempo Real", + "Reference Audio": "Áudio de Referência", + "Reference Text": "Texto de Referência", + "warning": "Aviso", + "Pre-processing begins...": "O pré-processamento começou!", + "Related code are released under BSD-3-Clause License, and weights are released under CC BY-NC-SA 4.0 License.": "O código relacionado é licenciado sob a Licença BSD-3-Clause, e os pesos sob a Licença CC BY-NC-SA 4.0.", + "Remove Selected Data": "Remover Dados Selecionados", + "Removed path successfully!": "Caminho removido com sucesso!", + "Repetition Penalty": "Penalidade de Repetição", + "Save model every n steps": "Salvar modelo a cada n etapas", + "Select LLAMA ckpt": "Selecionar .ckpt do LLAMA", + "Select source file processing method": "Escolha como processar o arquivo de origem", + "Select the model to be trained (Depending on the Tab page you are on)": "Selecione o modelo para o treinamento (dependendo da aba em que você está)", + "Selected: {}": "Selecionado: {}", + "Speaker is identified by the folder name": "O orador é identificado pelo nome da pasta", + "Start Training": "Iniciar Treinamento", + "Streaming Audio": "Áudio em Streaming", + "Streaming Generate": "Geração em Streaming", + "Tensorboard Host": "Host do Tensorboard", + "Tensorboard Log Path": "Caminho de Log do Tensorboard", + "Tensorboard Port": "Porta do Tensorboard", + "Tensorboard interface is closed": "A interface do Tensorboard está fechada", + "Tensorboard interface is launched at {}": "A interface do Tensorboard foi iniciada em {}", + "Text Normalization": "Normalização de Texto", + "Text is too long, please keep it under {} characters.": "O texto é muito longo. Mantenha-o com menos de {} caracteres.", + "The lower the quantitative precision, the more the effectiveness may decrease, but the greater the efficiency will increase": "Quanto menor a precisão quantitativa, mais a eficácia pode diminuir, mas maior será o aumento da eficiência", + "The path of the input folder on the left or the filelist. Whether checked or not, it will be used for subsequent training in this list.": "O caminho da pasta de entrada à esquerda ou a lista de arquivos. Independentemente de estar marcada ou não, ela será utilizada para o treinamento subsequente nesta lista.", + "Training Configuration": "Configuração de Treinamento", + "Training Error": "Erro de Treinamento", + "Training stopped": "Treinamento interrompido!", + "Type the path or select from the dropdown": "Digite o caminho ou selecione no menu suspenso", + "Use LoRA": "Usar LoRA", + "Use LoRA can save GPU memory, but may reduce the quality of the model": "O uso de LoRAs pode economizar memória da GPU, mas também pode reduzir a qualidade", + "Use filelist": "Usar lista de arquivos", + "VQGAN Configuration": "Configuração do VQGAN", + "View the status of the preprocessing folder (use the slider to control the depth of the tree)": "Visualizar o status da pasta de pré-processamento (use o controle deslizante para controlar a profundidade da árvore)", + "We are not responsible for any misuse of the model, please consider your local laws and regulations before using it.": "Não nos responsabilizamos por qualquer uso indevido do modelo. Por favor, considere as leis e regulamentações locais antes de usá-lo.", + "WebUI Host": "Host da WebUI", + "WebUI Port": "Porta da WebUI", + "Whisper Model": "Modelo Whisper", + "You can find the source code [here](https://github.com/fishaudio/fish-speech) and models [here](https://huggingface.co/fishaudio/fish-speech-1).": "Você pode encontrar o código fonte [aqui](https://github.com/fishaudio/fish-speech) e os modelos [aqui](https://huggingface.co/fishaudio/fish-speech-1).", + "auto": "automático", + "bf16-true is recommended for 30+ series GPU, 16-mixed is recommended for 10+ series GPU": "bf16-true é recomendado para GPUs da série 30+, 16-mixed é recomendado para GPUs da série 10+", + "latest": "mais recente", + "new": "novo", + "This audio introduces the basic concepts and applications of artificial intelligence and machine learning.": "Este áudio introduz os conceitos básicos e aplicações de inteligência artificial e aprendizado de máquina.", + "You don't need to train this model!": "Não é necessário treinar este modelo!", + "Yes": "Sim", + "No": "Não", + "version:": "versão:", + "author:": "autor:" +} diff --git a/mkdocs.yml b/mkdocs.yml index a4553c4f..01fee03c 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -74,6 +74,9 @@ plugins: - locale: ja name: 日本語 build: true + - locale: pt + name: Português (Brasil) + build: true markdown_extensions: - pymdownx.highlight: