Este é um repositório para o nosso artigo ,? Nix-TTS (aceito no IEEE SLT 2022). Lançamos os modelos pré -ridicularizados, uma demonstração interativa e amostras de áudio abaixo.
[[? Link de papel] (em breve!)] [? Demo interativa] [? Amostras de áudio]
Resumo Várias soluções para TTs leves mostraram resultados promissores. Ainda assim, eles dependem de um design artesanal que atinge o tamanho que não é o ideal ou usa uma pesquisa de arquitetura neural, mas geralmente sofre custos de treinamento. Apresentamos o NIX-TTS, um TTS leve obtido por destilação de conhecimento para uma professora de alta qualidade, mas de grande porte, não autorregressiva e de ponta a ponta (sem vocoder) TTS. Especificamente, oferecemos destilação em termos de módulo, permitindo uma destilação flexível e independente para o codificador e o módulo decodificador. Os NIX-TTs resultantes herdaram as propriedades vantajosas de serem não autorregressivas e de ponta a ponta do professor, mas significativamente menores em tamanho, com apenas 5,23 milhões de parâmetros ou até 89,34% de redução do modelo do professor; Ele também atinge mais de 3,04 $ Times $ e 8,36 $ Times $ Speedup de Inferência na CPU Intel-I7 e Raspberry Pi 3b, respectivamente, e ainda mantém uma naturalidade e inteligibilidade de voz justas em comparação com o modelo de professor.
Clone o repositório nix-tts e mude para seu diretório
git clone https://github.com/rendchevi/nix-tts.git
cd nix-ttsInstalar as dependências
python >= 3.8 pip install -r requirements.txt sudo apt-get install espeakOu siga a instrução oficial, caso não funcionasse.
Faça o download do seu modelo pré-treinado escolhido aqui .
| Modelo | Num. de params | Mais rápido que em tempo real * (CPU Intel-I7) | Mais rápido que em tempo real * (Raspi Modelo 3b) |
|---|---|---|---|
| Nix-tts (onnx) | 5,23 m | 11.9x | 0,50x |
| Nix-tts com duração estocástica (ONNX) | 6.03 m | 10.8x | 0,50x |
* Aqui calculamos o quanto o modelo é mais rápido que o tempo real do fator de tempo real (RTF). A tabela completa de todos os modelos acelerando é detalhada no papel.
E executar o Nix-TTS é tão fácil quanto:
from nix . models . TTS import NixTTSInference
from IPython . display import Audio
# Initiate Nix-TTS
nix = NixTTSInference ( model_dir = "<path_to_the_downloaded_model>" )
# Tokenize input text
c , c_length , phoneme = nix . tokenize ( "Born to multiply, born to gaze into night skies." )
# Convert text to raw speech
xw = nix . vocalize ( c , c_length )
# Listen to the generated speech
Audio ( xw [ 0 , 0 ], rate = 22050 )