UNIVNET:具有多分辨率光谱歧视器的神经声码编码器,用于高保真波形
这是Jang等人的非正式Pytorch实施。 (Kakao),Univnet 。
音频样本已上传!
Univnet-C16和C32的结果以及预训练的权重都上传了。
对于这两种模型,我们的实现都与原始论文的客观分数(PESQ和RMSE)相匹配。

根据本文的作者,Univnet在最近的基于GAN的神经声码器(包括HIFI-GAN)中获得了最佳目标结果,并且在主观评估中表现优于HIFI-GAN。其推理速度也比HIFI-GAN快1.5倍。
该存储库使用与NVIDIA/TACOTRON2兼容的官方HIFI-GAN的MEL光谱函数。
我们的默认MEL计算超参数如下所示。
audio :
n_mel_channels : 100
filter_length : 1024
hop_length : 256 # WARNING: this can't be changed.
win_length : 1024
sampling_rate : 24000
mel_fmin : 0.0
mel_fmax : 12000.0您可以修改超参数以与声学模型兼容。
实施需要以下依赖关系。
pip install -r requirements.txt准备数据
datasets/LibriTTS/train-clean-360下。注意:从音频文件计算出的MEL光谱图首先将保存为**.mel
准备元数据
遵循NVIDIA/TACOTRON2的格式,应将元数据格式为:
path_to_wav|transcript|speaker_id
path_to_wav|transcript|speaker_id
...
库/验证元数据用于库里特列车 - 清洁360拆分,并且已经在datasets/metadata中准备。 5%的火车清洁360话语被随机采样以进行验证。
由于该模型是声码器,因此在训练过程中未使用成绩单。
准备配置文件
运行cp config/default_c32.yaml config/config.yaml ,然后编辑config.yaml
在data部分中写下火车/验证的根路径。数据加载程序在路径中递归中解析文件列表。
data :
train_dir : ' datasets/ ' # root path of train data (either relative/absoulte path is ok)
train_meta : ' metadata/libritts_train_clean_360_train.txt ' # relative path of metadata file from train_dir
val_dir : ' datasets/ ' # root path of validation data
val_meta : ' metadata/libritts_train_clean_360_val.txt ' # relative path of metadata file from val_dir我们为Libritts Train-Clean-360 Split提供默认的元数据。
修改gen中的channel_size以在Univnet-C16和C32之间切换。
gen :
noise_dim : 64
channel_size : 32 # 32 or 16
dilations : [1, 3, 9, 27]
strides : [8, 8, 4]
lReLU_slope : 0.2训练
python trainer.py -c CONFIG_YAML_FILE -n NAME_OF_THE_RUN张板
tensorboard --logdir logs/如果要在远程计算机上运行张板,则可以通过添加--bind_all选项打开张板页面。
python inference.py -p CHECKPOINT_PATH -i INPUT_MEL_PATH -o OUTPUT_WAV_PATH您可以从下面的Google Drive链接下载预训练的模型。这些型号经过了库列列列车清洁360分的培训。
请参阅https://mindslab-ai.github.io/univnet/上的音频样本
我们通过验证集评估了模型。
| 模型 | PESQ(↑) | RMSE(↓) | 型号大小 |
|---|---|---|---|
| hifi-gan v1 | 3.54 | 0.423 | 14.01m |
| 官方Univnet-C16 | 3.59 | 0.337 | 4.00m |
| 我们的Univnet-C16 | 3.60 | 0.317 | 4.00m |
| 官方Univnet-C32 | 3.70 | 0.316 | 14.86万 |
| 我们的Univnet-C32 | 3.68 | 0.304 | 14.87万 |
Univnet的损失图如下所示。
橙色和蓝色图分别表示C16和C32。

实施作者是:
贡献者是:
特别感谢
此代码是根据BSD 3句牌许可许可的。
我们引用了以下代码和存储库。
文件
数据集