Este es un repositorio de nuestro documento , ? NIX-TTS (aceptado para IEEE SLT 2022). Lanzamos los modelos previos a la aparición, una demostración interactiva y muestras de audio a continuación.
[[? Enlace en papel] (¡Próximamente!)] [? Demostración interactiva] [? Muestras de audio]
Resumen Varias soluciones para TTS livianos han mostrado resultados prometedores. Aún así, confían en un diseño hecho a mano que alcanza el tamaño no óptimo o usa una búsqueda de arquitectura neural, pero a menudo sufren costos de capacitación. Presentamos NIX-TTS, un TTS ligero logrado a través de la destilación de conocimiento a un modelo de maestro TTS de alta calidad pero de gran tamaño, no autorregresivo y de extremo a extremo (sin vocoder). Específicamente, ofrecemos destilación en forma de módulo, que permite la destilación flexible e independiente al módulo de codificador y decodificador. Los NIX-TTS resultantes heredaron las propiedades ventajosas de no ser autorregreses y de extremo a extremo del maestro, pero significativamente menor en tamaño, con solo 5.23m parámetros o una reducción de hasta 89.34% del modelo del maestro; También logra más de 3.04 $ veces $ y 8.36 $ veces $ aceleración de inferencia en CPU Intel-I7 y Raspberry Pi 3B respectivamente y aún conserva una naturalidad e inteligibilidad de voz justa en comparación con el modelo de maestro.
Clon el repositorio nix-tts y muévase a su directorio
git clone https://github.com/rendchevi/nix-tts.git
cd nix-ttsInstalar las dependencias
python >= 3.8 pip install -r requirements.txt sudo apt-get install espeakO siga la instrucción oficial en caso de que no funcionara.
Descargue su modelo pre-capacitado elegido aquí .
| Modelo | Numer de parámetros | Más rápido que en tiempo real * (CPU Intel-i7) | Más rápido que en tiempo real * (Raspi Model 3B) |
|---|---|---|---|
| NIX-TTS (ONNX) | 5.23 m | 11.9x | 0.50x |
| NIX-TTS con duración estocástica (ONNX) | 6.03 m | 10.8x | 0.50x |
* Aquí calculamos cuánto se ejecuta el modelo más rápido que el tiempo real como el inverso del factor en tiempo real (RTF). La tabla completa de todos los modelos se detalla en el papel.
Y ejecutar Nix-TTS es tan fácil como:
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 )