<Inglês | 简体中文 | 繁體中文>
Este repositório oferece uma implementação C ++ da Melotts, que é uma biblioteca de alta qualidade e falsificação de texto em fala (TTS) lançada pelo Myshell.ai que suporta inglês, chinês (misturado ao inglês) e vários outros idiomas. Essa implementação é totalmente integrada ao OpenVino, suportando implantação perfeita nos dispositivos CPU, GPU e NPU. Atualmente, este repositório suporta apenas o chinês misturado ao inglês. O suporte ao modelo em inglês está chegando a seguir.
O design do pipeline é amplamente consistente com a versão ORIGNAL Pytorch, compreendendo três modelos (Bert, TTS e DeepFilternet), com o DeepFilternet adicionado como um componente adicional.

bert-base-multilingual-uncased para chinês e bert-base-uncased para inglêsA tabela abaixo descreve os dispositivos suportados para cada modelo:
| Nome do modelo | Suporte da CPU | Suporte à GPU | Suporte da NPU |
|---|---|---|---|
| Bert (pré -processamento) | ✅ | ✅ | ✅ |
| TTS (inferência) | ✅ | ✅ | |
| DeepFilternet (pós-processamento) | ✅ | ✅ | ✅ |
Para baixar o pacote OpenVino C ++ para Windows, consulte o seguinte link: Instale o OpenVino for Windows. Para o OpenVino 2024.5 no Windows, você pode executar a linha de comando no prompt de comando (CMD).
curl -O https://storage.openvinotoolkit.org/repositories/openvino/packages/2024.5/windows/w_openvino_toolkit_windows_2024.5.0.17288.7975fa5da0c_x86_64.zip --ssl-no-revoke
tar -xvf w_openvino_toolkit_windows_2024.5.0.17288.7975fa5da0c_x86_64.zip
Para o Linux, você pode baixar o pacote C ++ deste link: Instale o OpenVino for Linux. Para o OpenVino 2024.5 no Linux, basta fazer o download de https://storage.openvinotoolkit.org/repositories/openvino/packages/2024.5/linux e descompacte o pacote.
Para versões adicionais e mais informações sobre o OpenVino, visite a página Geral do Kit Openvino de Ferramentas Openvino: OpenVino Toolkit.
git lfs install
git clone https://github.com/apinge/MeloTTS.cpp.git
<OpenVINO_DIR>setupvars.bat
cd MeloTTS.cpp
cmake -S . -B build && cmake --build build --config Release
.buildReleasemeloTTS_ov.exe --model_dir ov_models --input_file inputs.txt --output_file audio.wav
source <OpenVINO_DIR>/setupvars.sh
cd MeloTTS.cpp
cmake -S . -B build && cmake --build build --config Release
./build/meloTTS_ov --model_dir ov_models --input_file inputs.txt --output_file audio.wav
Atualmente, a funcionalidade DeepFilternet é suportada apenas no Windows e é usada para filtrar o ruído de modelos quantizados INT8. Por padrão, ele está ativado, mas você pode habilitá -lo ou desativá -lo durante o estágio CMake usando a opção -DUSE_DEEPFILTERNET .
Por exemplo, para desativar o recurso, você pode usar a seguinte linha durante o processo de geração de cmake:
cmake -S . -B build -DUSE_DEEPFILTERNET=OFF
Para mais informações, consulte DeepFilternet.cpp.
Você pode usar run_tts.bat ou run_tts.sh como scripts de amostra para executar os modelos. Abaixo estão os significados de todos os argumentos que você pode usar com estes scripts:
--model_dir : Especifica a pasta que contém os arquivos do modelo, arquivos de dicionário e arquivos de recursos de terceiros, que é a pasta ov_models dentro do repositório. Pode ser necessário ajustar o caminho relativo com base no seu diretório de trabalho atual.--tts_device : Especifica o dispositivo OpenVino a ser usado para o modelo TTS. Os dispositivos suportados incluem CPU e GPU (padrão: CPU).--bert_device : especifica o dispositivo Openvino a ser usado para o modelo BERT. Os dispositivos suportados incluem CPU, GPU e NPU (padrão: CPU).--nf_device : Especifica o dispositivo Openvino a ser usado para o modelo DeepFilternet. Os dispositivos suportados incluem CPU, GPU e NPU (padrão: CPU).--input_file : especifica o arquivo de texto de entrada a ser processado. Verifique se o texto está no formato UTF-8 .--output_file : especifica o arquivo de áudio de saída *.WAV a ser gerado.--speed : especifica a velocidade do áudio de saída. O padrão é 1.0.--quantize : indica se deve usar um modelo quantizado INT8. O padrão é falso, o que significa que um modelo FP16 é usado por padrão.--disable_bert : indica se deve desativar a inferência do modelo BERT. O padrão é falso.--disable_nf : indica se deve desativar a inferência do modelo DeepFilternet (padrão: false).--language : especifica o idioma para TTS. O idioma padrão é chinês ( ZH ). Os modelos Bert e DeepFilternet na NPU suportam o dispositivo de inferência, utilizando as NPUs integradas no lago Meteor e no lago lunar.
Abaixo estão os métodos para ativar esse recurso e os detalhes de uso:
-DUSE_BERT_NPU=ON durante a geração CMake. Por exemplo: cmake -DUSE_BERT_NPU=ON -B build -S .--bert_device NPU para o modelo BERT e --nf_device NPU para o modelo DeepFilternet, respectivamente. Por exemplo: buildReleasemeloTTS_ov.exe --bert_device NPU --nf_device NPU --model_dir ov_models --input_file inputs.txt --output_file audio.wav Se você estiver usando um notebook para PC AI com Windows, os drivers GPU e NPU são normalmente pré-instalados. No entanto, os usuários do Linux ou os usuários do Windows que preferem atualizar para os drivers mais recentes devem seguir as diretrizes abaixo:
Para GPU : Se estiver usando a GPU, consulte as configurações do Intel® Processor Graphics (GPU) com o OpenVino ™ para instalar o driver GPU.
Para NPU : Se estiver usando a NPU, consulte o dispositivo NPU para garantir que o driver da NPU esteja instalado corretamente.
Observe que todos os drivers diferem entre o Windows e o Linux, portanto, siga as instruções para o seu sistema operacional específico.
Aqui estão alguns recursos e melhorias planejadas para lançamentos futuros:
Adicione suporte TTS em inglês :
Melhorando a qualidade nos modelos TTS quantizados :
A versão Python deste repositório (Melotts integrados ao OpenVino) é fornecida em Melotts-Ov. A versão Python inclui métodos para converter o modelo em OpenVino IR.
Este repositório inclui código de terceiros e bibliotecas para segmentação de palavras chinesas e processamento de pinyin.