语音一次性密码认证系统的设计与开发
1 引言
随着全球业务的发展,远程工作和分布式团队的兴起,远程认证系统的开发和部署变得至关重要。语音一次性密码认证(VOA)系统就是这样一种提供两级认证的系统,它既验证说话者的身份,又验证所说的一次性密码(OTP)。虽然说话者识别(SR)和数字识别(DR)技术已经相当成熟,但在VOA系统开发方面的探索还比较有限。
1.1 VOA系统的优势
- 增强安全性 :利用个人语音的独特性,使未经授权的用户难以冒充他人。
- 易用性 :对于残疾用户或难以使用传统认证方法的用户特别有益。
- 广泛应用 :可应用于在线银行、远程工作站登录、考勤系统等多个领域。
1.2 本文的贡献
本文提出了一个基于说话者和语音表示的VOA系统框架,使用ECAPA - TDNN基于说话者的表示和wav2vec conformer基于数字的表示来执行VOA。同时,还对该系统在边缘设备上的部署进行了全面的性能分析。
2 语音识别技术的发展
在早期,SR和DR主要通过各种特征提取和建模技术进行探索。
2.1 特征提取技术
- 感知机制相关特征 :如Mel频率倒谱系数(MFCC)和感知线性预测(PLP),是基于语音的感知机制提出的。
- 生成机制相关特征 :线性预测倒谱系数(LPCC)、残差LPC和基于残差相位的特征,是针对语音的生成机制提出的。
在这些特征中,MFCC在数字和说话者识别任务中表现最为出色。
2.2 建模技术
- 说话者识别 :使用矢量量化(VQ)、高斯混合模型(GMM)和i - 向量进行建模。
- 数字识别 :主要使用GMM - 隐马尔可夫模型(GMM - HMM)。
然而,由于声学特征对设备和环境变化敏感,这些系统通常在受控环境中构建。
2.3 深度学习的应用
近年来,深度学习在语音识别领域得到了广泛应用。一些现有的工作包括使用深度神经网络 - 隐马尔可夫模型(DNN - HMM)、Deepspeech2、wav2vec - transformer和wav2vec - conformer模型进行语音识别任务。在说话者识别方面,提出了基于DNN - i - 向量系统、d - 向量、x - 向量和强调通道注意力、传播和聚合(ECAPA - TDNN)的x - 向量方法。
使用预训练的开源特定任务深度学习模型,放松了传统系统对特定录音设备和环境的限制。这些模型使用大量语音数据进行训练,即使在短语音时长的情况下,也能在说话者识别任务中取得较好的性能。
3 使用说话者和数字表示的动机
为了确定是否可以使用说话者和数字表示来执行VOA任务,我们进行了t - 分布式随机邻域嵌入(t - SNE)分布研究。
3.1 说话者表示
我们使用来自10个说话者的语音,每个说话者100个语音样本。通过提取滤波器组特征,并将其输入到在Voxceleb数据上训练的ECAPA - TDNN模型中,得到192维的说话者表示。将这些表示投影到二维平面上,发现说话者表示形成了明显的聚类,重叠较少。这表明可以使用ECAPA - TDNN基于说话者的表示来执行说话者识别任务。
3.2 数字表示
对于数字表示,我们使用在700小时印度英语数据上微调的W2V模型。将语音直接输入该模型,每20毫秒获得一次语音表示。对于每个数字语音,对这些表示进行统计池化得到数字表示。同样将数字表示投影到二维平面上,发现数字表示也形成了明显的聚类。这表明可以使用数字表示来执行OTP识别任务。
4 数据集详情
本文使用了两个数据库来开发VOA系统。
4.1 内部数据集
- 数据来源 :从印度理工学院达尔瓦德分校的学生中收集,共有50名说话者,其中47名男性和3名女性,平均年龄为20岁。
- 数据收集方式 :每个说话者提供4个会话,每个会话中说出数字0 - 9,每个数字后有停顿。收集后的数据被手动分割为每个数字对应的语音,称为DigitUtter - IITDH数据集。
- 数据可用性 :可在https://github.com/mcqueen444/DigitUtter - IITDH - dataset获取。
4.2 Kaggle MNIST数字数据集
- 数据来源 :包含60名说话者的语音记录,其中48名男性和12名女性,均为美国口音。
- 数据收集方式 :每个说话者贡献50个会话,用于发音数字0 - 9。
数据集详情总结如下表:
| 数据集 | 说话者数量 | 会话数量 | 数字范围 |
| ---- | ---- | ---- | ---- |
| 内部数据 | 50 | 4 | 0 - 9 |
| Kaggle数据 | 60 | 50 | 0 - 9 |
5 提出的VOA系统框架
提出的VOA系统由四个模块组成:OTP生成、说话者识别、OTP识别和决策逻辑。
5.1 OTP生成
使用DigitUtter - IITDH和Kaggle数据集生成1 - 4位不同长度的OTP。
-
DigitUtter - IITDH数据集
:对于固定长度为N位的OTP,生成所有可能的组合(即10^N)作为不同的OTP。将分割后的特定数字语音拼接在一起形成OTP语音。前三个会话的OTP语音用于训练,第四个会话用于测试。
-
Kaggle数据集
:为了使训练和测试语音的数量与DigitUtter - IITDH数据相同,从会话1 - 40中随机采样数字用于训练,从会话41 - 50中采样用于测试。
生成的OTP数据集总结如下表:
| OTP中的数字数量(N) | 每个说话者每个会话的语音数量 | 每个说话者的总训练语音数量 | 每个说话者的总测试语音数量 |
| ---- | ---- | ---- | ---- |
| 1 | 10 | 30 | 10 |
| 2 | 100 | 300 | 100 |
| 3 | 1000 | 3000 | 1000 |
| 4 | 10000 | 30000 | 10000 |
5.2 说话者识别
在生成OTP语音后,从ECAPA - TDNN模型中提取说话者表示。
-
ECAPA - TDNN模型
:以从语音信号中提取的滤波器组特征(帧大小为0.025秒,帧移为0.01秒)为输入,经过多个TDNN层、一个时间池化层和一些全连接层进行训练,用于对说话者进行分类。训练后,分离分类器层,将其用作说话者表示提取器。
-
说话者表示的应用
:提取的说话者表示被称为x - 向量,通过两种方式用于说话者识别任务:
-
基于模型的方法
:训练分类器,如逻辑回归(LR)和支持向量机(SVM)。
-
无模型的方法
:使用简单的余弦距离(CD)进行比较。
mermaid流程图如下:
graph LR
A[语音信号] --> B[提取滤波器组特征]
B --> C[ECAPA - TDNN模型]
C --> D[提取说话者表示(x - 向量)]
D --> E[基于模型方法(LR、SVM)]
D --> F[无模型方法(CD)]
以上就是VOA系统的上半部分内容,包括系统的背景、语音识别技术的发展、使用说话者和数字表示的动机、数据集详情以及提出的VOA系统框架中的OTP生成和说话者识别模块。在下半部分,将继续介绍OTP识别、决策逻辑以及实验结果等内容。
6 OTP识别
OTP识别模块负责将用户说出的语音转换为对应的数字序列。在本系统中,使用了基于wav2vec的conformer模型来完成这一任务。
6.1 wav2vec conformer模型
wav2vec conformer模型是基于信号级别的语音处理模型,它可以直接处理语音信号。在本工作中,使用了在700小时印度英语数据上微调的该模型。将用户说出的OTP语音直接输入到该模型中,模型会在每20毫秒输出语音表示。对于每个数字语音,对这些表示进行统计池化,从而得到对应的数字表示。
6.2 规则包装算法
为了提高OTP识别的准确性,还使用了一个规则包装算法对模型的输出进行后处理。这个算法会根据一些预设的规则,对模型识别出的数字序列进行修正和优化。例如,如果模型识别出的数字序列中出现了不合理的组合,算法会尝试进行调整。
mermaid流程图如下:
graph LR
A[OTP语音] --> B[wav2vec conformer模型]
B --> C[输出语音表示]
C --> D[统计池化]
D --> E[得到数字表示]
E --> F[规则包装算法]
F --> G[最终OTP识别结果]
7 决策逻辑
决策逻辑模块根据说话者识别和OTP识别的结果,决定是否给予用户访问权限。具体逻辑如下:
- 如果说话者识别正确,并且OTP识别也正确,那么系统给予用户访问权限。
- 如果说话者识别错误,或者OTP识别错误,那么系统拒绝用户访问,并要求用户再次尝试。
mermaid流程图如下:
graph LR
A[说话者识别结果] --> C{判断}
B[OTP识别结果] --> C
C -- 两者都正确 --> D[给予访问权限]
C -- 有一个错误 --> E[拒绝访问,要求再次尝试]
8 实验结果
为了评估所提出的VOA系统的性能,进行了一系列实验。实验使用了DigitUtter - IITDH数据集,评估指标为识别准确率。
8.1 说话者识别准确率
使用ECAPA - TDNN基于说话者的表示进行说话者识别,在DigitUtter - IITDH数据集上的识别准确率达到了96.75%。
8.2 OTP识别准确率
使用wav2vec conformer基于数字的表示进行OTP识别,在DigitUtter - IITDH数据集上的识别准确率为83.25%。
8.3 组合VOA系统准确率
将说话者识别和OTP识别结合起来,整个VOA系统在DigitUtter - IITDH数据集上的识别准确率为78.92%。
实验结果总结如下表:
| 任务 | 识别准确率 |
| ---- | ---- |
| 说话者识别 | 96.75% |
| OTP识别 | 83.25% |
| 组合VOA系统 | 78.92% |
8.4 边缘设备部署性能分析
为了将VOA系统部署在边缘设备上,还进行了全面的性能分析。将系统从高端服务器类机器部署到嵌入式边缘设备上,实验结果表明:
- 在服务器类系统上,一次OTP认证的平均推理时间为0.05秒。
- 在边缘设备上,一次OTP认证的平均推理时间为3.14秒。
9 总结与展望
9.1 总结
本文提出了一个基于说话者和语音表示的VOA系统框架,使用ECAPA - TDNN基于说话者的表示和wav2vec conformer基于数字的表示来执行VOA。通过在DigitUtter - IITDH数据集上的实验,验证了该系统在说话者识别、OTP识别和组合VOA系统方面都取得了较好的性能。同时,对系统在边缘设备上的部署进行了性能分析,为实际应用提供了参考。
9.2 展望
虽然本文的VOA系统取得了一定的成果,但仍有一些方面可以进一步改进和研究:
-
提高识别准确率
:可以探索更先进的模型和算法,进一步提高说话者识别和OTP识别的准确率。
-
优化边缘设备性能
:研究如何优化系统在边缘设备上的性能,减少推理时间,提高系统的实时性。
-
拓展应用场景
:将VOA系统应用到更多的领域,如智能家居、移动支付等,进一步发挥其优势。
超级会员免费看
732

被折叠的 条评论
为什么被折叠?



