Проверьте файл Changelog, чтобы иметь глобальный обзор последних изменений! ?
├── custom_architectures
│ ├── tacotron2_arch.py : Tacotron-2 synthesizer architecture
│ └── waveglow_arch.py : WaveGlow vocoder architecture
├── custom_layers
├── custom_train_objects
│ ├── losses
│ │ └── tacotron_loss.py : custom Tacotron2 loss
├── example_outputs : some pre-computed audios (cf the ` text_to_speech ` notebook)
├── loggers
├── models
│ ├── encoder : the ` AudioEncoder ` is used as speaker encoder for the SV2TTS model *
│ ├── tts
│ │ ├── sv2tts_tacotron2.py : SV2TTS main class
│ │ ├── tacotron2.py : Tacotron2 main class
│ │ ├── vocoder.py : main functions for complete inference
│ │ └── waveglow.py : WaveGlow main class (both pytorch and tensorflow)
├── pretrained_models
├── unitests
├── utils
├── example_fine_tuning.ipynb
├── example_sv2tts.ipynb
├── example_tacotron2.ipynb
├── example_waveglow.ipynb
└── text_to_speech.ipynbПроверьте основной проект для получения дополнительной информации о невыращенных модулях / структуре / основных классах.
* Проверьте проект Encoders для получения дополнительной информации о models/encoder
models.tts ):| Особенность | Фуркция / класс | Описание |
|---|---|---|
| Текст в речь | tts | Выполните TTS в тексте, который вы хотите с желаемой моделью, которую вы хотите |
| транслировать | tts_stream | Выполните TTS в тексте, который вы вводят |
| TTS LOGGER | loggers.TTSLogger | преобразует журналы logging для голосования и воспроизводить его |
Записная книжка text_to_speech предоставляет конкретную демонстрацию функции tts
Доступные архитектуры:
Synthesizer :SV2TTS )Vocoder :Модели SV2TTS точно настраиваются из предварительно предварительно проведенных моделей Tacotron2, используя процедуру обучения частичной передачи (для деталей см. Ниже), которая значительно ускоряет обучение.
| Имя | Язык | Набор данных | Синтезатор | Вокадер | Динамик энкодер | Тренер | Вес |
|---|---|---|---|---|---|---|---|
| Предварительный_tacotron2 | en | LJSPEECH | Tacotron2 | WaveGlow | / | Нвидия | Google Drive |
| tacotron2_siwis | fr | Сивис | Tacotron2 | WaveGlow | / | мне | Google Drive |
| SV2TTS_TACOTRON2_256 | fr | Siwis, Voxforge, Commonvoice | SV2TTSTacotron2 | WaveGlow | Google Drive | мне | Google Drive |
| sv2tts_siwis | fr | Siwis, Voxforge, Commonvoice | SV2TTSTacotron2 | WaveGlow | Google Drive | мне | Google Drive |
| SV2TTS_TACOTRON2_256_V2 | fr | Siwis, Voxforge, Commonvoice | SV2TTSTacotron2 | WaveGlow | Google Drive | мне | Google Drive |
| sv2tts_siwis_v2 | fr | Сивис | SV2TTSTacotron2 | WaveGlow | Google Drive | мне | Google Drive |
Модели должны быть рассмотрены в pretrained_models/ каталоге!
Важное примечание : модели NVIDIA , доступные в torch hub требуют совместимого графического процессора с правильной конфигурацией для pytorch . Это причина, по которой обе модели предоставляются в ожидаемой контрольной точке keras ?
Модели sv2tts_siwis представляют собой точную настройку версии sv2tts_tacotron2_256 на наборе данных SIWIS (однополосный). Точная настройка мульти-дивикере на одном наборе данных дивикере имеет тенденцию улучшать стабильность и производить голос с большей интонацией, по сравнению с простой тренировкой модели с одним дивикере.
Демонстрация Google Colab доступна по этой ссылке!
Вы также можете найти некоторое аудио, сгенерированное в example_outputs/ , или непосредственно в ноутбуке Colab;)
Проверьте это руководство по установке для пошаговых инструкций!
Возможно, вам придется установить ffmpeg для загрузки / сохранения аудио.
Google Colab tensorflow 2.x batch_size для vocoder inference SV2TTS similarity loss , чтобы проверить новую процедуру обучения для точной настройки с одним ди-ди-ди-ди-ди-ди-ди-дивизией TTS в документе (в процессе) SV2TTS на основе энкодера, обученного потерь GE2E Есть несколько способов включить синтез речи multi-speaker :
speaker ID , который внедряется обучаемым Embedding слоем. Спикер затем изучается во время обучения.Speaker Encoder (SE) для встраивания звука из эталонного динамика. Это часто называют zero-shot voice cloning , так как требуется только образец от динамика (без обучения).prompt-based для контроля речи с подсказками.SV2TTS ПРИМЕЧАНИЕ. В следующих параграфах encoder относится к части Tacotron Encoder , в то время как SE относится к модели speaker encoder (подробно описано ниже).
Speaker Encoder-based Text-To-Speech вдохновлена бумагой «От проверки динамика до текста в речь (SV2TTS)». Авторы предложили расширение архитектуры Tacotron-2 чтобы включить информацию о голосе динамика.
Вот краткий обзор предложенной процедуры:
speaker verification . Эта модель в основном принимает входную образец аудио (5-10 с) от динамика и кодирует его на D -димерном векторе, названном embedding . Это внедрение направлено на то, чтобы получить соответствующую информацию о голосе динамика (например, frequencies , rythm , pitch , ...).Speaker Encoder (SE) затем используется для кодирования голоса динамика к клону.Tacotron-2 , так что Decoder имеет доступ как к закодированному тексту, так и к встраиванию динамика. Цель состоит в том, что Decoder научится использовать speaker embedding для копирования своей просодии / интонации / ... для прочтения текста голосом этого динамика.
Есть некоторые ограничения с приведенным выше подходом:
Speaker Encoder должен правильно разделить динамики и кодировать их голос значимым способом для синтезатора.Для решения этих ограничений предложенным решением состоит в том, чтобы провести 2-ступенчатое обучение:
CommonVoice . Это одна из крупнейших многоязычных баз данных для аудио, за счет шумных / переменных качественных звуков. Поэтому это не подходит для обучения моделей хорошего качества, тогда как предварительная обработка по-прежнему помогает получить понятные звуки.Часть SE должна быть в состоянии дифференцировать динамики и встраивать (кодировать 1-D-вектор) их значимым образом.
Модель, используемая в статье, представляет собой трехслойную модель LSTM со слоем нормализации, обученным потерей GE2E. Основное ограничение состоит в том, что обучение этой модели действительно медленное , и заняло 2 недели на 4 графических процессорах в диссертации Corentinj Master (см. Его GitHub)
Этот проект предлагает более простую архитектуру, основанную на Convolutional Neural Networks (CNN) , которая гораздо быстрее обучается по сравнению с сетями LSTM . Кроме того, euclidian расстояние использовалась, а не cosine метрика, которая показала более быстрая сходимость. Кроме того, предлагается пользовательский генератор на основе кэша для ускорения обработки аудио. Эти модификации позволили обучить модель точности 99% в течение 2-3 часов на одном графическом процессоре RTX 3090 !
Чтобы избежать обучения модели SV2TTS с нуля, которая была бы совершенно невозможно на одном графическом процессоре, предлагается новая процедура partial transfer learning .
Эта процедура принимает предварительно обученную модель с немного другой архитектурой и передает все общие веса (например, в обычном переносном обучении). Для слоев с различной формой веса переносится только общая часть, в то время как оставшиеся веса инициализируются в нулевые нуа. Это приводит к новой модели с различными весами, чтобы имитировать поведение исходной модели.
В архитектуре SV2TTS встраивание спикера передается в рецидивирующий слой Tacotron2 decoder . Это приводит к другой форме ввода, что делает матрицу веса слоя отличной. Обучение частичному передаче позволяет ажиоризировать модель так, чтобы она повторяла поведение исходной модели Tacotron2 с одним дивикере!
Контакты:
[email protected]Целью этих проектов является поддержка и продвижение образования и исследований в области технологий глубокого обучения. Чтобы облегчить это, весь связанный код предоставляется в соответствии с общей публичной лицензией GNU Affero (AGPL) V3, дополненной пунктом, который запрещает коммерческое использование (см. Файл лицензии).
Эти проекты выпускаются как «свободное программное обеспечение», позволяющее свободно использовать, изменять, развернуть и обмениваться программным обеспечением, при условии, что вы придерживаетесь условий лицензии. Хотя программное обеспечение свободно доступно, оно не является общественным достоянием и сохраняет защиту авторских прав. Условия лицензии предназначены для обеспечения того, чтобы каждый пользователь мог использовать и изменить любую версию кода для своих собственных образовательных и исследовательских проектов.
Если вы хотите использовать этот проект в проприетарном коммерческом деле, вы должны получить отдельную лицензию. Для получения дополнительной информации об этом процессе, пожалуйста, свяжитесь со мной напрямую.
Для моей защиты важно отметить, что все проекты доступны на основе «как есть», без каких -либо гарантий или условий, либо явных, либо подразумеваемых. Тем не менее, не стесняйтесь сообщать о вопросах по проекту репозитория или выполните запрос на то, чтобы решить его?
Если вы найдете этот проект полезным в своей работе, добавьте эту цитату, чтобы дать ему больше видимости! ?
@misc{yui-mhcp
author = {yui},
title = {A Deep Learning projects centralization},
year = {2021},
publisher = {GitHub},
howpublished = {url{https://github.com/yui-mhcp}}
}
Код для этого проекта представляет собой смесь многочисленных проектов GitHub, чтобы иметь полностью модулируемую реализацию Tacotron-2
dynamic decoder , которая теперь была оптимизирована и обновлена как совместимая Keras 3 .SV2TTS вдохновлена этим хранилищем, с небольшими различиями и оптимизацией.Документы: