Use clap to achieve prompt controlled generation (#223)
* 快速分类音频并把yml格式结果存在训练根目录里 (#190) * Add files via upload * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * Update models.py * Update webui.py * Update infer.py * Create compress_model.py * 重新提交,更新Gradio推理UI (#193) * Update webui.py * Update webui.py * 更新 train_ms.py * 更新 models.py * 更新 models.py * 更新 models.py * 更新 train_ms.py * 更新 train_ms.py * 更新 models.py * Update preprocess_text.py * Update config.json * Update train_ms.py * Update webui.py (#206) * Add files via upload (#209) * Update train_ms.py * Update train_ms.py * Update preprocess_text.py * Update train_ms.py * fix (#211) * Update emotion_clustering.py * Add files via upload * Update emotion_clustering.py * add cluster center save * Add files via upload * Update config.py * Update default_config.yml * Update config.py * Update config.py * Update emotion_clustering.py * Update emotion_clustering.py * Update config.py * Update emotion_clustering.py * Update emotion_clustering.py * Update webui.py * Update emotion_clustering.py * Update commons.py * Update emotion_clustering.py * Update webui.py * Update webui.py * Add files via upload * Update train_ms.py * Update train_ms.py * Update train_ms.py * Update train_ms.py * Update train_ms.py * Update webui.py * Update emotion_clustering.py * Update emotion_clustering.py * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * fix default_config.yml. * Update infer.py * feat: support infer 2.1 models * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * fix: support infer 2.1 models 兼容bug修复 * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update train_ms.py * Add CLAP * Fix data loader * Fix infer.py * Fix webui.py * Add prompt template * Update clap_gen.py * Fix wrong environ value * Add g for dur disc * Update clap_gen.py * Fix multilang generation * Update config.json * Prompt mode * Improve slice segments performance * Add preprocess webui * Update webui_preprocess.py * Update webui_preprocess.py * Update config.py * Update default_config.yml * Update config.py * Update clap_gen.py * Delete emo_gen.py * Delete get_emo.py * Delete emotional/wav2vec2-large-robust-12-ft-emotion-msp-dim directory * Update README.md * Update README * Split val per lang * Delete emotion_clustering.py * Update default_config.yml * Update default_config.yml * Update config.py * Update preprocess_text.py * Update webui_preprocess.py * Update defalut_config.yml * Update webui_preprocess.py * Update preprocess_text.py * Random augmentation for CLAP * Update data_utils.py * Update preprocess_text.py * Add vq for CLAP features to avoid overfitting * Random dummy inputs * Update webui.py * Update models.py * Update infer.py * Apply Code Formatter Change * Update config.json * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --------- Co-authored-by: YYuX-1145 <138500330+YYuX-1145@users.noreply.github.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Sora <654163754@qq.com> Co-authored-by: Sihan Wang <wangsihan1995@gmail.com> Co-authored-by: Stardust-minus <Stardust-minus@users.noreply.github.com>
This commit is contained in:
38
train_ms.py
38
train_ms.py
@@ -194,6 +194,21 @@ def run():
|
||||
**hps.model,
|
||||
).cuda(local_rank)
|
||||
|
||||
if getattr(hps.train, "freeze_ZH_bert", False):
|
||||
print("Freezing ZH bert encoder !!!")
|
||||
for param in net_g.enc_p.bert_proj.parameters():
|
||||
param.requires_grad = False
|
||||
|
||||
if getattr(hps.train, "freeze_EN_bert", False):
|
||||
print("Freezing EN bert encoder !!!")
|
||||
for param in net_g.enc_p.en_bert_proj.parameters():
|
||||
param.requires_grad = False
|
||||
|
||||
if getattr(hps.train, "freeze_JP_bert", False):
|
||||
print("Freezing JP bert encoder !!!")
|
||||
for param in net_g.enc_p.ja_bert_proj.parameters():
|
||||
param.requires_grad = False
|
||||
|
||||
net_d = MultiPeriodDiscriminator(hps.model.use_spectral_norm).cuda(local_rank)
|
||||
optim_g = torch.optim.AdamW(
|
||||
filter(lambda p: p.requires_grad, net_g.parameters()),
|
||||
@@ -216,12 +231,15 @@ def run():
|
||||
)
|
||||
else:
|
||||
optim_dur_disc = None
|
||||
net_g = DDP(net_g, device_ids=[local_rank])
|
||||
net_d = DDP(net_d, device_ids=[local_rank])
|
||||
net_g = DDP(net_g, device_ids=[local_rank], bucket_cap_mb=512)
|
||||
net_d = DDP(net_d, device_ids=[local_rank], bucket_cap_mb=512)
|
||||
dur_resume_lr = None
|
||||
if net_dur_disc is not None:
|
||||
net_dur_disc = DDP(
|
||||
net_dur_disc, device_ids=[local_rank], find_unused_parameters=True
|
||||
net_dur_disc,
|
||||
device_ids=[local_rank],
|
||||
find_unused_parameters=True,
|
||||
bucket_cap_mb=512,
|
||||
)
|
||||
|
||||
# 下载底模
|
||||
@@ -371,7 +389,7 @@ def train_and_evaluate(
|
||||
ja_bert,
|
||||
en_bert,
|
||||
emo,
|
||||
) in tqdm(enumerate(train_loader)):
|
||||
) in enumerate(tqdm(train_loader)):
|
||||
if net_g.module.use_noise_scaled_mas:
|
||||
current_mas_noise_scale = (
|
||||
net_g.module.mas_noise_scale_initial
|
||||
@@ -405,6 +423,7 @@ def train_and_evaluate(
|
||||
z_mask,
|
||||
(z, z_p, m_p, logs_p, m_q, logs_q),
|
||||
(hidden_x, logw, logw_),
|
||||
g,
|
||||
loss_commit,
|
||||
) = net_g(
|
||||
x,
|
||||
@@ -454,7 +473,11 @@ def train_and_evaluate(
|
||||
loss_disc_all = loss_disc
|
||||
if net_dur_disc is not None:
|
||||
y_dur_hat_r, y_dur_hat_g = net_dur_disc(
|
||||
hidden_x.detach(), x_mask.detach(), logw.detach(), logw_.detach()
|
||||
hidden_x.detach(),
|
||||
x_mask.detach(),
|
||||
logw.detach(),
|
||||
logw_.detach(),
|
||||
g.detach(),
|
||||
)
|
||||
with autocast(enabled=False):
|
||||
# TODO: I think need to mean using the mask, but for now, just mean all
|
||||
@@ -480,7 +503,9 @@ def train_and_evaluate(
|
||||
# Generator
|
||||
y_d_hat_r, y_d_hat_g, fmap_r, fmap_g = net_d(y, y_hat)
|
||||
if net_dur_disc is not None:
|
||||
y_dur_hat_r, y_dur_hat_g = net_dur_disc(hidden_x, x_mask, logw, logw_)
|
||||
y_dur_hat_r, y_dur_hat_g = net_dur_disc(
|
||||
hidden_x, x_mask, logw, logw_, g
|
||||
)
|
||||
with autocast(enabled=False):
|
||||
loss_dur = torch.sum(l_length.float())
|
||||
loss_mel = F.l1_loss(y_mel, y_hat_mel) * hps.train.c_mel
|
||||
@@ -591,6 +616,7 @@ def train_and_evaluate(
|
||||
)
|
||||
|
||||
global_step += 1
|
||||
|
||||
gc.collect()
|
||||
torch.cuda.empty_cache()
|
||||
if rank == 0:
|
||||
|
||||
Reference in New Issue
Block a user