❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦
🚀 快速阅读
- 功能:支持说话人日志、说话人识别、语种识别、多模态识别和重叠说话人检测。
- 技术:结合声学、语义和视觉信息,采用EEND网络和无监督聚类技术。
- 应用:适用于会议记录、法庭记录、广播电视制作、电话客服和安全监控等场景。
正文(附运行示例)
3D-Speaker 是什么
3D-Speaker是阿里巴巴通义实验室语音团队推出的多模态开源项目,旨在通过结合声学、语义和视觉信息,实现高精度的说话人识别和语种识别。项目提供了工业级模型、训练和推理代码,以及大规模多设备、多距离、多方言的数据集,支持高挑战性的语音研究。
3D-Speaker的最新更新增强了多说话人日志功能,提升了识别效率和准确性,适用于大规模对话数据的高效处理。
3D-Speaker 的主要功能
- 说话人日志:将音频划分为属于不同说话人的多个段落,识别出每个说话人的开始和结束时间。
- 说话人识别:确定音频中说话人的身份。
- 语种识别:识别音频中说话人所使用的语言。
- 多模态识别:结合声学、语义、视觉信息,增强识别能力,尤其是在复杂声学环境中。
- 重叠说话人检测:能识别出音频中任意说话人重叠的区域。
3D-Speaker 的技术原理
- 声学信息处理:声学编码器提取包含说话人信息的声学特征,应用数据增强算法提高特征提取的鲁棒性。
- 视觉信息融合:分析和提取人物脸部活动特征,基于视觉-音频多模态检测模块识别出当前画面中正在说话的人物信息。
- 语义信息融合:结合语义信息,将说话人日志任务转化为对识别的文本内容进行说话人区分,使用基于Bert模型的对话预测和说话人转换预测模块提取语义中的说话人信息。
- 端到端说话人日志(EEND):采用EEND网络直接输出每个说话人的语音活动检测结果,识别任意说话人重叠区域。
- 无监督聚类:结合传统的“特征提取-无监督聚类”框架进行全局人数检测,输出粗粒度的说话人ID段落结果。
如何运行 3D-Speaker
安装 3D-Speaker
git clone https://github.com/modelscope/3D-Speaker.git && cd 3D-Speaker
conda create -n 3D-Speaker python=3.8
conda activate 3D-Speaker
pip install -r requirements.txt
运行实验
# 说话人验证:ERes2NetV2 在 3D-Speaker 数据集上
cd egs/3dspeaker/sv-eres2netv2/
bash run.sh
# 说话人验证:CAM++ 在 3D-Speaker 数据集上
cd egs/3dspeaker/sv-cam++/
bash run.sh
# 说话人验证:ECAPA-TDNN 在 3D-Speaker 数据集上
cd egs/3dspeaker/sv-ecapa/
bash run.sh
使用预训练模型进行推理
# 安装 modelscope
pip install modelscope
# ERes2Net 训练于 200k 标记说话人
model_id=iic/speech_eres2net_sv_zh-cn_16k-common
# ERes2NetV2 训练于 200k 标记说话人
model_id=iic/speech_eres2netv2_sv_zh-cn_16k-common
# CAM++ 训练于 200k 标记说话人
model_id=iic/speech_campplus_sv_zh-cn_16k-common
# 运行 CAM++ 或 ERes2Net 推理
python speakerlab/bin/infer_sv.py --model_id $model_id
# 运行批量推理
python speakerlab/bin/infer_sv_batch.py --model_id $model_id --wavs $wav_list
资源
- 项目官网:https://3dspeaker.github.io/
- GitHub 仓库:https://github.com/modelscope/3D-Speaker
- arXiv 技术论文:https://arxiv.org/pdf/2306.15354.pdf
❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦