1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/cncmn-TTS

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md



Этот проект является частью Mozilla Common Voice.

Цель Mozilla TTS — создание системы преобразования текста в речь на основе глубокого обучения, которая будет низкой по стоимости и высокой по качеству.

Вы можете ознакомиться с некоторыми образцами синтезированной речи здесь.

Если вы новичок, вы также можете найти здесь краткую статью о некоторых архитектурах TTS и здесь список актуальных исследовательских статей.## Выполнение TTS

Подробнее...

Представленные модели и методы

Текст-в-спектрограмму:

Методы внимания:

  • Управляемое внимание: статья
  • Прямое и обратное декодирование: статья
  • Внимание Graves: статья
  • Двойное декодирование с консистентностью: блог

Кодировщик говорящего:

Вокодеры:

Вы также можете помочь нам реализовать больше моделей. Некоторые работы по TTS можно найти здесь.## Функции

  • Высокопроизводительные модели глубокого обучения для задач Text2Speech.
    • Модели Text2Spec (Tacotron, Tacotron2).
    • Кодировщик говорящего для эффективного вычисления эмбеддингов говорящего.
    • Модели вокодера (MelGAN, Multiband-MelGAN, GAN-TTS, ParallelWaveGAN).
  • Быстрое и эффективное обучение моделей.
  • Подробные логи обучения в консоли и Tensorboard.
  • Поддержка многоговорящего TTS.
  • Эффективное обучение на нескольких GPU.
  • Возможность преобразования моделей PyTorch в Tensorflow 2.0 и TFLite для инференса.
  • Выпущенные модели в PyTorch, Tensorflow и TFLite.
  • Инструменты для кураторства наборов данных Text2Speech в dataset_analysis.
  • Демонстрационный сервер для тестирования моделей.
  • Ноутбуки для обширного тестирования моделей.
  • Модульный (но не слишком) кодовый базис, позволяющий легко тестировать новые идеи.## Основные требования и установка Рекомендуется использовать miniconda для более простой установки.
    • python>=3.6
    • pytorch>=1.4.1
    • tensorflow>=2.2
    • librosa
    • tensorboard
    • tensorboardX
    • matplotlib
    • unidecode

Установите TTS с помощью setup.py. Это установит все зависимости автоматически и сделает TTS доступным для всех сред Python как обычный модуль Python.

python setup.py develop

Или вы можете использовать requirements.txt для установки только зависимостей.pip install -r requirements.txt

Структура директорий

|- notebooks/       (Jupyter-ноутбуки для оценки модели, выбора параметров и анализа данных.)
|- utils/           (общие утилиты.)
|- TTS
    |- bin/             (папка для всех исполняемых файлов.)
      |- train*.py                  (обучение вашей целевой модели.)
      |- distribute.py              (обучение модели TTS с использованием нескольких GPU.)
      |- compute_statistics.py      (вычисление статистик датасета для нормализации.)
      |- convert*.py                (конвертация целевой модели torch в TF.)
    |- tts/             (модели преобразования текста в речь)
        |- layers/          (определения слоев модели)
        |- models/          (определения моделей)
        |- tf/              (утилиты и реализации моделей на Tensorflow 2)
        |- utils/           (специфические утилиты для моделей.)
    |- speaker_encoder/ (Модели кодировщика говорящего.)
        |- (также)
    |- vocoder/         (Модели вокодера.)
        |- (также)

Docker

Docker-образ создан @synesthesiam и размещён в отдельном репозитории с последними моделями LJSpeech.## Опубликованные модели Пожалуйста, посетите нашу вики.

Пример вывода модели

Ниже представлено состояние модели Tacotron после 16 000 итераций с размером батча 32 и датасетом LJSpeech.

"Недавние исследования в Гарварде показали, что медитация в течение 8 недель может увеличить серое вещество в тех частях мозга, которые отвечают за эмоциональную регуляцию и обучение."

Примеры аудио: soundcloud

example_output

Mozilla TTS учебные материалы и ноутбуки

Датасеты и загрузка данных

TTS предоставляет универсальный загрузчик данных, который легко использовать для вашего собственного датасета. Вам просто нужно написать простую функцию для форматирования датасета. Проверьте datasets/preprocess.py для примеров. После этого вам нужно настроить поля dataset в config.json.

Некоторые из публичных датасетов, на которых успешно применялась TTS:

  • LJ Speech
  • Nancy
  • TWEB
  • M-AI-Labs
  • LibriTTS
  • Испанский - спасибо! @carlfm01## Обучение и настройка LJ-Speech Здесь вы можете найти CoLab ноутбук для практического примера обучения LJ-Speech. Или вы можете вручную следовать руководству ниже.Для начала разделяйте metadata.csv на подмножества для обучения и валидации соответственно metadata_train.csv и metadata_val.csv. Обратите внимание, что для преобразования текста в речь, производительность валидации может быть вводящей в заблуждение, так как значение потерь не напрямую измеряет качество голоса для человеческого уха и также не измеряет производительность модуля внимания. Поэтому, запуск модели с новыми предложениями и прослушивание результатов является лучшим способом.
shuf metadata.csv > metadata_shuf.csv
head -n 12000 metadata_shuf.csv > metadata_train.csv
tail -n 1100 metadata_shuf.csv > metadata_val.csv

Чтобы обучить новую модель, вам нужно определить свой собственный файл config.json (проверьте пример) и вызвать командой ниже. Вы также устанавливаете архитектуру модели в config.json.

python TTS/bin/train.py --config_path TTS/tts/configs/config.json

Чтобы настроить модель, используйте --restore_path.

python TTS/bin/train.py --config_path TTS/tts/configs/config.json --restore_path /путь/к/вашей/модели.pth.tar

Чтобы продолжить старую сессию обучения, используйте --continue_path.

python TTS/bin/train.py --continue_path /путь/к/вашей/сессии/обучения/

Для обучения на нескольких GPU используйте distribute.py. Это позволяет процессу-ориентированному обучению на нескольких GPU, где каждый процесс использует одну GPU.

CUDA_VISIBLE_DEVICES="0,1,4" TTS/bin/distribute.py --config_path TTS/tts/configs/config.jsonКаждая сессия обучения создает новый выходной каталог и config.json копируется в этот каталог.

В случае ошибки или прерывания выполнения, если ещё нет checkpoint под каталогом выходных данных, весь каталог будет удалён. Вы также можете использовать Tensorboard, если укажете аргумент Tensorboard --logdir на экспериментальную папку.

Правила вклада

Этот репозиторий подчиняется кодексу поведения и правилам этикета Mozilla. Для получения дополнительной информации, пожалуйста, ознакомьтесь с правилами участия сообщества Mozilla.

Пожалуйста, отправляйте свои Pull Request на ветку dev. Перед отправкой Pull Request проверьте свои изменения на наличие базовых ошибок и проблем со стилем с помощью linter. В этом репозитории установлен cardboardlinter, поэтому, например, если вы внесли изменения и хотите запустить linter только на изменённом коде, вы можете использовать следующую команду:

pip install pylint cardboardlint
cardboardlinter --refspec master
```## Руководство по совместной экспериментации
Если вы хотите использовать TTS для тестирования новой идеи и хотите поделиться своими экспериментами с сообществом, мы рекомендуем следовать следующим правилам для лучшего сотрудничества.
(Если у вас есть идеи для улучшения сотрудничества, дайте нам знать)
- Создайте новую ветку.
- Откройте issue, указывающий на вашу ветку.
- Опишите свой эксперимент.
- Поделитесь своими результатами по мере продвижения. (Лог-файлы Tensorboard, аудио-результаты, визуализации и т. д.)
- Используйте набор данных LJSpeech (для английского языка), если вы хотите сравнивать результаты с выпущенными моделями. (Это самый открытый масштабируемый набор данных для быстрых экспериментов)## [Контакт/Получение помощи](https://github.com/mozilla/TTS/wiki/Contact-and-Getting-Help)

## Основные задачи
- [x] Реализовать модель.
- [x] Сгенерировать человеческое звучание речи на наборе данных LJSpeech.
- [x] Сгенерировать человеческое звучание речи на другом наборе данных (Nancy) (TWEB).
- [x] Обучить TTS с r=1 успешно.
- [x] Включить распределённое обучение на основе процессов. Подобно (https://github.com/fastai/imagenet-fast/).
- [x] Адаптация нейрального вокодера. TTS работает с WaveRNN и ParallelWaveGAN (https://github.com/erogol/WaveRNN и https://github.com/erogol/ParallelWaveGAN)
- [ ] Многоспикчерное вложение.
- [x] Оптимизация модели (экспорт модели, обрезка модели и т.д.)<!--## Ссылки
- [Эффективное нейронное синтезирование аудио](https://arxiv.org/pdf/1802.08435.pdf)
- [Модели на основе внимания для распознавания речи](https://arxiv.org/pdf/1506.07503.pdf)
- [Генерация последовательностей с использованием рекуррентных нейронных сетей](https://arxiv.org/pdf/1308.0850.pdf)
- [Char2Wav: Конечная модель синтеза речи](https://openreview.net/pdf?id=B1VWyySKx)
- [VoiceLoop: Подгонка голоса и синтез через фонетический цикл](https://arxiv.org/pdf/1707.06588.pdf)
- [WaveRNN](https://arxiv.org/pdf/1802.08435.pdf)
- [Faster WaveNet](https://arxiv.org/abs/1611.09482)
- [Parallel WaveNet](https://arxiv.org/abs/1711.10433)
-->### Ссылки
- https://github.com/keithito/tacotron (Предварительная обработка данных)
- https://github.com/r9y9/tacotron_pytorch (Исходная архитектура Tacotron)
- https://github.com/kan-bayashi/ParallelWaveGAN (библиотека вокодера)

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Mozilla TTS. Открытая версия системы синтеза речи на основе PyTorch Развернуть Свернуть
Jupyter Notebook и 4 других языков
MPL-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/cncmn-TTS.git
git@api.gitlife.ru:oschina-mirror/cncmn-TTS.git
oschina-mirror
cncmn-TTS
cncmn-TTS
master