AUTOVC 代码解析 —— make_metadata.py
简介
本项目一个基于 AUTOVC 模型的语音转换项目,它是使用 PyTorch 实现的(项目地址)。
AUTOVC 遵循自动编码器框架,只对自动编码器损耗进行训练,但它引入了精心调整的降维和时间下采样来约束信息流,这个简单的方案带来了显著的性能提高。(详情请参阅 AUTOVC 的详细介绍)。
由于 AUTOVC 项目较大,代码较多。为了方便学习与整理,将按照工程文件的结构依次介绍。
本文将介绍项目中的 make_metadata.py 文件:为训练生成说话人嵌入和元数据。
函数解析
main
该函数的作用是: 为训练生成说话人嵌入和元数据
输入参数: 无
输出参数: 无
代码详解:
# 调用 model_bl 中的 D_VECTOR 创建说话人嵌入网络模型,输入数据大小为 80 ,LSTM 隐藏单元数为 768 , 输出数据大小为 256 ;
# 使用 model.eval 方法,将模块设置为评估模式。该设置仅对模型中某些模块有影响,例如 Dropout , BatchNorm 等;
# 使用 model.cuda 方法,移动所有的模型参数并缓存到 GPU ;
# 需注意:这也会生成相关的参数并缓冲不同的对象。因此,如果模块将在GPU上运行,那么它应该在构建优化器之前被调用。
C = D_VECTOR(dim_input=80, dim_cell=768, dim_emb=256).eval().cuda()
# 加载预训练的说话人编码器模型
c_checkpoint = torch.load('3000000-BL.ckpt')
# 创建一个有序字典
new_state_dict = OrderedDict()
# 遍历加载的预训练说话人编码模型对应部分
for key, val in c_checkpoint['model_b'].items():
# 截取 key 值,使命名一致
new_key = key[7:

本文解析了基于AUTOVC模型的语音转换项目中的make_metadata.py文件。该文件用于生成说话人嵌入和元数据,通过加载预训练模型,处理梅尔频谱数据,最终将说话人信息序列化并保存。
最低0.47元/天 解锁文章
2823

被折叠的 条评论
为什么被折叠?



