Introdução geral
O EmotiVoice é um mecanismo de conversão de texto em fala (TTS) com várias vozes e controle de dicas emocionais desenvolvido pela NetEaseYoudao. Esse mecanismo TTS de código aberto é compatível com inglês e chinês, tem mais de 2.000 vozes diferentes e recursos de síntese de emoções para criar vozes com várias emoções, como alegria, excitação, tristeza e raiva. Ele oferece uma interface WEB fácil de usar e resultados de geração em lote da interface de script.
Hospedado no endereço de demonstração do Replicate
Lista de funções
Fornecer interface WEB e interface de processamento em lote de scripts
Suporte para síntese de emoções
Várias opções de som
Suporte à síntese em chinês e inglês
Usando a Ajuda
Confira o repositório do GitHub para obter instruções de instalação e uso
Executando uma imagem do Docker para experimentar o EmotiVoice
Consulte a página Wiki para fazer download de informações adicionais, como modelos pré-treinados
Participe do grupo WeChat para trocar feedback
Em resposta à demanda da comunidade, temos o prazer de lançar oFunção de clonagem de some fornece dois exemplos de tutoriais!
Observações.
- Esse recurso requer pelo menos um Gráficos de GPU da Nvidia .
- som alvoOs dados são essenciais! Os requisitos detalhados serão fornecidos na próxima seção.
- Atualmente, esse recurso é compatível apenas com chinês e inglês, o que significa que você pode treinar com dados em chinês ou em inglês paraObtenha um modelo de timbre que fale dois idiomas.
- Embora o EmotiVoice ofereça suporte ao controle emocional, os dados de treinamento também precisam ser emocionais se você quiser que sua voz transmita emoção.
- Após o treinamento usando apenas seus dados, o EmotiVoice doO som original será alterado. Isso significa que o novo modelo será totalmente personalizado para seus dados. Se você quiser usar as mais de 2000 vozes originais do EmotiVoice, é recomendável usar o modelo original pré-treinado.
Requisitos detalhados para dados de treinamento
- Os dados de áudio devem ser de alta qualidade e precisam ser claros e sem distorção para a voz de uma única pessoa. A duração ou o número de frases não é obrigatório por enquanto, algumas frases são suficientes, mas recomenda-se mais de 100 frases.
- O texto correspondente a cada áudio deve corresponder estritamente ao conteúdo da fala. Antes do treinamento, o texto bruto é convertido em fonemas usando o G2P. É necessário prestar atenção às pausas (sp*) e os resultados da conversão polifônica, eles têm um impacto significativo na qualidade do treinamento.
- Se quiser que sua voz transmita emoção, os dados de treinamento também precisam ser emocionais. Além disso, o conteúdo da **tag 'prompt'** deve ser modificado para cada áudio. O conteúdo do prompt pode incluir qualquer forma de descrição textual de emoção, velocidade de fala e estilo de fala.
- Em seguida, você obtém um arquivo chamado
diretório de dados
que contém dois subdiretórios, otrem
responder cantandoválido
. Cada subdiretório tem umdatalist.jsonl
e cada linha é formatada:{"key": "LJ002-0020", "wav_path": "data/LJspeech/wavs/LJ002-0020.wav", "speaker": "LJ", "text": ["", "[IH0]", "[N]", "engsp1", "[EY0 ]", "[T]", "[IY1]", "[N]", "engsp1", "[TH]", "[ER1]", "[T]", "[IY1]", "[N]", "." , ""], "original_text": "In 1813", "prompt": "common"}
.
Distribuição das etapas de treinamento.
Para chinês, consulte Receita de DataBakerConsulte a versão em inglês:Receita de LJSpeech. A seguir, um resumo:
- Prepare o ambiente de treinamento - ele só precisa ser configurado uma vez.
# criar ambiente conda conda create -n EmotiVoice python=3.8 -y conda activate EmotiVoice # e, em seguida, execute. pip install EmotiVoice[train] # ou git clone https://github.com/netease-youdao/EmotiVoice pip install -e . [train]
- consulta Requisitos detalhados para dados de treinamento Realizar a preparação de dados, exemplos de referência recomendadosReceita de DataBaker responder cantando Receita de LJSpeechmétodos e scripts no
- Em seguida, execute o seguinte comando para criar um diretório para treinamento:
python prepare_for_training.py --data_dir --exp_dir
. Substituiçãopara o caminho real do diretório de dados preparado.
é o caminho desejado para o diretório experimental.
- Pode ser modificado dependendo da configuração e dos dados do servidor
/config/config.py
. Após concluir as modificações, inicie o processo de treinamento executando o seguinte comandotorchrun --nproc_per_node=1 --master_port 8018 train_am_vocoder_joint.py --config_folder /config --load_pretrained_ modelo True
. (Esse comando iniciará o processo de treinamento usando a pasta de configuração especificada e carregará todos os modelos pré-treinados especificados). Esse método está atualmente disponível para Linux; o Windows pode apresentar problemas! - Depois de concluir algumas das etapas de treinamento, selecione um ponto de verificação e execute o seguinte comando para confirmar se os resultados estão de acordo com o esperado:
python inference_am_vocoder_exp.py --config_folder exp/DataBaker/config --checkpoint g_00010000 --test_file data/inference/text
. Não se esqueça de modificardados/inferência/texto
O conteúdo do campo do alto-falante no campo Se você estiver satisfeito com o resultado, fique à vontade para usá-lo! Uma versão modificada da página de demonstração é fornecida: ademo_page_databaker.py
para experimentar o efeito do tom após a clonagem com o DataBaker. - Se os resultados não forem satisfatórios, você poderá continuar o treinamento ou verificar os dados e o ambiente. Obviamente, sinta-se à vontade para discutir na comunidade ou enviar um problema!
Informações de referência de tempo de execução.
Fornecemos as seguintes informações de tempo de execução e de configuração de hardware para sua referência:
- Versões do pacote Pip: Python 3.8.18, torch 1.13.1, cuda 11.7
- Modelo da placa de GPU: NVIDIA GeForce RTX 3090, NVIDIA A40
- Treinamento demorado: leva cerca de 1 a 2 horas para treinar 10.000 passos.
Ele pode até ser treinado sem uma placa de vídeo GPU, usando apenas a CPU. Aguarde as boas notícias!