RDINO模型是基于时延神经网络构建的自监督说话人模型,可用于说话人确认、说话人日志等任务。
Regularized DINO使用使用teacher-student模型结构,通过最大化同一语句中不同增强片段的特征分布相似性,自监督地获取说话人特征,同时使用多样性正则和冗余度消除正则缓解训练中存在的模型坍塌问题。
更详细的信息见
本模型使用开源数据集3D-Speaker数据集进行无标签训练,包含约10k个说话人,可以对16k采样率的中文音频进行识别。
在3D-Speaker中文测试集:Cross Device, Cross-Distance, Cross-Dialect中EER评测结果如下:
Model | Params | Cross-Device | Cross-Distance | Cross-Dialect |
---|---|---|---|---|
RDINO | 45.44M | 20.41% | 21.92% | 25.53% |
在页面右侧,可以在“在线体验”栏内看到我们预先准备好的示例音频,点击播放按钮可以试听,点击“执行测试”按钮,会在下方“测试结果”栏中显示相似度得分(范围为[-1,1])和是否判断为同一个人。如果您想要测试自己的音频,可点“更换音频”按钮,选择上传或录制一段音频,完成后点击执行测试,识别内容将会在测试结果栏中显示。
from modelscope.pipelines import pipeline
sv_pipline = pipeline(
task='speaker-verification',
model='damo/speech_rdino_ecapa_tdnn_sv_zh-cn_3dspeaker_16k',
model_revision='v1.0.1'
)
speaker1_a_wav = 'https://modelscope.cn/api/v1/models/damo/speech_campplus_sv_zh-cn_16k-common/repo?Revision=master&FilePath=examples/speaker1_a_cn_16k.wav'
speaker1_b_wav = 'https://modelscope.cn/api/v1/models/damo/speech_campplus_sv_zh-cn_16k-common/repo?Revision=master&FilePath=examples/speaker1_b_cn_16k.wav'
speaker2_a_wav = 'https://modelscope.cn/api/v1/models/damo/speech_campplus_sv_zh-cn_16k-common/repo?Revision=master&FilePath=examples/speaker2_a_cn_16k.wav'
# 相同说话人语音
result = sv_pipline([speaker1_a_wav, speaker1_b_wav])
print(result)
# 不同说话人语音
result = sv_pipline([speaker1_a_wav, speaker2_a_wav])
print(result)
# 可以自定义得分阈值来进行识别
result = sv_pipline([speaker1_a_wav, speaker2_a_wav], thr=0.198)
print(result)
本项目已在3D-Speaker开源了训练、测试和推理代码,使用者可按下面方式下载安装使用:
git clone https://github.com/alibaba-damo-academy/3D-Speaker.git && cd 3D-Speaker
conda create -n 3D-Speaker python=3.8
conda activate 3D-Speaker
pip install -r requirements.txt
运行RDINO在3D-Speaker数据集上的训练脚本
cd egs/3dspeaker/sv-rdino
# 需要在run.sh中提前配置训练使用的GPU信息,默认是4卡
bash run.sh
pip install modelscope
cd 3D-Speaker
# 配置模型名称并指定wav路径,wav路径可以是单个wav,也可以包含多条wav路径的list文件
model_id=damo/speech_rdino_ecapa_tdnn_sv_zh-cn_3dspeaker_16k
# 提取embedding
python speakerlab/bin/infer_sv_rdino.py --model_id $model_id --wavs $wav_path
如果你觉得这个该模型有所帮助,请引用下面的相关的论文
@inproceedings{chen2023pushing,
title={Pushing the limits of self-supervised speaker verification using regularized distillation framework},
author={Chen, Yafeng and Zheng, Siqi and Wang, Hui and Cheng, Luyao and Chen, Qian},
booktitle={ICASSP 2023-2023 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP)},
pages={1--5},
year={2023},
organization={IEEE}
}
@inproceedings{chen2023pushing,
title={3D-Speaker: A Large-Scale Multi-Device, Multi-Distance, and Multi-Dialect Corpus for Speech Representation Disentanglement},
author={Siqi Zheng, Luyao Cheng, Yafeng Chen, Hui Wang and Qian Chen},
url={https://arxiv.org/pdf/2306.15354.pdf},
year={2023}
}