说话人表征
说话人表征
这是ESPnet2中Spk1配方的模板。它采用d-vector风格的训练/推理方法进行说话人验证。换句话说,它训练一个DNN作为封闭集说话人分类器。训练完成后会移除分类头。最后一个隐藏层(有时是其他层)被用作说话人表征(即说话人嵌入)来表示不同的开放集说话人。
目录
配方流程
Spk1配方包含4个阶段。
- 数据准备
数据准备阶段。
ESPnet格式:
它会调用local/data.sh在data/目录下创建Kaldi风格的数据目录,用于训练集、验证集和测试集。这与asr1任务的处理方式相同。
另请参阅:
- 速度扰动
离线生成不同速度的训练数据,作为一种数据增强形式。
- Wav格式
将wav.scp中的音频文件统一转换为单一格式(wav/flac/kaldi_ark)。
- 说话人统计收集
统计计算阶段。该阶段收集Spk训练中输入和输出文本的形状信息。目前,它接近于一个虚拟阶段,因为我们在训练阶段将所有话语设置为具有相同的持续时间。
- 说话人训练
说话人模型训练阶段。您可以通过--spk_config和--spk_args选项更改训练设置。
另请参阅:
- 说话人嵌入提取
提取说话人嵌入向量用于推理。提取属于评估集的说话人嵌入向量。如果score_norm=true和/或qmf_func=true,则同时提取用于分数归一化和/或质量度量函数的队列集。
- 分数计算
计算评估协议(即一组试验)的说话人相似度分数。每个试验计算一个标量分数。
如果设置了--score_norm=true,此阶段包含分数归一化。如果设置了--qmf_func=true,此阶段也包含分数归一化。
- 指标计算
计算等错误率(EER)和最小检测代价函数(minDCF)。
9-10. (可选) 打包结果以上传
打包阶段。该阶段会将训练好的模型文件打包并上传至Huggingface。如需运行此阶段,您需要在Huggingface平台注册账号。
如何运行
VoxCeleb 训练
这里,我们展示使用egs2/voxceleb/spk1运行该配方的流程。
转到配方目录。
$ cd egs2/voxceleb/spk1如需更改下载目录,请修改db.sh中的VOXCELEB1和VOXCELEB2变量。
$ vim db.sh如需使用作业调度系统,请修改cmd.sh和conf/*.conf文件。详情请参阅using job scheduling system。
$ vim cmd.sh运行run.sh脚本,该脚本会执行上述所有阶段的操作。
$ ./run.sh相关工作
@INPROCEEDINGS{jung2022pushing,
title={Pushing the limits of raw waveform speaker recognition},
author={Jung, Jee-weon and Kim, You Jin and Heo, Hee-Soo and Lee, Bong-Jin and Kwon, Youngki and Chung, Joon Son},
year={2022},
booktitle={Proc. INTERSPEECH}
}