声纹识别(说话人识别)技术

作者:Skye_Zhao
本文为作者原创,转载请注明出处:https://www.cnblogs.com/ytxwzqin/p/9369105.html


说话人识别(Speaker Recognition,SR),又称声纹识别(Voiceprint Recognition,VPR),顾名思义,即通过声音来识别出来“谁在说话”。语音识别(Automatic Speech Recognition,ASR)是通过声音识别出来“在说什么”。为了简便,后文统一称为VPR。

说话人识别(或声纹识别)是根据语音信号中的说话人个性信息来识别说话人身份的一项生物特征识别技术。

传统的VPR多是采用MFCC特征以及GMM模型框架,也取得了非常优秀的结果,不再赘述。后续也出现了基于i-ivector,深度神经网络的等更多的算法框架。

基础

声纹识别的理论基础是每一个声音都具有独特的特征,通过该特征能将不同人的声音进行有效的区分。

这种独特的特征主要由两个因素决定,第一个是声腔的尺寸,具体包括咽喉、鼻腔和口腔等,这些器官的形状、尺寸和位置决定了声带张力的大小和声音频率的范围。因此不同的人虽然说同样的话,但是声音的频率分布是不同的,听起来有的低沉有的洪亮。每个人的发声腔都是不同的,就像指纹一样,每个人的声音也就有独特的特征。

第二个决定声音特征的因素是发声器官被操纵的方式,发声器官包括唇、齿、舌、软腭及腭肌肉等,他们之间相互作用就会产生清晰的语音。而他们之间的协作方式是人通过后天与周围人的交流中随机学习到的。人在学习说话的过程中,通过模拟周围不同人的说话方式,就会逐渐形成自己的声纹特征。

因此,理论上来说,声纹就像指纹一样,很少会有两个人具有相同的声纹特征。

美国研究机构已经表明在某些特点的环境下声纹可以用来作为有效的证据。并且美国联邦调查局对2000例与声纹相关的案件进行统计,利用声纹作为证据只有0.31%的错误率。目前利用声纹来区分不同人这项技术已经被广泛认可,并且在各个领域中都有应用。

目前来看,声纹识别常用的方法包括模板匹配法、最近邻方法、神经元网络方法,VQ聚类法等。

语谱图是声音信号的一种图像化的表示方式,它的横轴代表时间,纵轴代表频率,语音在各个频率点的幅值大小用颜色来区分。说话人的声音的基频及谐频在语谱图上表现为一条一条的亮线,再通过不同的处理手段就可以得到不同语谱图之间的相似度,最终达到声纹识别的目的。

目前公安部声纹鉴别就采用类似方法,而且语谱图还是用的灰度来表示。主要抽取说话人声音的基音频谱及包络、基音帧的能量、基音共振峰的出现频率及其轨迹等参数表征,然后再与模式识别等传统匹配方法结合进行声纹识别。

美国和国内都有不少企业生产声纹识别的设备,公安部为采购这些设备还正式颁布了《安防声纹识别应用系统技术要求》的行业标准。

但是这种方法是一种静态检测的方法,存在很大的弊端,实时性不好,动态检测声纹的需求实际上更大。

经过数十年的研究,说话人识别系统取得了不俗的性能表现,现已被广泛应用于包括安防、金融、社保等不同领域中。然而,受各种不确定性因素的制约,当前说话人识别系统仍难言可靠!这些不确定性因素包括非限定的自由文本、各种各样的传输信道、复杂多变的背景噪音、说话人自身的生理波动等等。这些不确定性因素对说话人识别系统提出了巨大的挑战。

原理特性

典型的声纹识别模型可以分为两种:template model和 stochastic model,即模板模型和随机模型。也称作非参数模型和参数模型。

模板模型(非参数模型)将训练特征参数和测试的特征参数进行比较,两者之间的失真(distortion)作为相似度。例如VQ(Vector quantization矢量量化)模型和动态时间规整法DTW(dynamic time warping)模型。

DTW 通过将输入待识别的特征矢量序列与训练时提取的特征矢量进行比较,通过最优路径匹配的方法来进行识别。而 VQ 方法则是通过聚类、量化的方法生成码本,识别时对测试数据进行量化编码,以失真度的大小作为判决的标准。

随机模型(参数模型)用一个概率密度函数来模拟说话人,训练过程用于预测概率密度函数的参数,匹配过程通过计算相应模型的测试语句的相似度来完成。(参数模型采用某种概率密度函数来描述说话人的语音特征空间的分布情况,并以该概率密度函数的一组参数作为说话人的模型。)例如(GMM和HMM)高斯混合模型和隐马尔科夫模型。

模型和特征

参考:声纹识别算法、资源与应用(一) - 知乎 (zhihu.com)

Speaker recognition以2012年为分水岭,由statistics-based machine learning,跨到了以deep learning为主线的算法。随后,bottleneck feature、d-vector、x-vector、j-vector等DNN-based的系统陆续出现,随后attention mechanism、Learning to rank等思想被用于改良训练过程。

End-to-End Speaker Recognition往往是data-driven的,需要海量marked data才能取得预期效果。无论是Google d-vector,还是Daniel x-vector、Baidu Deep Speaker,其迭代速度和有效利用data的程度,仍然有较大改进空间。

GMM-UBM

高斯混合模型仍然是与文本无关的说话人识别中效果最好也是最常用的模型之一,因为在说话人识别系统中,如何将语音特征很好地进行总结及测试语音如何与训练语音进行匹配都是非常复杂难解决的问题,而GMM将这些问题转为对于模型的操作及概率计算等问题,解决了这些问题。

高斯混合模型可以逼近任何一个连续的概率分布,因此它可以看做是连续型概率分布的万能逼近器。之所有要保证权重的和为1,是因为概率密度函数必须满足(+∞,-∞)在内的积分值为1。

而GMM-UBM系统利用大量的说话人语音训练出一个全局背景模型(UBM),因此在较小的训练集情况下仍然可获得较为精确的模型,识别性能及鲁棒性都很好。

虽然GMM模型作为一种通用的概率模型,对说话人识别的效果很好,但是实际上,我们经常会遇到训练语音比较短、或者语料比较少的情况,这样就不能训练出好的GMM模型,从而使识别率变低。所以在GMM模型的基础上,Reynolds等人提出了高斯混合模型-全局背景模型(GMM-UBM)。

所谓全局背景模型,就是采用许多人的语音,包括所有目标的语音一起训练而成的一个高阶通过利用UBM模型,由于训练语音有限而不能覆盖到的所有说话人特征的部分就可以通过UBM来自适应得到。UBM模型就是一个大型的GMM模型,所以UBM模型也可以利用EM算法来训练,并且UBM模型只需要训练一次,在后面便可反复利用。在训练过程中,通过MAP自适应,可得到毎个说话人的GMM模型。加入UBM后的系统流程如下图所示。

在计算每个说话人的声纹模型时,我们采用最大后验概率MAP算法。

实验表明,在其他参数都相同的条件下,采用GMM-UBM模型进行识别的结果要优于普通的GMM模型,并且在实验过程中还可发现,虽然训练UBM模型较为费时但自适应时却非常迅速,总体时间比依次训练GMM模型所花费的时间要少。

GMM模型是一个有监督的训练过程。它的基本思想就是利用已知的样本结果来反推最有可能(也就是最大概率)导致该个结果的参数值,在这个原则之下,GMM通常采用最大期望算法(EM)模型进行迭代直到收敛来确定参数。

对于高斯混合模型,也可以使用最大似然估计确定模型的参数,但每个样本属于哪个高斯分布是未知的,而计算高斯分布的参数时需要用到这个信息;反过来,样本属于哪个高斯分布又是由高斯分布的参数确定的。因此存在循环依赖,解决此问题的办法是打破此循环依赖,从高斯分布的一个不准确的初始猜测值开始,计算样本属于每个高斯分布的概率,然后又根据这个概率更新每个高斯分布的参数。这就是EM算法求解时的做法。

EM算法是一种迭代算法,因为现实的数据经常会有一些含有隐变量或者数据不完整等问题,很难求出极大似然函数,所以利用EM法来解决。

TVM-i-vector

说话人识别中的经典方法是i-vector,其建模方式称为全局差异空间建模(Total Variability Modeling, TVM),采用该方法提取的i-vector记为TVM-i-vector。

在基于TVM-i-vector的声纹识别系统中,我们一般可以分为三个步骤。第一步是统计量的提取,第二步是提取i-vector,第三步是进行信道补偿技术。统计量的提取是指将语音数据的特征序列,比如MFCC特征序列,用统计量来进行描述,提取的统计量属于高维特征,然后经过TVM建模,投影至低维空间中得到i-vector。

在TVM-i-vector建模中,统计量的提取是以UBM为基础的,根据UBM的均值及方差进行相应统计量的计算。

基于DNN的说话人识别的基本思想是取代TVM中的UBM产生帧级后验概率。即采用DNN进行帧级对齐的工作,继而计算训练数据的统计量,进行全局差异空间的训练以及i-vector的提取。

最近使用神经网络来进行声纹识别的论文已经改进了传统的i-vector方法(参考Interspeech教程的原始论文或者幻灯片)。i-vector方法认为说话内容可以被分为两个部分,一个部分依赖于说话者和信道可变性,另一个部分依赖于其它的相关因素。i-vector声纹识别是一个多步过程,其涉及到使用不同说话者的数据来估计一个通用的背景模型(通常是高斯混合模型),收集充分的统计数据,提取i-vector,最后使用一个分类器来进行识别任务。

一些论文用神经网络代替了i-vector流水线的方法。其它研究者要么训练了一个文本相关(使用者必须说同样的话)的端对端语者识别系统,要么训练了文本独立(这个模型与说话内容不相关)的端对端语者识别系统。

目前没有详细证据证明深度神经网络或组合i-vector的深度神经网络性能一定优于i-vector方法,可能原因是说话人识别中信道干扰较多,难以搜集足够数据训练深度神经网络。

i-vector

传统的联合因子分析建模过程主要是基于两个不同的空间:由本征音空间矩阵定义的说话人空间,由本征信道空间矩阵定义的信道空间。受联合因子分析理论的启发,Dehak提出了从GMM均值超矢量中提取一个更紧凑的矢量,称为i-vector。这里的i是身份(Identity)的意思,出于自然的理解,i-vector相当于说话人的身份标识。

i-vector方法采用一个空间来代替这两个空间,这个新的空间可以成为全局差异空间,它即包含了说话者之间的差异又包含了信道间的差异。所以i-vector的建模过程在GMM均值超矢量中不严格区分话者的影响和信道的影响。这一建模方法的动机来源于Dehak的又一研究: JFA建模后的信道因子不仅包含了信道效应也夹杂着说话人的信息。

现在,主要用的特征是i-vector。这是通过高斯超向量基于因子分析而得到的。是基于单一空间的跨信道算法,该空间既包含了说话人空间的信息也包含了信道空间信息。相当于用因子分析方法将语音从高位空间投影到低维。

可以把i-vector看做是一种特征,也可以看做是简单的模型。最后,在测试阶段,我们只要计算测试语音i-vector和模型的i-vector之间的consine距离,就可以作为最后的得分。这种方法也通常被作为基于i-vector说话人识别系统的基线系统。

数据之间都具有相关性,但绝对的独立同分布的假设又是一个过于强的假设。
09年,Kenny的学生,N.Dehak,提出了一个更加宽松的假设:既然声纹信息与信道信息不能做到完全独立,那干脆就用一个超向量子空间对两种信息同时建模;即正交独立性没有办法满足,那我们就干脆用一个子空间同时描述说话人信息和信道信息。 
这时候,同一个说话人,不管怎么采集语音,采集了多少段语音,在这个子空间上的映射坐标都会有差异,这也更符合实际的情况。这个即模拟说话人差异性又模拟信道差异性的空间称为全因子空间(Total Factor Matrix),每段语音在这个空间上的映射坐标称作身份向量(Identity Vector, i-vector),i-vector向量通常维度也不会太高,一般在400-600左右。 
i-vector的出现使得说话人识别的研究一下子简化抽象为了一个数值分析与数据分析的问题:任意的一段音频,不管长度怎样,内容如何,最后都会被映射为一段低维度的定长i-vector。
我们只需要找到一些优化手段与测量方法,在海量数据中能够将同一个说话人的几段i-vector尽可能分类得近一些,将不同说话人的i-vector尽可能分得远一些。
Dehak在实验中还发现i-vector具有良好的空间方向区分性,即便上SVM做区分,也只需要选择一个简单的余弦核就能实现非常好的区分性。
截至今日,i-vector在大多数情况下仍然是文本无关声纹识别中表现性能最好的建模框架,学者们后续的改进都是基于对i-vector进行优化,包括线性区分分析(Linear Discriminant Analysis, LDA),基于概率的线性预测区分分析(probabilistic linear discriminant analysis,PLDA)甚至是度量学习(Metric Learning)等。

虽然i-vector在文本无关声纹识别上表现非常好,但在看似更简单的文本相关声纹识别任务上,i-vector表现得却并不比传统的GMM-UBM框架更好。

因为i-vector简洁的背后是它舍弃了太多的东西,其中就包括了文本差异性,在文本无关识别中,因为注册和训练的语音在内容上的差异性比较大,因此我们需要抑制这种差异性;但在文本相关识别中,我们又需要放大训练和识别语音在内容上的相似性,这时候牵一发而动全身的i-vector就显得不是那么合适了。

在文本相关识别应用中,安全性最高的仍然是随机数字声纹识别。

j-vector [文本相关]

提取i-vector依赖于较长(数十秒到数分钟)的语音,而Text-Dependent Speaker Verification任务中,语音很短(甚至只有1秒左右),所以i-vector不适用于Text-Dependent Speaker Verification。Text-Dependent Speaker Verification属于Multi-task,既要验证身份,又要验证语音内容。j-vector就是为了解决Text-Dependent Speaker Verification而提出的,如图所示,j-vector从Last Hidden Layer提取。由INTERSPEECH 2015文章《Multi-task learning for text-dependent speaker verificaion》提出。

论文中指出,相比于Cosine Similarity、Joint PLDA,使用Joint Gaussian Discriminant Function作为back-end时,实验效果最佳。

d-vector

ICASSP 2014年的论文《Deep neural networks for small footprint text-dependent speaker verification 》研究了深度神经网络(DNNs)在小型文本相关的说话者验证任务的应用。在开发阶段,DNN经过训练,可以在帧级别对说话人进行分类。在说话人录入阶段,使用训练好的的DNN用于提取来自最后隐藏层的语音特征。这些说话人特征或平均值,d-vector,用作说话人特征模型。在评估阶段,为每个话语提取d-vector与录入的说话人模型相比较,进行验证。实验结果表明基于DNN的说话人验证与常用的i-vector相比,系统在一个小的声音文本相关的说话人验证任务实现了良好的性能表现。此外,基于DNN的系统对添加的噪声更加稳健,并且在低错误拒绝操作点上优于i-vector系统。最后,组合系统在进行安静和嘈杂的条件分别优于i-vector系统以14%和25%的相对错误率(EER)。参考博客

简而言之,DNN训练好后,提取每一帧语音的Filterbank Energy 特征作为DNN输入,从Last Hidden Layer提取Activations,L2正则化(对于两个向量的l2-norm进行点积,就可以得到这两个向量的余弦相似性),然后将其累加起来,得到的向量就被称为d-vector。如果一个人有多条Enroll语音,那么所有这些d-vectors做平均,就是这个人的Representation。

因为d-vector是从Last Hidden Layer提取的,通过移除Softmax Layer,可以缩减Model Size。这也可以在不改变Model Size的情况下,在训练过程中使用更多的说话人数据来做训练(因为Softmax Layer被移除了,不用考虑Softmax Layer的节点数)。

x-vector

x-vector的训练速度很快,识别率也不错。参考论文《X-VECTORS: ROBUST DNN EMBEDDINGS FOR SPEAKER RECOGNITION》【ICASSP 2018】

文章使用数据增广来提高深度神经网络(DNN)embedding对于说话人识别的性能。经过训练以区分说话者的DNN将可变长度的语料映射到我们称为x-vector的固定维度embedding。

得益于其网络中的statistics pooling层,X-VECTORS可接受任意长度的输入,转化为固定长度的特征表达;此外,在训练中引入了包含噪声和混响在内的数据增强策略,使得模型对于噪声和混响等干扰更加鲁棒。

之前的研究发现,embedding比i-vector更好地利用大规模训练数据集。然而,收集大量用于训练的标记数据可能具有挑战性,因此使用数据增广,包括增加噪声和混响,作为一种廉价的方法来增加训练数据的数量并提高鲁棒性。

将x-vector与wild和NIST SRE 2016 Cantonese中的i-vector基线进行比较。我们发现虽然增强在PLDA分类器中是有益的,但它对于i-vector提取器没有帮助。然而,由于其受监督的训练,x-vector DNN有效地利用了数据增加。因此,x-vector在评估数据集上实现了卓越的性能。

下图中的左图为X-vector的网络结构,前5层是帧级别,然后做了池化后插入两层段级别的embedding,使用segment6这层作为提取x-vector特征,该特征可以当做i-vector进行plda打分,最后一层是softmax层对于训练集中所有的说话人目标。比起BNF特征提取要容易的多,BNF需要训练基于音素的声学模型,而且提取后的特征又需要进行UBM-i-vector过程,相当耗时。

参考论文《A Study on Pairwise LDA for X-vector based Speaker Recognition》,上图中的右图展示了x-vector的提取流程图。

当前(2019-2020年)属于embedding的时代,尤其是x-vector已经成为了几乎所有的Challenges和papers的新baseline。ASV spoof 2019上的ASV部分默认使用x-vector进行。

损失函数

Triplet-Loss

参考:声纹识别算法、资源与应用(三) - 知乎 (zhihu.com)

2015年,谷歌的FaceNet使用Triplet Loss在大规模人脸识别中取得了很大的成功。受此启发,在声纹识别领域,也有不少的文章使用Triplet loss。它的优点是,直接使用embeddings之间的相似度作为优化的成本函数(Loss Function),最大化【anchor】和【positive】的相似度,同时最小化【anchor】和【negative】的相似度。这样,在提取了说话者的embedding之后,声纹验证和声纹识别任务就可以简单地通过相似度计算实现。

Triplet Loss基本思路是:构造一个三元组,由anchor(锚,可以理解为一个参考语音)、positive(相对anchor而言)和negative(相对anchor而言)组成。然后,用大量标注好的三元组作为网络输入,来学习DNN参数。其中,anchor和positive是来自于同一个人的不同声音,anchor和negative是来自不同的人的声音。通过DNN获取各自的embeddings后,计算anchor和positive的相似度,以及anchor和negative的相似度,然后最大化ap(anchor与positive)的相似度,最小化an(anchor与negative)的相似度。

计算相似度有两种方法,一种是cosine相似度,值越大,相似度越高,正如Baidu Deep Speaker所采用的;一种是使用欧几里得距离,和FaceNet所使用的一样,值越小,相似度越高。

GE2E-loss

参考:<解析>speaker verification模型中的GE2E损失函数 - dynmi - 博客园 (cnblogs.com)

GE2E loss 全称为Generalized end to end loss function。它聚焦于embedding的差异性,比TE2E(tuple-based endto-end loss function)损失函数更有效。

Generalized end-to-end (GE2E) loss是谷歌在论文《Wan L, Wang Q, Papir A, et al. 'Generalized End-to-End Loss for Speaker Verification', ICASSP 2018》中提出的新损失函数,还是比较有创意的。与TE2E loss和Triplet loss相比,它每次更新都和多个人相比,因此号称能使训练时间更短,说话人验证精度更高。

其基本思路如下图所示,挑选

个人,每人

句话,通过图示的顺序排列组成Batch,接着通过LSTM神经网络提取

句话的embeddings,然后求取每个embedding和每个人平均embedding的相似度,得到一个相似度矩阵。最后通过最小化GE2E loss使得相似矩阵中有颜色的相似度尽可能大,灰色的相似度尽可能小,即本人的embedding应该和本人每句话的embedding尽可能相近,和其他人的embedding尽可能远离,从而训练LSTM网络。

GE2E系统架构(不同的颜色表示不同的说话者)

此外,为了训练的稳定性,论文中建议在计算本人和本人某句话相似度的时候,不要让该句话的embedding来参与计算本人的embedding。

一些总结

上述方法中,GMM-UBM和GMM-i-vector都属于统计模型;d-vector和x-vector属于深度学习方法。

d-vector(深度神经网络最后一个隐藏层作为embeddings特征)、x-vector(从TDNN网络中提取embeddings特征)。

i-vector和x-vector都可以在kaldi中找到相关实验。

知乎PUePN】GMM-UBM, i-vector, x-vector都是针对文本无关说话人识别提出来的,他们都有normalize phoneme 的隐式操作(average, pooling等等)。但是我们发现在文本相关任务上表现也还ok,但是还ok的前提是我们限定了训练数据,或者至少限定了plda的数据是文本相关的。
(0)

相关推荐

  • NLP新宠——浅谈Prompt的前世今生

    © 作者|闵映乾 机构|中国人民大学信息学院硕士 研究方向 | 自然语言处理 本文主要介绍Prompt的相关研究进展,文章也同步发布在AI Box知乎专栏(知乎搜索 AI Box专栏),欢迎大家在知乎 ...

  • OpenCV深度学习人脸识别示例——看大佬如何秀恩爱

    PyImageSearch博主Adrian Rosebrock昨日发表博文,展示如何使用OpenCV的深度学习工具在小库上进行人脸识别.昨天是我们中国人的传统佳节--中秋节, Adrian推送博文时也 ...

  • 贝壳用户偏好挖掘的思考与实践

    文章作者:刘雷@贝壳找房 内容来源:贝壳产品技术 1. 背景 1.1 什么是用户偏好挖掘 用户偏好,即对用户内在需求的具体刻画.通过用户的历史行为和数据,对用户进行多角度全方位的刻画与描述,利用统计分 ...

  • 一文让你掌握22个神经网络训练技巧

    作者丨匡吉 来源丨深蓝学院 编辑丨极市平台 极市导读 在神经网络训练过程中,本文给出众多tips可以更加简单方便的加速训练网络.这些tips作为一些启发式建议,让大家更好理解工作任务,并选择合适的技术 ...

  • 中国声纹识别产业发展白皮书 2.0 (精华版)

    声纹识别,生物识别技术的一种,也称为说话人识别,包括说话人辨认和说话人确认.声纹识别就是把声信号转换成电信号,再用计算机进行识别.不同的任务和应用会使用不同的声纹识别技术,如缩小刑侦范围时可能需要辨认 ...

  • 5,骨声纹识别

    骨声纹识别 骨声纹识别 通过耳机内的骨声纹传感器,检测并认证机主的语音信息(声纹信息和语言命令词等),可快捷解锁手机屏幕.唤醒智慧语音.或调出支付界面. 使用此功能前,请将手机与相应的蓝牙耳机连接. ...

  • 滴滴发来人才通缉令,寻求声纹识别工程师一名! | 大数据周聘汇

    数据猿导读 本周的[大数据周聘汇]中有浪潮集团.北京嘀嘀无限科技发展有限公司.微诺时代(北京)科技股份有限公司三家公司的软文推手.声纹识别工程师和大数据工程师三个岗位. 作者 | abby 1 浪潮集 ...

  • 对话分音塔科技关磊:声纹识别智能测温门禁系统的首创者,用AI助力防疫

    近日,北京海淀区部分写字楼和小区,采用了北京分音塔科技首创的"声纹识别智能测温门禁系统".用户不用去口罩,一句话验证身份,解决了人脸识别系统下戴口罩身份认证的难题.除此之外,该系统 ...

  • 主打声纹识别!国美 Fenmmy Note 手机正式发布

    5 月 28 日,正如此前预告的那般,国美手机在北京正式发布了新款手机, Fenmmy Note.虽然名字很洋气也很长,但这只是一款千元档手机,主打高性价比入门市场.而这款 Fenmmy Note,也 ...

  • 设备运维管理的人工智能黑科技:声纹识别

    国家电网公司在人工智能方向上研究攻关一直是重点投入,设备运维管理是人工智能应用的核心领域之一,涉及图像识别.视频分析.声纹识别.知识图谱.数据智能等多个方面. 声纹识别可以解决那些方面的问题呢?变电设 ...

  • Redmi小爱音箱Play发布:支持声纹识别,79元起

    在发布新款笔记本产品之后,红米发布了旗下首款智能音箱产品Redmi小爱音箱Play,采用了1.75英寸扬声器单元,U型风管设计,350cc大音腔:最新一代蓝牙Mesh网关,支持智能门锁.灯泡搭配:内置 ...

  • 华为Mate 20 Pro迎来解锁新姿势,骨声纹识别你听过吗?

    双十一好不容易抢购回来的华为Mate 20 Pro今天迎来了一个小更新,不过听起来却充满了"黑科技",就是正式支持FreeBuds 2 Pro无线耳机的骨声纹解锁功能.据说是是华为 ...

  • 古人没有指纹识别这项技术,却总喜欢签字画押,只是装个样子吗?

    随着科技的发展,指纹识别早就不是什么新鲜的技术了,任何东西上都可能会使用指纹识别的技术,比较常见的有手机和门等等. 有人想要问了,为什么非要用指纹呢?指纹是人类手指上由凹凸皮肤所形成的纹路,指纹能够让 ...