Вы можете построить среду с Docker или Conda .
Если у вас нет Docker, пожалуйста, перейдите по ссылкам, чтобы найти инструкции по установке для Ubuntu, Mac или Windows.
Построить изображение Docker:
docker build -t emospeech .
Запустите изображение Docker:
bash run_docker.sh
Если у вас нет установки Conda, найдите инструкции по установке для вашей ОС здесь.
conda create -n etts python=3.10
conda activate etts
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu117
pip install -r requirements.txt
Если у вас есть другая версия CUDA на вашем компьютере, вы можете найти применимую ссылку для установки Pytorch здесь.
Мы использовали данные 10 динамиков английского языка из набора данных ESD. Для загрузки всех файлов .wav , .txt вместе с файлами .TextGrid , созданными с использованием MFA:
bash download_data.sh
Чтобы обучить модель, нам нужны предварительно вычисленные функции, энергия, высота и эгемапа. От src Directory Run:
python -m src.preprocess.preprocess
Так должна выглядеть ваша папка данных:
.
├── data
│ ├── ssw_esd
│ ├── test_ids.txt
│ ├── val_ids.txt
└── └── preprocessed
├── duration
├── egemap
├── energy
├── mel
├── phones.json
├── pitch
├── stats.json
├── test.txt
├── train.txt
├── trimmed_wav
└── val.txt
config/config.py .python -m src.scripts.train .Тестирование реализовано при подмножестве тестирования набора данных ESD. Для синтеза аудио и вычисления нейронных МО (NISQA TTS):
config/config.py в разделе Inference .python -m src.scripts.test . Вы можете найти NISQA TTS для оригинального, реконструированного и сгенерированного аудио в test.log .
Emospeech обучается на последовательностях фонем. Поддерживаемые телефоны можно найти в data/preprocessed/phones.json . Этот репозитрой создан для академических исследований и не поддерживает автоматическое преобразование графы в фонем. Однако, если вы хотите синтезировать произвольное предложение с эмоциями, вы можете:
Генерировать последовательность фонем из графем с MFA.
1.1 Следуйте руководству по установке
1.2 Скачать английский G2P Модель: mfa model download g2p english_us_arpa
1.3 Сгенерировать phoneme.txt от graphemes.txt: mfa g2p graphemes.txt english_us_arpa phoneme.txt
Запустите python -m src.scripts.inference , указав аргументы:
| Аргумент | Значение | Возможные значения | Значение по умолчанию |
|---|---|---|---|
-sq | Последовательность фонем к синтезиззе | Найдите в data/phones.json . | Не установлен, требуется аргумент. |
-emo | ID желаемой голосовой эмоции | 0: Нейтральный, 1: злой, 2: счастливая, 3: грустно, 4: Сюрприз. | 1 |
-sp | Идентификатор голоса динамика | От 1 до 10 соответствует 0011 ... 0020 в оригинальной нотации ESD. | 5 |
-p | Путь, где сохранить синтезированный звук | Любое с расширением .wav . | Generation_FROM_PHONEME_SECERCENCE.WAV |
Например
python -m src.scripts.inference --sq "S P IY2 K ER1 F AY1 V T AO1 K IH0 NG W IH0 TH AE1 NG G R IY0 IH0 M OW0 SH AH0 N"
Если файл результата не синтезируется, проверьте inference.log на наличие телефонов OOV.