【项目实战】AUTOVC 代码解析 —— make_metadata.py

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

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:
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值