speakerverification_en_titanet_large项目介绍
项目概述
speakerverification_en_titanet_large是NVIDIA开发的一个用于说话人验证和说话人分割任务的大型模型。该模型基于TitaNet架构,约有2300万个参数,专门用于从给定的语音中提取说话人嵌入向量。该模型支持英语语音处理,是NeMo工具包中的一个重要组成部分。
模型特点
- 模型架构:采用TitaNet-Large架构,使用深度可分离1D卷积。
- 参数规模:约2300万个参数。
- 语言支持:专门针对英语语音优化。
- 输入要求:接受16000Hz采样率的单声道音频文件(wav格式)作为输入。
- 输出结果:为音频文件生成说话人嵌入向量。
应用场景
- 说话人验证:比较两段语音是否来自同一说话人。
- 说话人分割:在多人对话音频中识别不同说话人的片段。
- 说话人识别:识别特定说话人的身份。
模型性能
-
说话人验证任务:
- 在VoxCeleb1数据集(清理后的测试文件)上,等错误率(EER)达到0.66%。
-
说话人分割任务:
- 在AMI(混合头戴式麦克风)数据集上,分割错误率(DER)为1.73%。
- 在CH109数据集上,分割错误率(DER)为1.19%。
- 在NIST SRE 2000数据集上,分割错误率(DER)为6.73%。
使用方法
-
安装NVIDIA NeMo工具包:
pip install nemo_toolkit['all']
-
加载预训练模型:
import nemo.collections.asr as nemo_asr speaker_model = nemo_asr.models.EncDecSpeakerLabelModel.from_pretrained("nvidia/speakerverification_en_titanet_large")
-
提取嵌入向量:
emb = speaker_model.get_embedding("audio_file.wav")
-
说话人验证:
speaker_model.verify_speakers("audio1.wav", "audio2.wav")
训练数据
该模型在多个英语语音数据集上进行了训练,包括:
- VOXCELEB-1
- VOXCELEB-2
- FISHER
- Switchboard
- Librispeech ASR
- SRE(2004-2010)
局限性
该模型主要针对英语语音进行了优化。如果用户的数据领域与训练数据差异较大,或模型表现不佳,可能需要考虑在特定领域进行微调。
许可证
该模型使用CC-BY-4.0许可证发布,用户在下载和使用模型时需要遵守相关条款。