Skip to content

Commit f306d57

Browse files
[TTS][EasyMagpietts] WIP
1 parent 8f85359 commit f306d57

5 files changed

Lines changed: 3052 additions & 3 deletions

File tree

.devcontainer/devDockerfile

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
ARG NEMO_VERSION=25.11
2+
3+
FROM nvcr.io/nvidia/nemo:${NEMO_VERSION}
4+
5+
LABEL \
6+
maintainer="NeMoTTS team" \
7+
description="NeMoTTS Dev Container"
8+
9+
WORKDIR /workspace/NeMo
10+
11+
USER root

.devcontainer/devcontainer.json

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
{
2+
"name": "NeMoTTS Dev Container",
3+
"build": {
4+
"dockerfile": "../.devcontainer/devDockerfile"
5+
},
6+
"runArgs": [
7+
"--gpus",
8+
"\"device=0,1\"",
9+
"--ipc=host",
10+
"--name",
11+
"${localEnv:USER}_nemo_tts_devcontainer_easymagpietts_online_cfg_distillation"
12+
],
13+
"workspaceFolder": "/workspace/NeMo",
14+
"mounts": [
15+
"source=${localWorkspaceFolder},target=/workspace/NeMo,type=bind"
16+
],
17+
"remoteUser": "root",
18+
"postCreateCommand": "pip install -e /workspace/NeMo --no-deps && pip install git+https://github.com/sarulab-speech/UTMOSv2.git@v1.2.1",
19+
"customizations": {
20+
"vscode": {
21+
"settings": {
22+
"terminal.integrated.shell.linux": "/bin/bash"
23+
}
24+
}
25+
}
26+
}

examples/tts/easy_magpietts.py

100644100755
Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,17 @@
1616
import torch.multiprocessing as mp
1717
from omegaconf import OmegaConf, open_dict
1818

19-
from nemo.collections.tts.models import EasyMagpieTTSModel, EasyMagpieTTSModelOnlinePO
19+
from nemo.collections.tts.models import EasyMagpieCFGDistillation, EasyMagpieTTSModel, EasyMagpieTTSModelOnlinePO
2020
from nemo.core.config import hydra_runner
2121
from nemo.utils import logging
2222
from nemo.utils.exp_manager import exp_manager
2323

24+
_TRAIN_MODES: list[str] = [
25+
"train",
26+
"online_cfg_distillation_train",
27+
"onlinepo_train",
28+
]
29+
2430

2531
@hydra_runner(config_path="conf/magpietts", config_name="easy_magpietts")
2632
def main(cfg):
@@ -43,8 +49,12 @@ def main(cfg):
4349
exp_manager(trainer, cfg.get("exp_manager", None))
4450

4551
mode = cfg.get('mode', 'train')
52+
train_modes_msg = ", ".join(_TRAIN_MODES)
53+
4654
if mode == 'train':
4755
model = EasyMagpieTTSModel(cfg=cfg.model, trainer=trainer)
56+
elif mode == "online_cfg_distillation_train":
57+
model = EasyMagpieCFGDistillation(cfg=cfg.model, trainer=trainer)
4858
elif mode == 'onlinepo_train':
4959
model_cfg = cfg.model
5060
with open_dict(model_cfg):
@@ -53,11 +63,11 @@ def main(cfg):
5363
elif mode == 'test':
5464
model = EasyMagpieTTSModel(cfg=cfg.model, trainer=trainer)
5565
else:
56-
raise NotImplementedError(f"Only train, onlinepo_train and test modes are supported. Got {mode}")
66+
raise NotImplementedError(f"Only {train_modes_msg} and test modes are supported. Got {mode}.")
5767

5868
model.maybe_init_from_pretrained_checkpoint(cfg=cfg)
5969

60-
if mode in ['train', 'onlinepo_train']:
70+
if mode in _TRAIN_MODES:
6171
trainer.fit(model)
6272
elif mode == 'test':
6373
trainer.test(model)

nemo/collections/tts/models/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
from nemo.collections.tts.models.aligner import AlignerModel
1616
from nemo.collections.tts.models.audio_codec import AudioCodecModel
1717
from nemo.collections.tts.models.easy_magpietts import EasyMagpieTTSModel
18+
from nemo.collections.tts.models.easy_magpietts_cfg_distillation import EasyMagpieCFGDistillation
1819
from nemo.collections.tts.models.easy_magpietts_inference import EasyMagpieTTSInferenceModel
1920
from nemo.collections.tts.models.easy_magpietts_preference_optimization import EasyMagpieTTSModelOnlinePO
2021
from nemo.collections.tts.models.fastpitch import FastPitchModel
@@ -45,4 +46,5 @@
4546
"MagpieTTSModelOfflinePODataGen",
4647
"MagpieTTSModelOfflinePO",
4748
"MagpieTTSModelOnlinePO",
49+
"EasyMagpieCFGDistillation",
4850
]

0 commit comments

Comments
 (0)