声纹识别
一、实验目的
1.了解语音声纹识别的基本原理。
2.熟悉基于深度学习的声纹识别的基本原理。
3.熟悉主流的深度学习声纹识别模型。
二、实验内容
1.算法原理
1.1基本描述
声纹识别(SpeakerRecognition),也称为说话人识别,有两类,即说话人辨认(SpeakerIdentification)和说话人确认(SpeakerVerification)。前者用以判断某段语音是若干人中的哪一个所说的,是“多选一问题;而后者用以确认某段语音是否是指定的某个人所说的,是“一对一判别问题。
从另一方面,声纹识别有文本相关的(Text-Dependent)和文本无关的(Text-Independent)两种。与文本有关的声纹识别系统要求用户按照规定的内容发音,每个人的声纹模型逐个被精确地建立,而识别时也必须按规定的内容发音,因此可以达到较好的识别效果,但系统需要用户配合,如果用户的发音与规定的内容不符合,则无法正确识别该用户。而与文本无关的识别系统则不规定说话人的发音内容,模型建立相对困难,但用户使用方便,可应用范围较宽。根据特定的任务和应用,两种是有不同的应用。
本实验基于深度学习EcapaTdnn模型实现了文本无关的声纹识别。
1.2声纹识别原理
语音信号通过音频采集设备进入系统后,首先进入预处理阶段。预处理包括端点检测和噪声消除等环节,端点检测环节对输入的音频流进行分析,自动删除音频中静音或非人声等无效部分,保留有效语音。噪声消除环节滤除背景噪声,满足用户在不同环境下使用需求。经过预处理后的语音信号进入特征提取阶段,从说话人的语音信号中提取出能够表征说话人特定器官结构或行为习惯的频谱特征参数。该特征参数对同一说话人具有相对稳定性,不随时间或环境变化而变化,对同一说话人的不同话语一致,具有不易模仿性和较强的抗噪性。提取到的个人声纹特征参数通过声纹识别系统的学习训练,生成用户专有的声纹模型。存储在声纹模型数据库中,与用户ID一一对应。
1.3EcapaTdnn介绍
EcapaTdnn模型以是一种添加掩码的数据增强算法(SpecAugment算法)实现数据增强,通过注意力统计池化计算加权平均和加权标准差,最终的输出由加权平均和加权标准差的向量串联得到。损失函数使用和人脸识别任务类似的加性角度间隔损失函数ArcFaceLoss。
声纹对比:模型输出音频的特征值,使用特征数据求音频和声纹之间的对角余弦值,得到的结果可以作为他们的相识度,根据这个相识度的阈值threshold判别是否是说话人。具体地,可以根据准确度的要求自定义阈值。
2.功能设计
2.1功能描述
AiNLP人工智能轻量化应用框架是一款面向于人工智能自然语言应用的开发框架,采用统一模型调用、统一硬件接口、统一算法封装和统一应用模板的设计模式,实现了嵌入式边缘计算环境下进行快速的应用开发和项目实施。
AiNLP为模型算法的调用提供RESTful调用接口,实时返回自然语言算法处理结果,同时通过物联网云平台的应用接口,实现与硬件的连接和互动,最终形成各色智联网产业应用。
AiNLP框架如下图所示:
三、实验步骤
1.工程部署
1.1硬件部署
1)准备人工智能边缘应用平台,给边缘计算网关正确连接Wi-Fi天线、麦克风(麦克风阵列或者Ai语音摄像头)、电源。
2)按下电源开关上电启动边缘计算网关,将启动ubuntu操作系统。
3)系统启动后,连接局域网内的Wi-Fi网络,记录边缘计算网关的IP地址,比如:192.168.100.200。
1.2工程部署
1)运行MobaXterm工具,通过SSH登录到边缘计算网关(参考附录2)。
2)在SSH终端创建实验工作目录,若文件夹已存在则跳过此步:
$mkdir-p~/ainlp-exp
3)通过SSH将本实验工程代码和ainlp工程包(DISK-AILab\02-软件资料\02-综合应用\ainlp.zip)上传到~/ainlp-exp目录下(文件的上传参考附录2)。
2.工程运行
1)在SSH终端输入以下命令运行实验工程:
3.声纹识别
1)进入实验后,在实验交互区会显示当前内置的声纹库。
在实验交互区右下角有“声纹注册”、“声纹识别”图标,点击“声纹注册”可进行录音(点击录音后,chrome浏览器会弹出提示使用麦克风的权限,需要点击“允许”继续),处于录音状态时,录音图标显示动态效果,提示“录音中”,对着麦克风(边缘网关摄像头内部集成了麦克风)进行说话录音,再次点击录音图标则完成录音,应用将会弹窗提示为