前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >说话人确认模型CAM++在腾讯云云服务器CVM上部署

说话人确认模型CAM++在腾讯云云服务器CVM上部署

原创
作者头像
buzzfrog
发布2024-03-04 12:16:09
1730
发布2024-03-04 12:16:09
举报
文章被收录于专栏:云上修行云上修行

在今天这个数字技术迅速发展的时代,说话人识别技术(声纹技术)逐渐成为了身份验证、安全检查和个性化服务等领域的重要工具。随着需求的增加,这项技术也在不断进化,以适应更复杂的应用场景。最新的进展之一便是CAM++模型,这是一个基于密集连接时延神经网络的说话人识别模型,旨在提供更高的准确性和更快的推理速度。

CAM++模型概述

CAM++模型是在现有说话人识别技术的基础上,通过集成先进的网络架构设计和创新算法,实现了说话人识别性能的显著提升。与一些常见的说话人识别模型——如ResNet34和ECAPA-TDNN相比,CAM++在中文数据集CN-Celeb和英文数据集VoxCeleb上都显示出了更佳的性能。此外,CAM++具有更快的推理速度,使其在实际应用中更具优势。

模型架构

CAM++模型包括两大部分:前端的残差卷积网络和作为主干的时延神经网络。前端模块采用2维卷积结构,以提取更精细的时频特征,而主干模块则通过密集型连接复用层级特征,旨在提升计算效率。另一个创新之处是每一层都嵌入了一个轻量级的上下文相关掩蔽(Context-aware Mask)模块,它通过多粒度的池化操作来提取不同尺度的上下文信息,并生成一个mask来滤除无关噪声,保留关键的说话人信息。

模型性能

在模型性能评估方面,CAM++模型在公开的CN-Celeb测试集上取得了令人瞩目的结果。相较于其他主流模型,CAM++在接受大约3k训练说话人后,其等错误率(EER)已经达到6.78%,并且在接受大约200k训练说话人后,EER进一步降至4.32%,展示了其卓越的性能。

本文详述在腾讯云云服务器CVM上运行测试程序。

腾讯云云服务器CVM购买

环境配置

安装conda

代码语言:shell
复制
wget https://repo.anaconda.com/archive/Anaconda3-2023.03-Linux-x86_64.sh
sh Anaconda3-2023.03-Linux-x86_64.sh

conda create -n 3D-Speaker python=3.8
conda activate 3D-Speaker

安装模型

代码语言:shell
复制
git clone https://github.com/alibaba-damo-academy/3D-Speaker.git && cd 3D-Speaker
pip install -r requirements.txt
pip install modelscope

测试代码:

代码语言:python
复制
from modelscope.pipelines import pipeline
from datetime import datetime

sv_pipeline = pipeline(
    task='speaker-verification',
    model='damo/speech_campplus_sv_zh-cn_16k-common',
    model_revision='v1.0.0'
)
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'

start_time = datetime.now()
# 相同说话人语音
result = sv_pipeline([speaker1_a_wav, speaker1_b_wav])
elapsed_time = datetime.now() - start_time
print(result, elapsed_time.total_seconds() * 1000)

start_time = datetime.now()
# 不同说话人语音
result = sv_pipeline([speaker1_a_wav, speaker2_a_wav])
elapsed_time = datetime.now() - start_time
print(result, elapsed_time.total_seconds() * 1000)

start_time = datetime.now()
# 可以自定义得分阈值来进行识别,阈值越高,判定为同一人的条件越严格
result = sv_pipeline([speaker1_a_wav, speaker2_a_wav], thr=0.31)
elapsed_time = datetime.now() - start_time
print(result, elapsed_time.total_seconds() * 1000)

start_time = datetime.now()
# 可以传入output_emb参数,输出结果中就会包含提取到的说话人embedding
result = sv_pipeline([speaker1_a_wav], output_emb=True)
elapsed_time = datetime.now() - start_time
print(result['embs'], result['outputs'], elapsed_time.total_seconds() * 1000)

start_time = datetime.now()
# 可以传入save_dir参数,提取到的说话人embedding会存储在save_dir目录中
result = sv_pipeline([speaker1_a_wav], save_dir='savePath/')
elapsed_time = datetime.now() - start_time
print(result, elapsed_time.total_seconds() * 1000)

运行结果:

展望未来

CAM++模型的开发和发布标志着声音识别技术向更高效、更准确方向的重大进步。随着技术的持续进化和优化,未来说话人识别的应用场景将会更加广泛,包括但不限于安全验证、个性化服务和音频内容分析等领域。此外,随着人工智能技术在声音处理领域的深入应用,我们有理由期待,在不久的未来,高性能的说话人识别技术将在我们的生活中扮演更加重要的角色。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • CAM++模型概述
    • 模型架构
      • 模型性能
      • 腾讯云云服务器CVM购买
      • 环境配置
        • 安装conda
          • 安装模型
            • 测试代码:
              • 运行结果:
              • 展望未来
              相关产品与服务
              多因子身份认证
              多因子身份认证(Multi-factor Authentication Service,MFAS)的目的是建立一个多层次的防御体系,通过结合两种或三种认证因子(基于记忆的/基于持有物的/基于生物特征的认证因子)验证访问者的身份,使系统或资源更加安全。攻击者即使破解单一因子(如口令、人脸),应用的安全依然可以得到保障。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档