Introdução geral
O VoiceCraft é uma ferramenta de edição de fala de código aberto e de síntese de fala de amostra zero baseada no modelo de linguagem Neural Codec. Ele emprega um método inovador de geração de sequência codificada que permite operações de inserção, exclusão e substituição em sequências de fala existentes para gerar uma fala editada natural e coerente. Além disso, o VoiceCraft oferece suporte à síntese de fala com amostra zero, eliminando a necessidade de ajuste fino adicional para alto-falantes específicos. A ferramenta apresenta bom desempenho em várias tarefas de processamento de fala, superando significativamente os atuais modelos SOTA do setor.
Lista de funções
- Edição de voz: suporta operações de inserção, exclusão e substituição para gerar uma voz de edição natural e suave.
- Síntese de fala de amostra zero: gera a voz do falante-alvo sem ajuste fino adicional.
- Com base na arquitetura do Transformer: técnicas de mascaramento causal e empilhamento atrasado são usadas para melhorar a qualidade da geração.
- Modelos de código aberto: gratuitos para download e uso no Huggingface e no AI Express.
- UI interativa: a integração com a biblioteca Gradio permite que os usuários controlem e testem modelos de forma intuitiva.
Usando a Ajuda
Processo de instalação
- Clone o repositório do projeto em um diretório local:
git clone git@github.com:jasonppy/VoiceCraft.git cd VoiceCraft
- Certifique-se de que o Docker e o NVIDIA Container Toolkit estejam instalados em seu sistema (os sistemas Windows têm drivers integrados):
sudo apt-get install -y nvidia-container-toolkit-base
- Crie a imagem do Docker:
compilação do docker --tag "voicecraft" .
- Inicie um contêiner existente ou crie um novo contêiner e passe todas as GPUs:
. /start-jupyter.sh # Linux start-jupyter.bat # Windows
- Abra um navegador e acesse a URL exibida no terminal:
registros do docker jupyter
- Opcional: acesso ao interior do contêiner a partir de outro terminal:
doca executar -it jupyter /bin/bash exportação USER=(seu_nome_de_usuário_linux_usado_acima) exportação HOME=/home/$USER sudo apt-get update
- Verifique se a placa de vídeo está visível no contêiner:
nvidia-smi
- Abrir em seu navegador
inferência_tts.ipynb
A célula é executada passo a passo.
Configurações ambientais
- Criar e ativar um ambiente virtual:
conda create -n voicecraft python=3.9.16 conda activate voicecraft
- Instale as dependências necessárias:
pip install -e git+https://github.com/facebookresearch/audiocraft.git@c5157b5bf14bf83449c17ea1eeb66c19fb4bc7f0#egg=audiocraft pip install xformers==0.0.22 pip install torchaudio==2.0.2 torch==2.0.1 apt-get install ffmpeg apt-get install espeak-ng pip install tensorboard==2.16.2 pip install phonemizer==3.2.1 pip install datasets==2.16.0 pip install torchmetrics==0.11.1 pip install huggingface_hub==0.22.2 conda install -c conda-forge montreal-forced-aligner=2.2.17 openfst=1.8.2 kaldi=5.5.1068 modelo mfa download dictionary english_us_arpa modelo mfa download acoustic english_us_arpa conda install -n voicecraft ipykernel --no-deps --force-reinstall
Exemplo de raciocínio
- Raciocínio de edição de voz:
pythonemize_encodec_encode_hf.py --dataset_size xs --download_to path/to/store_huggingface_downloads --save_dir path/to/store_ extracted_codes_and_phonemes --encodec_model_path path/to/encodec_model --mega_batch_size 120 --batch_size 32 --max_len 30000
- Inferência de síntese de fala com amostra zero:
python tts_demo.py -h
Gradio
- Execute-o no Colab:
Aberto em Colab
- Executado localmente:
apt-get install -y espeak espeak-data libespeak1 libespeak-dev apt-get install -y festival* apt-get install -y build-essential apt-get install -y flac libasound2-dev libsndfile1-dev vorbis-tools apt-get install -y libxml2-dev libxslt-dev zlib1g-dev pip install -r gradio_requirements.txt python gradio_app.py
problemas comuns
- Como melhorar a naturalidade da fala gerada? Certifique-se de que o conteúdo do texto de entrada seja consistente com o estilo e o contexto da amostra de fala de destino.
- O que devo fazer se o arquivo de voz gerado estiver com ruído? Tente usar amostras de fala de maior qualidade ou ajustar os parâmetros do modelo.