基于语音的生物认证方法及设备
技术领域
本发明涉及用户认证,并且具体涉及一种基于语音的生物认证方法及设备。
背景技术
随着技术的发展,用户在工作、生活中需要进行大量基于通信、互联网的活动,为了保障用户活动的安全性,通常都需要进行用户认证。
密码作为一种传统的认证方式,存在着容易被破解、丢失或遗忘的缺点。为了提高密码认证的安全性,在台式机或者笔记本上还可以用U盾来保证安全性,但这种方式难以应用在手持移动终端或者呼叫中心中。更为重要的是,前述方式的人身关联性低,非法获取上述信息的人容易被当作是用户本人。目前,很多场合都需要确认是用户本人的操作,为了提高用户认证的人身关联性,指纹识别、虹膜检测、人脸识别以及声音识别等生物特征认证方式得到了广泛的应用与发展。
说话人识别是当前生物信息认证方式中的一种主流方式,通常包括文本相关(Text dependent)以及文本无关(Text independent)两种声纹识别方式,并且,声纹识别通常也都包括训练(enrollment)、校验(verification)两个步骤。
在文本相关的声纹验证中,在训练中说的什么语音片段,校验的时候也必须说相同的语音片段。该种方式准确率很高,可达到99%以上,并且训练所用的语音片段只需几秒钟即可,应用方便,是一种广泛采用的声音认证方式。但是由于始终说的都是训练集中的几句话,而且声音是公开的,很容易被录音窃取后通过播放的方式欺骗认证***。
在文本无关型的声纹验证中,校验的时候可以说和训练不一样的文本。采用该种方式在认证时提出动态问题可以解决录音欺骗的问题,但其准确率低,通常只能达到70%左右,还无法完全进入实用阶段,特别是在银行等需要高准确率的用户认证领域中,并且,训练时要求用户至少说出几十秒的内容,使用不便。因此,在实际应用中,文本无关型的声纹验证方式通常要和其他的生物特征认证方式共同使用,很难作为一种独立的检测方式,由此也限制了其使用的范围。
综上可见,现有技术仍然存在着缺陷,迫切的需要一种准确率高的防止录音欺骗的语音验证方案。
发明内容
鉴于以上问题而提出了本发明。本发明的一个目的在于提供一种准确率高的防止录音欺骗的语音验证方案。
根据本发明的一个方面,提供了一种用户认证的方法,所述方法包括:向所述用户发送问题提示,所述问题提示要求用户说出语音片段以及动态问题的答案,所述语音片段用于在认证之前训练出文本相关的说话人识别模型;响应于接收所述语音回答,从述语音回答中切分出所述语音片段部分以及动态问题答案部分;根据所述文本相关的说话人识别模型对所述语音片段部分进行校验;对所述动态问题答案部分进行答案检验;验证所述语音回答中所述语音片段以及动态问题答案之间的边界平滑度;根据所述声纹校验、答案验证以及边界平滑度进行所述用户认证。。
根据本发明的另一个方面,提供了一种用户认证的设备,所述设备包括:提示装置,配置为向所述用户发送问题提示,所述问题提示要求用户说出语音片段以及动态问题的答案,所述语音片段用于在认证之前训练出文本相关的说话人识别模型;切分装置,配置为响应于接收所述语音回答,从述语音回答中切分出所述语音片段部分以及动态问题答案部分;语音片段检验装置,配置为根据所述文本相关的说话人识别模型对所述语音片段部分进行校验;动态问题检验装置,配置为对所述动态问题答案部分进行答案检验;边界检验装置,配置为验证所述语音回答中所述语音片段以及动态问题答案之间的边界平滑度;认证结果生成装置,配置为根据所述声纹校验、答案验证以及边界平滑度进行所述用户认证。在根据本发明上述方面的方法和设备中,根据检测边界处的平滑程度,能够分辨出语音回答是否涉及录音欺骗。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了适于用来实现本发明实施方式的示例性计算机***/服务器12的框图。
图2是示出根据本发明实施例的用户认证的方法的流程图。
图3示出了基于能量的边界平滑度检测实施例。
图4、图5示出了基于基音频率(pitch)的边界平滑度检测实施例。
图6示出了一个实施例中生成问题的具体步骤。
图7是示出根据本发明实施例的用户认证设备的框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
所属技术领域的技术人员知道,本发明可以实现为***、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“***”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照本发明实施例的方法、装置(***)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instruction means)的制造品(manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
图1示出了适于用来实现本发明实施方式的示例性计算机***/服务器12的框图。图1显示的计算机***/服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图1所示,计算机***/服务器12以通用计算设备的形式表现。计算机***/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,***存储器28,连接不同***组件(包括***存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,***总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及***组件互连(PCI)总线。
计算机***/服务器12典型地包括多种计算机***可读介质。这些介质可以是任何能够被计算机***/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
***存储器28可以包括易失性存储器形式的计算机***可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机***/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机***存储介质。仅作为举例,存储***34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机***/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机***/服务器12交互的设备通信,和/或与使得该计算机***/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机***/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机***/服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机***/服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
下面,将参照图2来描述根据本发明实施例的户认证方法。
如图2所示,在步骤201中,向所述用户发送问题提示,所述问题提示要求用户说出语音片段以及动态问题的答案,所述语音片段具有在认证之前训练出的文本相关的说话人识别模型。
应用动态问题,用户在进行认证时才知道需要回答什么内容,可在一定程度上防止非法用户提前获知需要进行录音的内容。动态问题的种类不限,只要用户能够通过语音进行回答即可,本领域技术人员可根据具体的情况在任何现有的问题中进行选择。
语音片段是用户进行语音认证注册时所说的话,可以是任何类型的字、词或者句子,用于在认证之前训练出文本相关的说话人识别(Speaker verification)模型。
在训练阶段,如何根据用户的语音片段训练出文本相关的说话人识别模型是成熟的现有技术,申请人不再赘述其具体的实现细节。语音片段可以是一个或者多个,每个语音片段都有对应的文本相关的说话人识别模型,并且预先存储。
可采用任何现有的文本相关的说话人识别技术确定文本相关的说话人识别模型。在一个实施例中可以采用模板匹配法,即在训练过程中从说话人所说的作为训练语句的语音片段中提取出能够描述该说话人特性的特征矢量,形成特征矢量序列作为所述文本相关的说话人识别模型,还可对其进行优化,求取一个特征矢量的集合有效地代表该特征矢量序列,并将此集合作为文本相关的说话人识别模型,以便在后续识别时作为参考模板。识别时,对待识别语音片段用同样的处理方法提取特征矢量序列,并且按一定匹配规则与所有的参考模板进行比较。匹配往往通过特征矢量间的距离测度来实现,以累计距离为匹配结果。在说话人识别中最常用的模板匹配方法有动态时间归正(DTW)和矢量量化(VQ)方法等。在另一个实施例中,还可采用模型概率法,即训练过程中,在从某人的一次或多次注册的语音片段中提取出有效的特征矢量的基础上,为其建立相应的模型,最后依靠得到的文本相关的说话人识别模型进行匹配,从而达到识别的目的。其中最常用的模型是隐马尔可夫模型(HMM),它能很好的描述语音信号的平稳性和可变性,并能准确地描述人的声道变化特性。此外,还可以基于人工神经网络法确定出用户注册时语音片段的说话人识别模型,由于该部分是现有的技术,申请人不对其进行过多的赘述。
考虑到用户注册的方便性,所注册的语音片段数量不宜过多。当存在很多个预先注册语音片段时,还可将动态问题设计为随机选择其中的一个语音片段要求用户复述。
在一个改进的实施例中,所述问题提示要求用户按照设定顺序说出语音片段以及动态问题的答案。所述设定顺序是要求用户按照什么样的顺序说出语音片段以及动态问题的答案,设定顺序可选自以下之一:所述语音片段位于所述答案之前;所述语音片段位于所述答案之后;所述语音片段与所述答案相交叉。
举例而言,假如预先训练的语音片段是“张三”,动态问题是“4加上8等于多少?”,设定的顺序是动态问题的答案位于语音片段之间,那么最终的问题提示就是:“请说出您的姓名,并在您的姓后面***4加上8的结果?”,这就需要用户用语音回答:“张十二三”。
问题提示的方式也可以为多种,可以在文字、图案、语音、视频等多种方式中进行选择。举例而言,如果是呼叫中心,可以用语音合成的方式播放问题提示;如果是应用于移动终端,既可以采用语音合成的方式,也可以采用图片、文字的方式向用户呈现问题提示。
在步骤202中,响应于接收所述语音回答,从所述语音回答中切分出所述语音片段对应部分以及动态问题答案部分。
认证用户的语音回答是一整段音频数据,但对于用户复述的语音片段部分需要采用文本相关说话人识别模型,对于动态问题答案部分则需要基于语音识别技术检验答案是否正确,由于涉及到不同的校验技术,故需要对语音回答进行切分处理,从中得到语音片段部分以及动态问题答案部分。
如果在设计问题的时候就已经知道语音片段以及动态问题答案之间的位置关系,借助该信息并基于现有的语音切分技术就能够更加准确的切分出语音片段部分,那么剩余的部分就是动态问题的答案部分。
特别需要说明的是,当答案部分位于语音片段之间时,还需将切分出来的语音子片段进行组合后得到待校验的语音片段。举例而言,从“张十二三”中切分出“张”、“十二”、“三”三个部分,然后将语音子片段“张”“三”拼接后即可得到待校验的语音片段。拼接技术可以是简单的将两个语音子片段合成为一个音频文件,还可以进一步对其进行一些平滑处理。
在步骤205中,验证所述语音回答中所述语音片段以及动态问题答案之间的边界平滑度。通过边界平滑度能够确定边界处是否可以达到声学意义上的自然与平滑,从而能够区分出录音欺骗。
当非法用户企图进行录音欺骗时,其只能在播放录音时通过“暂停”“播放”操作并配合该非法用户的语音回答,从而模仿合法用户按照设定顺序的语音回答。因此,所接收到的非法用户的语音回答实际上是由语音片段的录音以及非法用户的语音答案共同组成,也就使得整个语音回答中必然存在着不自然的边界过度,录音欺骗也就变得非常的困难。因此,通过在该步骤中对边界平滑度的检测,就可以准确的判断出语音回答是否涉及录音欺诈。
语音边界的平滑度,在现有的语音合成(text to speech)技术中有所涉及,主要用于使得合成的语音更加自然,然而,现有技术中从来没有通过平滑检测来判断一段语音是不是拼凑在一起的,并将其应用于用户认证过程中。
具体地,可以通过能量(energy),基音频率(pitch),频谱(spectrum)等特征来进行判断。申请人会在图3、图4以及图5中对该三种示例性的特征进行详细的说明,在本申请公开的信息的基础上,本领域技术人员可以采用其中一种或者多种进行组合使用。
为了使得用户的语音回答的方便,在一个改进的实施例中,申请人还改进了问题的设计方法,使得“语音片段”与动态问题答案之间能够自然衔接,不会导致用户拗口,从而降低语音认证准确性。
可选的,图2所示的流程还可以包括根据所述文本相关的说话人识别模型对所述语音片段部分进行校验的步骤。可采用任何现有的文本相关的说话人识别技术进行检验,由于该部分是现有的技术,并且在对步骤201的说明中已经进行了相应的描述,申请人不对其进行过多的陈述。
可选的,图2所示的流程还可以包括对所述动态问题答案部分进行答案验证的步骤。可采用任何现有的语音识别技术来验证动态问题答案是否正确,在一个实施方式中,采用大词汇量的语音识别技术,将用户回答的语音识别为文字,然后和问题答案进行比对,看是否正确。在另一个实施方式中,可以直接用问题答案的文本和用户所说的语音做“语音和文本的对齐”(alignment),能对齐上的则是正确的答案。由于基于语音识别技术验证问题答案属于现有技术,申请人不对其细节进行赘述
所属领域技术人员明了,边界平滑度检验、语音片段的说话人识别以及动态答案的答案验证这三种认证之中任一个未通过都会导致用户认证的不通过,因此,该三种认证的顺序是可调整的。
图3示出了基于能量的边界平滑度检测实施例。通常,拼凑出的语音在能量上就无法衔接的很好。在图3所示的例子中,中间段语音和两边的语音(分界线处),在能量上出现了严重的脱节,因此能量可以很容易看出边界很不平滑。
在一个实施例中,在根据能量进行边界检测时,采用滑动窗口的方式确定语音边界处的能量是否平滑。具体而言,是在一个滑动窗口(比如1s的时间窗)中计算语音平均的能量值,如果是静音窗就抛弃,当发现平均能量值发生突变,并且突变会维持一定的时间,就认为边界是不平滑的。
图4、图5示出了基于基音频率(pitch)的边界平滑度检测实施例,其中横坐标轴的单位为秒,纵坐标轴的单位是赫兹。
音调特征能很容易反应语音边界的情况,而音调特征可以由基音频率来描述。语音分辩的一个主要特征是激励的类型,根据激励类型的不同,可以将语音信号分为浊音和清音两大类。语音中只有浊音才有基音频率,浊音的激励是周期性的脉冲串,脉冲串的频率就是基音频率。
实际正常的语调的基音频率变换是连续的,也就是说,对每一帧语音进行基频提取后,绘制成图后应该如图4所示。但如果语音是拼接出来的,语调的基音频率就会产生跃变,如图5所示。
在一个实施例中,可以通过基频曲线的包络是不是连续来判断是否出现过基频的跃变,在该实施例中,对基音频率曲线求△,即为曲线的切线,看连续两个相邻的切线的夹角是否小于一个门限值,如果高过这个值,则认为基频发生了跃变。
还可以基于频谱(spectrum)的边界平滑度检测。频谱就是频率的分布曲线,复杂振荡分解为振幅不同和频率不同的谐振荡,这些谐振荡的幅值按频率排列的图形叫做频谱。信号是时域上的,所以可对信号做傅里叶(FFT)变换之后,就能将信号转化为频域上的。同样,正常的语音的频谱是连续的,所以同样可以查看包络是否连续来进行判断语音边界是否平滑。
接下来,申请人对步骤201的一个改进的实施例进行详细的说明,在这个改进的实施例中,使得预先训练的语音片段以及所述动态问题的答案之间符合发音的连贯性。
举例而言,用户在训练阶段说的内容是“湖北省宜昌市”,动态问题是“2加2等于几?”,当设定顺序是语音片段位于答案之前时,用户最终需要回答“湖北省宜昌市4”。很明显,“湖北省宜昌市四”读起来很别扭,因为“市”和“四”发音很像,同时“市”是卷舌,“四”是平舌,这种拗口会导致用户语音回答上的不连贯,容易在边界检查步骤中被认为是录音欺骗。因此,在一个改进的实施例中,***生成问题的时候需要考虑最后用户朗读起来的自然程度。
平滑度可以从两方面来考虑:第一,对于从文本上经常连续出现的,可以认为这种是“自然的”;相反,不经常出现的,则认为是“不自然的”。比如,“***”后面跟“***”,这种是经常搭配出现的,所以朗读起来就很自然;但如果“周恩来”后面跟“***”,这种朗读起来就费劲了,因为我们日常都不会这么说。这种文本上的搭配,可以用语言模型来衡量,语言模型里记录了一个词后面跟着另外某词或某些词的概率是多少。在一个实施例中,语言模型可采用n-gram模型,用现有的语言模型工具训练出,例如采用现有技术中的斯坦福研究院语言模型工具包(Stanford Research Institute Language ModelingToolkit,即,SRILM)。
第二,在音节上经常连续出现的,可认为是“自然的”;否则就是“不自然的”。比如,“湖北宜昌市”的”shi”后面跟”si”读起来就很困难,但如果后面跟“三”(san),则比之前的读起来顺畅。这种音节的搭配,可用声学模型来衡量。声学模型可以是一个简单的表,表里记录出所有音节(phone)和另外一个音节搭配起来的概率是多少,声学模型也可以是决策树,通过决策树也可以判定出某个音节后面跟另外一个或几个音节的概率是多少。在一个实施例中,可以用标注过的声学模型训练库来训练,比如依据语言学数据联盟(Linguistic DataConsortium,即LDC)的语音数据库标准所建立的声学模型训练库。
图6示出了一个实施例中生成问题的具体步骤:
为了清楚的说明该实施例,依然用“湖北省宜昌市”这个例子进行说明,要求用户在“湖北省”后面“宜昌市”前面***一个问题的答案。***中有一个很大的问题集,每个问题对应一个答案,一些是通用的问题,比如“2+2等于几?”,“今天星期几?”等等;还有一些是特定于该用户的问题,比如“你所读的高中名字?”,“您母亲的姓名?”等等。为了使得预先训练的语音片段以及所述动态问题的答案之间符合发音的连贯性,***需要从所有问题集中查找一个最合适的动态问题。
在该实施例中,问题集包括以下几个问题和对应的答案:
问题1:“4减3等于几?” 答案:“一”
问题2:“你所读的高中名字?” 答案:“第一中学”
问题3:“24个字母中最后一个字母是什么?” 答案:“z”
在步骤601中,用问题集中所有答案来查找语言模型,对每个答案给出一个语言模型得分。由于这个答案需要在两个词中间,所以有一个左得分和一个右得分。两个得分平均,即为语言模型得分,得分越高,就表明朗读起来更容易。则“一”的得分为0.06,“第一中学”的得分为0.55,“z”的得分为0.0075,这就说明根据语言模型能够确定出将“第一中学”***语音片段更容易读。
在步骤602中,用问题集中所有答案的音节来查找声学模型,对每个答案给出一个声学模型得分,同样,得分越高,就表明朗读起来更容易。则“一”的得分为0.205,“第一中学”的得分为0.35,“z”的得分为0.255,这也说明了根据声学模型能够确定出将“第一中学”***语音片段更容易读。
在步骤603中,可选的,还可将语言模型得分和声学模型得分按某种权重合并,得出最后得分,并进行排序,得分越高,就表明朗读起来更容易。比如按0.5,0.5的权重来合并,“一”的得分为0.06*0.5+0.205*0.5=0.1325,“第一中学”的得分为0.55*0.5+0.35*0.5=0.45,“z”的得分为0.0075*0.5+0.255*0.5=0.13125,这就说明了综合声学模型以及语言模型能够确定出将“第一中学”***语音片段更容易读。
在步骤604中,根据得分选择动态问题。在该实施例中,由于答案“第一中学”的得分最高,最后选择的问题应该为“高中名字”。当这个问题被使用过后,这个问题应该被移除问题集,然后对剩余的问题集进行排序选择。
下面,参照图7来描述根据本发明实施例的进行用户认证的设备。该设备可以通过下述的各个装置执行在上文中参照图2描述的方法。
如图7所示,用户认证设备可以包括如下各个部分,其中虚线所包围的语音片段校验装置703以及动态问题校验装置704是可选的:
提示装置701,配置为向所述用户发送问题提示,所述问题提示要求用户说出语音片段以及动态问题的答案,所述语音片段用于在认证之前训练出文本相关的说话人识别模型。
切分装置702,配置为响应于接收所述语音回答,从所述语音回答中切分出所述语音片段部分以及动态问题答案部分。
语音片段校验装置703,配置为根据所述文本相关的说话人识别模型确定所述语音片段部分是否为所述用户的声音。
动态问题校验装置704,配置为确定所述动态问题答案部分的回答是否正确。
边界检验装置705,配置为验证所述语音回答中所述语音片段以及动态问题答案之间的边界平滑度。
在一个实施例中,其中所述边界检验装置705包括:配置为根据能量、基音频率、频谱三者中的至少一种确定所述平滑度的装置。
在一个实施例中,所述问题提示要求用户按照设定顺序说出所述语音片段以及所述动态问题的答案。
在一个实施例中,其中所述设定顺序选择以下之一:所述语音片段位于所述答案之前;所述语音片段位于所述答案之后;所述语音片段与所述答案相交叉。
在一个实施例中,其中所述语音片段与所述答案相交叉包括:所述答案位于所述语音片段之中;或所述语音片段位于所述答案之中。
在一个实施例中,所述切分装置702还被配置为根据所述设定顺序从述语音回答中切分出所述语音片段部分以及所述动态问题答案部分。
在一个实施例中,其中所述预先训练的语音片段以及所述动态问题的答案之间符合发音的连贯性。
在一个实施例中,根据语音模型以及声音模型使得所述预先训练的语音片段以及所述动态问题的答案之间符合发音的连贯性。
在根据本发明实施例的上述进行用户认证的方法和设备中,根据检测边界处的平滑程度,能够分辨出语音回答是否涉及录音欺骗。
附图中的流程图和框图显示了根据本发明的多个实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。