Это репозиторий для нашей статьи ,? NIX-TTS (принято в IEEE SLT 2022). Мы выпустили предварительную модели, интерактивную демонстрацию и образцы звука ниже.
[? Бумажная ссылка] (скоро!)] [? Интерактивная демонстрация] [? Аудио Образцы]
Аннотация Несколько решений для легких ТТ показали многообещающие результаты. Тем не менее, они либо полагаются на дизайн, созданный вручную, который достигает не оптимального размера, либо использует поиск нейронной архитектуры, но часто страдает от затрат на обучение. Мы представляем NIX-TTS, легкие TTS, достигнутые посредством дистилляции знаний в высококачественную, но большую, неавторегрессивную и сквозной (без вокалу) модель TTS. В частности, мы предлагаем модульную дистилляцию, обеспечивая гибкую и независимую дистилляцию в модуль кодера и декодера. Полученный NIX-TTS унаследовал выгодные свойства неавторегрессии и сквозного от учителя, но в то же время значительно меньше по размеру, с параметрами только на 5,23 м или до 89,34% модели учителя; Он также достигает более 3,04 $ times $ и 8,36 $ times $ ускорение на процессоре Intel-I7 и Raspberry Pi 3B соответственно и все еще сохраняет справедливое голос естественность и разборчивость по сравнению с моделью учителя.
Клонировать репозиторий nix-tts и перейти к его каталогу
git clone https://github.com/rendchevi/nix-tts.git
cd nix-ttsУстановите зависимости
python >= 3.8 pip install -r requirements.txt sudo apt-get install espeakИли следовать официальной инструкции в случае, если это не сработает.
Загрузите выбранную предварительно обученную модель здесь .
| Модель | Численность параметров | Быстрее, чем в режиме реального времени * (CPU Intel-I7) | Быстрее, чем в реальном времени * (Raspi Model 3B) |
|---|---|---|---|
| Nix-tts (onnx) | 5,23 м | 11,9x | 0,50x |
| Nix-tts с стохастической продолжительностью (ONNX) | 6,03 м | 10,8x | 0,50x |
* Здесь мы рассчитываем, насколько модель работает быстрее, чем в режиме реального времени как обратный фактор в реальном времени (RTF). Полная таблица всех моделей ускорения подробно описана на бумаге.
И запуск nix-tts так же просто, как:
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 )