`

关于声纹验证

阅读更多
在前面的讲座中,我们介绍了MRCP媒体资源的几个主要类型,它们分别是语音合成资源,语音识别资源和录音资源的所有请求,事件和headers的细节。今天的讲座中,我们介绍MRCP媒体资源的最后一个资源类型-说话人验证资源(speaker verification resource-speakverify)。
  1、说话人验证资源对MRCP客户端提供说话人的验证和确认功能。说话人验证主要关心的是说话人应该是谁。通常情况下,说话人验证是通过他们自己声明的身份数据来验证。说话人通过一系列的验证方式来关联身份验证。这一系列的验证方式包括输入密码,客户ID,或者呼叫号码绑定的方式来加以验证。说话人的语句可以和其保存的声纹语句进行对比来确认其身份,然后执行通过或者拒绝的流程。而说话人确认功能则处理的是通过从多人的说话语句中识别出其身份,它通过已录制的语句对比一组存储的说话人声纹来确认说话人身份。简单来说,说话人确认就是一个已录制的语音和一组或者多组存储的声纹进行对比,识别出其身份。事实上,如果从MRCP说话人验证资源的角度来讨论的话,说话人确认可以看作为多组声纹的说话人验证方式。因此,为了讨论方便,我们通常使用说话人验证来表示验证和确认步骤。另外,MRCP验证资源的处理方式和基于文本方式的处理方式是相似的,它也借用了自然语言语义标识语音的语法格式来封装说话人验证和确认的结果。
  2、MRCP验证资源可以在两种工作模式下执行,它可以配合语音识别资源或录音资源来工作,也可以独立工作。当独立工作时,它在媒体会话中通过实时传输的方式获得的语音数据,然后对语音数据进行分析。当结合其他媒体资源工作时,验证资源会通过验证资源的缓冲和语音识别资源或录音资源共享缓冲数据。通过设定Ver-Buffer-Utterance header,语音识别资源和录音资源可以对缓冲进行数据写入的操作。在语音识别或录音过程中,这个缓冲中的语音数据可以后续支持说话人验证或者确认的分析任务。
  MRCP验证资源支持十一个请求消息,两个事件消息,二十个headers和一个状态机。状态机可支持两种工作模式:训练模式和验证模式。状态机的状态改变是通过VERIFY或VERIFY-FROM-BUFFER method来实现。验证资源的状态机的工作流程图如下:
  3、START-SESSION method 是用来启动一个训练或验证会话。Verification-Mode header可以用来表示其启动的会话模式。这个会话类型值包括:train和verify。如果设置为验证会话的话,它会绑定声纹的数据仓库,其路径通过Repository-URI来表示。每个会话可以绑定一个或多个声纹,他们通过各自的声纹ID Voiceprint-Identifier header表示。这里需要读者注意,结合本章节前面谈到的关于验证资源和确认资源的区别,他们的使用方式在在这里得到了体现。如果是验证资源的话,指定的是一个声纹资源URL。如果是说话人确认的话,可以支持多个声纹路径,通过分号分开多个声纹资源。在训练期间的话,如果声纹不存在的话,系统会自动创建。其请求的图例如下:
  现在,我们看一下此请求的消息流程:
  F1 (client → speakverify):
  • MRCP/2.0 194 START-SESSION 00001
  • Channel-Identifier: 1cd3ee59@speakverify
  • Verification-Mode: train
  • Repository-URI: http://example.com/voiceprintdatabase
  • Voiceprint-Identifier: dave.burke
  F2 (speakverify → client):
  • MRCP/2.0 76 00001 200 COMPLETE
  • Channel-Identifier: 1cd3ee59@speakverify
  END-SESSION请求支持结束训练或验证会话。在Abort-Model header创建声纹,这个声纹则反映更新状态。如果声纹更新,则可能是训练会话被激活,或者验证会话被激活,同时声纹状态信息也会更新。声纹更新是通过START-SESSION会话中设置 header Adapt-Model 为true来实现。如果Abort-Model设置为false,则会导致声纹的任何修改都最终保存到数据库中。如果此header设置为true,则会丢弃任何对声纹的修改。以下是结束会话的图例:
  其具体的消息流程如下:
  F1 (client → speakverify):
  • MRCP/2.0 95 END-SESSION 10000
  • Channel-Identifier: 1cd3ee59@speakverify
  • Abort-Model: false
  F2 (speakverify → client):
  • MRCP/2.0 76 10000 200 COMPLETE
  • Channel-Identifier: 1cd3ee59@speakverify
  4、VERIFY method是验证资源对实时语音通过媒体会话进行传输,启动声纹训练,或启动验证,并且对比多组声纹数据。具体的操作模式是在START-SESSION的header Verification-Mode中设置。当VERIFY 请求完成后,验证资源会生成一个VERIFICATION-COMPLETE事件消息。NLSML数据会包含在这个事件消息中,包括训练状态和验证状态数据。以下图例是一个训练模式下的流程图:
  具体的训练流程消息如下:
  F1 (client → speakverify):
  • MRCP/2.0 194 START-SESSION 20000
  • Channel-Identifier: 1cd3ee59@speakverify
  • Verification-Mode: train
  • Repository-URI: http://example.com/voiceprintdatabase
  • Voiceprint-Identifier: dave.burke
  F2 (speakverify → client):
  • MRCP/2.0 76 20000 200 COMPLETE
  • Channel-Identifier: 1cd3ee59@speakverify
  F3 (client → speakverify):
  • MRCP/2.0 70 VERIFY 20001
  • Channel-Identifier: 1cd3ee59@speakverify
  F4 (speakverify → client):
  • MRCP/2.0 79 20001 200 IN-PROGRESS
  • Channel-Identifier: 1cd3ee59@speakverify
  F5 (speakverify → client):
  • MRCP/2.0 90 START-OF-INPUT 20001 IN-PROGRESS
  • Channel-Identifier: 1cd3ee59@speakverify
  F6 (speakverify → client):
  • MRCP/2.0 921 VERIFICATION-COMPLETE 20001 COMPLETE
  • Channel-Identifier: 1cd3ee59@speakverify
  • Completion-Cause: 000 success
  • Content-Type: application/nlsml+xml
  • Content-Length: 737
  • <?xml version="1.0" encoding="UTF-8"?>
  • <result xmlns="http://www.ietf.org/xml/ns/mrcpv2">
  • <verification-result>
  • <voiceprint id="dave.burke">
  • <incremental>
  • <device>cellular-phone</device>
  • <gender>male</gender>
  • <utterance-length>751</utterance-length>
  • </incremental>
  • <cumulative>
  • <verification-score>0.93</verification-score>
  • <device>cellular-phone</device>
  • <gender>male</gender>
  • <utterance-length>1522</utterance-length>
  • <need-more-data>false</need-more-data>
  • </cumulative>
  • </voiceprint>
  • </verification-result>
  • </result>
  F7 (client → speakverify):
  • MRCP/2.0 95 END-SESSION 20002
  • Channel-Identifier: 1cd3ee59@speakverify
  • Abort-Model: false
  F8 (speakverify → client):
  • MRCP/2.0 76 20002 200 COMPLETE
  • Channel-Identifier: 1cd3ee59@speakverify
  5、VERIFY-FROM-BUFFER 请求的和VERIFY的工作方式相同,但是VERIFY-FROM-BUFFER的语音流源来自于验证缓冲而不是来自于实时的语音数据。验证缓冲数据写入的方式支持通过说话人验证资源写入数据,通过VERIFY请求的头中设置Ver-Buffer-Utterance为true来获得支持,也可以通过语音识别资源分配同样的SIP dialog,通过RECOGNIZE请求中设置Ver-Buffer-Utterance为true的方式写入,还可以通过录音资源分配同样的SIP dialog,通过RECORD请求中设置Ver-Buffer-Utterance为true来获得支持。这里,需要读者注意,系统不会为VERIFY-FROM-BUFFER 请求生成START-OF-INPUT事件消息。
  使用从验证缓冲中验证说话人有几个方面的理由。语音识别资源可以用来验证其用户身份(例如通过识别客户账户),然后,紧接着此语音数据可以和其相应的声纹进行匹配。另外,如果VERIFY请求验证用户失败的话,但是MRCP客户端希望使用同样的语音数据匹配其他不同的声纹资源,这个资源可以被重复使用。这里我们假设,初始的VERIFY已传输了Ver-Buffer-Utterance为true的header,验证缓冲将被写入,START-SESSION 创建了一个新的会话支持了不同的声纹,VERIFY-FROM-BUFFER请求也已经启动。以下是一个VERIFY-FROM-BUFFER图例:
  具体的消息流程如下:
  F1 (client → speakverify):
  • MRCP/2.0 82 VERIFY-FROM-BUFFER 30000
  • Channel-Identifier: 1cd3ee59@speakverify
  F2 (speakverify → client):
  • MRCP/2.0 79 30000 200 IN-PROGRESS
  • Channel-Identifier: 1cd3ee59@speakverify
  F3 (speakverify → client):
  • MRCP/2.0 986 VERIFICATION-COMPLETE 30000 COMPLETE
  • Channel-Identifier: 1cd3ee59@speakverify
  • Completion-Cause: 000 success
  • Content-Type: application/nlsml+xml
  • Content-Length: 802
  • <?xml version="1.0" encoding="UTF-8"?>
  • <result xmlns="http://www.ietf.org/xml/ns/mrcpv2">
  • <verification-result>
  • <voiceprint id="dave.burke">
  • <incremental>
  • <verification-score>0.85</verification-score>
  • <device>carbon-button-phone</device>
  • <gender>male</gender>
  • <utterance-length>751</utterance-length>
  • </incremental>
  • <cumulative>
  • <verification-score>0.81</verification-score>
  • <device>carbon-button-phone</device>
  • <gender>male</gender>
  • <decision>accepted</decision>
  • <utterance-length>801</utterance-length>
  • </cumulative>
  • </voiceprint>
  • </verification-result>
  • </result>
  6、VERIFY-ROLLBACK 请求时回滚到前面VERIFY或VERIFY-FROM-BUFFER的请求,因此,前面已处理的语音数据不再用于声纹训练(训练会话中)和声纹的调整环境中(验证会话)。如果多次发起VERIFY-ROLLBACK请求,则会导致无效回滚。以下是一个回滚请求的图例:
  VERIFY-ROLLBACK 的消息流程:
  F1(client→speakverify):
  • MRCP/2.0 79 VERIFY-ROLLBACK 40000
  • Channel-Identifier:1cd3ee59@speakverify
  F2(speakverify→client):
  • MRCP/2.0 76 40000 200 COMPLETE
  • Channel-Identifier:1cd3ee59@speakverify
  START-INPUT-TIMERS请求用来支持对验证资源启动定时器。启动默认环境下,当发起一个VERIFY请求时,系统会自动启动No-Input-Timeout的定时器。如果在定时器时间范围内,验证资源没有检测到任何输入的话,VERIFY请求会结束这个请求,并且生成VERIFICATION-COMPLETE消息,消息中说明了Completion-Cause,其值为002 no-input-timeout。通常情况下,如果用户完成输入的话,MRCP 客户端会马上发起VERIFY请求。但是,在有一些应用场景中,我们需要用户输入的同时在同一时间内启动训练或验证流程。因此,它可以支持熟悉的用户可以打断输入,并且尽早启动训练或验证资源。有时,在提示回放的同时,训练/验证资源也同时启动,如果用户不想启动No-Input-Timeout 定时器,他/她需要让系统完成提示回放以后,才开始启动定时器。用户可以VERIFY消息中设置Start-Input-Timers header为false来实现以上要求。如果在稍后的处理过程中,MRCP客户端知道提示回放已经完成的话,客户端可以对验证资源发起START-INPUT-TIMERS启动No-Input-Timeout定时器。 以下是一个START-INPUT-TIMERS图例:
  START-INPUT-TIMERS 的消息流程:
  F1(client→speakverify):
  • MRCP/2.0 70 VERIFY 50000
  • Channel-Identifier:1cd3ee59@speakverify
  F2(speakverify→client):
  • MRCP/2.0 79 50000 200 IN-PROGRESS
  • Channel-Identifier:1cd3ee59@speakverify
  F3(client→speakverify):
  • MRCP/2.0 82 START-INPUT-TIMERS 50001
  • Channel-Identifier:1cd3ee59@speakverify
  F4(speakverify→client):
  • MRCP/2.0 76 5000 1200 COMPLETE
  • Channel-Identifier:1cd3ee59@speakverify
  F5(speakverify→client):
  • MRCP/2.0 90 START-OF-INPUT 50000 IN-PROGRESS
  • Channel-Identifier:1cd3ee59@speakverify
  F6(speakverify→client):
  • MRCP/2.0 920 VERIFICATION-COMPLETE 50000 COMPLETE
  • Channel-Identifier:1cd3ee59@speakverify
  • Completion-Cause: 000 success
  • Content-Type:application/nlsml+xmlContent-Length:736<?xmlversion="1.0"encoding="UTF-8"?>
  • <result xmlns="http://www.ietf.org/xml/ns/mrcpv2">
  • <verification-result>
  • <voiceprintid="dave.burke">
  • <incremental>
  • <device>cellular-phone</device>
  • <gender>male</gender>
  • <utterance-length>751</utterance-length>
  • </incremental>
  • <cumulative>
  • <verification-score>0.53</verification-score>
  • <device>cellular-phone</device>
  • <gender>male</gender>
  • <utterance-length>1522</utterance-length>
  • <need-more-data>true</need-more-data>
  • </cumulative>
  • </voiceprint>
  • </verification-result>
  • </result>
  当VERIFY或VERIFY-FROM-BUFFER请求正在处理中时,MRCP客户端可以发出GET-INTERMEDIATE-RESULT请求要求获得更多累计的验证资源。这里读者要注意,GET-INTERMEDIATE-RESULT的响应消息中包含NLSML数据,因为请求仍然进行中,还没有完成,所以响应消息中没有Completion-Cause header。当验证资源在空闲状态时,MRCP客户端发送GET-INTERMEDIATE-RESULT请求时,它会收到402 Method not valid in this state 响应码。以下是GET-INTERMEDIATE-RESULT图例:
  消息流程如下:
  F1 (client → speakverify):
  • MRCP/2.0 87 GET-INTERMEDIATE-RESULT 60000
  • Channel-Identifier: 1cd3ee59@speakverify
  F2 (speakverify → client):
  • MRCP/2.0 934 60000 200 COMPLETE
  • Channel-Identifier: 1cd3ee59@speakverify
  • Content-Type: application/nlsml+xml
  • Content-Length: 799
  • <?xml version="1.0" encoding="UTF-8"?>
  • <result xmlns="http://www.ietf.org/xml/ns/mrcpv2">
  • <verification-result>
  • <voiceprint id="dave.burke">
  • <incremental>
  • <verification-score>0.53</verification-score>
  • <device>cellular-phone</device>
  • <gender>male</gender>
  • <utterance-length>751</utterance-length>
  • </incremental>
  • <cumulative>
  • <verification-score>0.67</verification-score>
  • <device>cellular-phone</device>
  • <gender>male</gender>
  • <utterance-length>1522</utterance-length>
  • <need-more-data>true</need-more-data>
  • </cumulative>
  • </voiceprint>
  • </verification-result>
  • </result>
  STOP method用来支持正在进行的训练验证资源,资源状态返回到空闲状态。STOP 的响应消息中会包含Active-Request-Id-List 列表,表示结束的ID。在STOP请求method中可以包含一个Abort-Verification 头,此header可以用来表示训练验证结果是否丢弃(true)或者保持(false)。 如果是false的话,STOP请求的响应消息中包含验证结果。以下是STOP 请求的图例:
  具体的消息流程图:
  F1 (client → speakverify):
  • MRCP/2.0 70 VERIFY 70000
  • Channel-Identifier: 1cd3ee59@speakverify
  F2 (speakverify → client):
  • MRCP/2.0 79 70000 200 IN-PROGRESS
  • Channel-Identifier: 1cd3ee59@speakverify
  F3 (client → speakverify):
  • MRCP/2.0 95 STOP 70001
  • Channel-Identifier: 1cd3ee59@speakverify
  • Abort-Verification: true
  F4 (speakverify → client):
  • MRCP/2.0 108 70001 200 COMPLETE
  • Channel-Identifier: 1cd3ee59@speakverify
  • Active-Request-Id-List: 70000
  CLEAR-BUFFER method用来清除验证缓冲数据。在前面的讨论中,我们已经介绍了如何实现缓冲数据写入。这里,使用CLEAR-BUFFER来清除缓冲数据。具体的缓冲清除图例如下:
  清除验证缓冲数据的消息流程如下:
  F1 (client → speakverify):
  • MRCP/2.0 76 CLEAR-BUFFER 80000
  • Channel-Identifier: 1cd3ee59@speakverify
  F2 (speakverify → client):
  • MRCP/2.0 76 80000 200 COMPLETE
  • Channel-Identifier: 1cd3ee59@speakverify
  QUERY-VOICEPRINT method用来支持MRCP客户端对验证资源进行声纹数据查询。声纹数据是通过Repository-URI和Voiceprint-Identifier 来确定。在给定的URL资源中,每个Voiceprint-Identifier 设定了一个唯一的ID。QUERY-VOICEPRINT 响应消息中会包含一个布尔值Voiceprint-Exists来表示此声纹是否存在。如果Repository-URI 不存在,则返回响应消息,并且相当Completion-Cause: 007 repository-uri-failure header。 以下是一个查询声纹资源的图例:
  查询声纹消息流程:
  F1 (client → speakverify):
  • MRCP/2.0 171 QUERY-VOICEPRINT 90000
  • Channel-Identifier: 1cd3ee59@speakverify
  • Repository-URI: http://example.com/voiceprintdatabase
  • Voiceprint-Identifier: dave.burke
  F2 (speakverify → client):
  • MRCP/2.0 102 90000 200 COMPLETE
  • Channel-Identifier: 1cd3ee59@speakverify
  • Voiceprint-Exists: true
  DELETE-VOICEPRINT method用来支持MRCP客户端删除声纹,具体的声纹身份确认由Repository-URI 和Voiceprint-Identifier构成。 这里,读者要注意,如果指定的需要删除的声纹不存在的话,不会会任何返回错误。图例是删除声纹的流程:
  具体的删除声纹的消息流程如下:
  F1 (client → speakverify):
  • MRCP/2.0 173 DELETE-VOICEPRINT 100000
  • Channel-Identifier: 1cd3ee59@speakverify
  • Repository-URI: http://example.com/voiceprintdatabase
  • Voiceprint-Identifier: dave.burke
  F2 (speakverify → client):
  • MRCP/2.077100000200COMPLETE
  • Channel-Identifier:1cd3ee59@speakverify
  7、验证资源包括两个消息事件,两个事件分别是START-OF-INPUT和VERIFICATION-COMPLETE。这两个事件在前面的章节中都有完整的消息示例,读者可以参考那些示例来进一步了解这两个事件。
  START-OF-INPUT事件是由说话人验证资源生成,通知MRCP客户端已经收到输入数据。MRCP客户端使用此事件来进行语音打断检测或者停止语音回放。
  VERIFICATION-COMPLETE是由说话人验证资源生成来对MRCP客户端说明训练/验证流程已经完成,正在消息体中传输训练或验证结果。Completion-Cause和可选Completion-Reason header来表示训练或验证的完成状态。
  8、MRCP协议的验证资源支持了二十个headers。现在,我们逐一介绍这些headers的使用方式。
  • Completion-Cause,此header总是出现在VERIFICATION-COMPLETE的响应事件中,用来表示VERIFY或VERIFY-FROM-BUFFER请求完成的原因。注意,它也可能出现在VERIFY,VERIFY-FROM-BUFFER或QUERY-VOICEPRINT请求中,包含失败状态码。名称等消息。示例:Completion-Cause:005 buffer-empty。
  • Completion-Reason,此header是可选的header,通常伴随着Completion-Cause header一起出现,为MRCP客户端排查提供更多log消息。示例:Completion-Reason:Out of memory。
  • Verification-Mode,此header用来表示在START-SESSION的验证类型,是训练模式(train)还是验证模式(verify)。示例:Verification-Mode:train。
  • Repository-URI,此header用来表示在START-SESSION,QUERY-VOICEPRINT或DELETE-VOICEPRINT中的声纹,此声纹所存储的数据库中的URL地址。示例:Repository-URI:file://host/voiceprintdb/。
  • Voiceprint-Identifier,此header在说话人验证资源中已声明的确认身份。对于说话人确认来说,此header可以包含单个声纹或者一组说话人声纹。此header在START-SESSION,QUERY-VOICEPRINT或DELETE-VOICEPRINT请求中设定。此header的值的格式必须是两组字符串,通过句号分开。示例:Voiceprint-Identifier:joe.bloggs。
  • Adapt-Model, 此header使用在START-SESSION请求中,表示当验证资源成功执行后,是否可以对声纹进行调整,通过调整可以提高验证的准确率。默认为false。示例:Adapt-Model:true。
  • Abort-Model,此header可以在END-SESSION请求中设定,它用来表示任何声纹的修改结果可以被丢弃或保存在数据库。如果在header中设置为true,表示丢弃修改结果;false则表示保存修改结果。示例为:Abort-Model:true。
  • Min-Verification-Score,此header表示验证评分最小值,验证资源决定可接受范围。其取值范围在-1.0-1.0之间。示例为:Min-Verification-Score:0.75。
  • Num-Min-Verification-Phrases, 此header设定的最小语句,此最小语句值是认证资源要求的可接受的最小数值。默认值为1,示例为:Num-Min-Verification-Phrases:2。
  • Num-Max-Verification-Phrases,此header设定的最大语句数量,在验证结果决定之前所接受的最大语句数量。示例:Num-Max-Verification-Phrases: 3。
  • No-Input-Timeout,此header用来设定的检测输入超时的时长。此取值以毫秒为单位。无默认值设置。示例:No-Input-Timeout: 3000。
  • Save-Waveform,此header为一个布尔值,用来表示说话让验证资源是否在验证过程中保存捕捉到语音。如果设置为true,生成的事件VERIFICATION-COMPLETE中包含Waveform-URI来提示保存文件的路径,MRCP客户端可以通过此URL获取到捕捉到语音数据。默认值为false,示例为:Save-Waveform: true。
  • Media-Type,此header表示捕捉到的语音数据的格式。示例为:Media-Type: audio/x-wav。MRCP不会强制使用某种特定的语音格式。
  • Waveform-URI,此header表示在实时验证中捕捉到语音数据URL地址,用来和MRCP客户端进行通信。如果Save-Waveform设定为true,此header会出现在VERIFICATION-COMPLETE事件中。此取值会追加数据大小(bytes)和时长(毫秒)参数设置。在存活的会话过程中,此URL必须是可访问的。如果录音时产生错误的话,Waveform-URI为空。示例:Waveform-URI: <http://10.0.0.1/utt01.wav>;size=8000;duration=1000。
  • Input-Waveform-URI,此header是为VERIFY请求method提供语音数据,而不是使用媒体会话的方式。此header在某些环境下非常有用,当需要前面的资源提供识别时,语音识别资源和语音验证资源都是独立分离的状态,可能各自在不同的会话。示例:Input-Waveform-URI: http://10.0.0.1/utt01.wav。
  • Voiceprint-Exists,此header是一个布尔值,表示声纹URL是否存在。它存在于QUERY-VOICEPRINT 和 DELETE-VOICEPRINT响应消息中。示例:Voiceprint-Exists: false。
  • Ver-Buffer-Utterance, 此header可以通过VERIFY请求中设定。如果此值设定为true, 则表示验证资源可以支持对捕捉到录音作为缓冲,以支持会话的后期使用。这里,读者要注意,在同一SIP dialog中的语音识别资源或录音资源可以通过其各自的请求方式对缓冲进行写入操作。默认值为false。示例是:Ver-Buffer-Utterance: true。
  • New-Audio-Channel,此header可以通过VERIFY请求来设定。如果此header设置为true,则对验证资源表示,从此刻起,新通道会接收语音数据。说话人验证资源通常会以请求的方式打断现在的通道,重新对终端设置新的算法,丢弃前面通道中的历史数据。默认值为false,示例:New-Audio-Channel: true。
  • Abort-Verification,此header在STOP请求中出现,表示是否丢弃或保留已训练或验证的结果。如果设置为true,则表示丢弃训练结果。示例:Abort-Verification: true。
  • Start-Input-Timers,此header可能出现在VERIFY请求中,通知说话人验证资源是否启动No-Input-Timeout 定时器。默认为true。示例:Start-Input-Timers: false。
  9、在本讲座中,我们首先介绍了说话人验证资源的背景知识,验证资源和确认资源的区别,然后分别介绍了验证资源的请求方式,事件和所有验证资源的headers。在每个请求方式的介绍过程中,笔者结合具体的流程图和消息流程做了非常详细的解释,以及需要读者特别注意到对方。另外,对headers也做了非常详细的解释,这样可以帮助读者能够完全掌握MRCP协议中说话人验证资源的所有相关细节。
  到目前为止,我们已经基本上介绍了整个MRCP协议的主体部分。在后续的章节中,笔者会根据时间安排等实际情况,更多讨论MRCP相关的安全方面的话题和其应用实践。
 
转载自:
http://ec.ctiforum.com/jishu/qiye/qiyetongxinjishu/kaiyuantongxin/jishudongtai/540755.html
版权归原作者所有
分享到:
评论

相关推荐

    基于ivector的声纹验证demo

    **基于iVector的声纹验证技术详解** 声纹识别是一种生物特征识别技术,它通过分析个人的语音特性来辨识身份。在众多的声纹识别方法中,iVector(Interpolated Vector)技术因其高效性和准确性而备受关注。本篇将...

    声纹锁 声纹验证 语音识别 前后端全部代码 传到服务器就能用

    声纹锁 声纹验证 语音识别 前后端全部代码 传到服务器就能用 基于小程序端+java后端 一、完成功能 :注册用户 登录 添加当前用户声纹信息 (二次确定声纹信息 声纹录入需要操作,调用两次接口) 验证声纹信息并返回...

    讯飞声纹验证sdk

    【讯飞声纹验证SDK】是一款由科大讯飞公司推出的语音识别技术产品,主要应用于身份验证场景。这款SDK专为安卓(Android)平台设计,提供了集成声纹识别功能到移动应用的能力。声纹识别是一种生物特征识别技术,通过...

    语音通讯-声纹识别

    声纹识别,作为语音通信领域中的核心技术之一,是一种利用个人独特的嗓音特征进行身份验证的方法。这个技术基于声音信号处理和模式识别理论,通过分析说话人的发音方式、语调、频率模式等声学特征,来辨别个体身份。...

    声纹识别C#、matlab实现

    声纹识别是一种生物特征识别技术,它通过分析和比较个人语音的独特模式来确认或验证身份。在本项目中,我们关注的是使用C#和MATLAB两种编程语言实现基于MFCC(梅尔频率倒谱系数)和DTW(动态时间规整)算法的声纹...

    声纹识别算法验证程序openVP.zip

    VoicePrint 是一款基于高斯混合模型的文本无关的声纹识别算法验证程序 VoicePrint的特点是: 语音特征向量:采用MFCC系数(梅尔倒谱系数) 模式匹配模型:采用GMM模型(高斯混合模型) 本程序为课程实验验证开发,...

    行业分类-电子-关于声纹加密电脑主机的说明分析.rar

    此外,声纹也可以作为敏感文件的访问权限验证,只有经过声纹验证的用户才能查看或修改特定文件,有效防止未经授权的访问。 三、声纹加密的优势 1. 高度安全性:每个人的声纹都是独一无二的,难以伪造,极大地提高...

    声纹识别的完整代码,包括语音信号预处理、 建模和识别matlab.zip

    声纹识别是一种基于个人独特的声音特征进行身份验证的技术,它在安全系统、智能家居、智能语音助手等领域有着广泛应用。本资源提供了实现声纹识别的完整MATLAB代码,涵盖了语音信号预处理、模型构建以及识别三个关键...

    声纹识别matlab全部代码

    4. **实验与评估**:为了验证模型性能,通常会使用交叉验证或留一法。MATLAB中的`confusionchart`和`perfcurve`等函数可以帮助分析识别结果,计算准确率、误识率等指标。 5. **数据集**:训练和测试模型需要大量的...

    Web端声纹识别

    声纹识别是一种生物特征识别技术,它基于每个人的语音特点,即声纹,来确认或验证个人身份。在Web端实现声纹识别,主要涉及将这种技术与网页交互结合,例如在微信小程序中应用。声纹识别的工作原理包括以下几个关键...

    Android代码-声纹云安卓SDK

    采用独特的声纹识别处理算法,声纹验证准确率高达99.5%,支持防录音攻击、环境降噪、动态数字口令。 分布式部署,扩展性强。分布式部署声纹识别服务器,支持上百万的声纹容量,易容扩展,而且可以根据应用规模适当...

    Android下声纹认证

    在Android平台上,声纹认证是一种基于用户独特声音特征的身份验证技术。它利用音频处理和机器学习算法来识别和验证特定个体的声音,为用户提供安全、便捷的解锁或验证方式。在这个项目中,我们主要关注如何在Android...

    基于声纹识别的web身份认证系统.zip_because8em_face feature_js声纹识别_声纹_声纹识别 认证

    本系统最大的特色是对于企业和用户安全,便捷地进行身份认证,运用成本低,运行需要的环境也宽松。 ... 2.相对于人脸识别具有的优势...即使在丢失物理验证设备(例如手机丢失,验证信息被获取)的时候也可以进行身份认证。

    修改可运行-声纹识别的全代码

    声纹识别是一种基于生物特征的身份验证技术,它利用个人独特的嗓音模式来确认身份。在本文中,我们将探讨一个已修改并能运行的MATLAB程序,该程序专注于声纹识别的功能实现与优化。 MATLAB(矩阵实验室)是...

    (前面部分内容可以参考)声纹识别技术及其应用前景分析.pdf

    由于给出的部分内容仅包含下载链接和无关的重复性描述,并没有直接提供关于声纹识别技术的详细内容,因此,以上内容是对标题和描述中涉及的知识点的详细说明。希望这些信息能够满足您对声纹识别技术及其应用前景分析...

    行业-电子政务-电子装置、基于声纹的身份验证方法及存储介质.zip

    这篇资料包主要涵盖了“电子装置、基于声纹的身份验证方法及存储介质”的主题,这是一项利用先进的生物识别技术,特别是声纹识别,来增强电子政务系统安全性的重要研究。下面将详细阐述相关知识点。 一、电子装置与...

    real performance of speaker recognition-清华大学王东——声纹识别

    例如,哪些广泛应用的声纹验证系统能够经得起考验,哪些声纹提供商在没有客户埋怨的情况下运营,以及有哪些声纹厂商真正赚到了钱,都是值得深入探讨的问题。 在技术研究和应用中,声纹识别技术的潜在问题可能被表面...

    “谛听”声纹识别——基于Tensorflow架构深度学习声纹识别系统.zip

    在当今人工智能领域,声纹识别是一项关键的技术,它利用人的独特声音模式来进行身份验证,广泛应用在安防、智能家居、智能语音助手等多个场景。 在深度学习中,声纹识别主要涉及以下几个核心知识点: 1. **数据...

Global site tag (gtag.js) - Google Analytics