您当前的位置是:  首页 > 新闻 > 国内 >
 首页 > 新闻 > 国内 >

MRCP协议学习笔记 - 录音资源的请求、事件和头详解

2018-07-30 16:09:26   作者: james.zhu    来源:CTI论坛   评论:0  点击:


  在前面的两个大的章节中,我们介绍了MRCP资源类型的两个重要媒体类型:语音合成资源和语音识别资源以及它们的请求,事件和头的详解今天,我们将继续介绍MRCP的另外一个媒体类型 - 录音资源。MRCP的录音资源用来捕捉语音数据,并且以URL的形式保存,以支持同一会话后期访问。
  MRCP的录音资源可以具有一些基本的语音处理能力支持语音检测。这里的语音检测功能可以支持对录音起始阶段,结束阶段的录音,甚至于中间的录音进行静音压缩处理,因此移除语音中的静音部分,从而降低录音文件存储大小。另外,如果在预设的超时设置中,没有收到任何语音,此功能可以支持录音终止执行。如果接收端在结束之前检测到一段静音状态,录音资源也要自动结束录音。录音资源的应用范围非常广泛,可以应用在语音留言服务器环境,智能客服语音导航等环境中。在本章节中,我们会详细介绍录音资源的请求,事件和标题的具体内容。
  1、录音资源支持三个请求消息和两个事件信息,以及十五个头三个请求消息是:
  两个事件消息是:
  十五个标题包括:
  MRCP录音资源同样也支持一个状态机。MRCP客户端发起一个请求,媒体录音资源生成事件消息。
  2、RECORD请求方法是由MRCP客户端发起,默认情况下,录音资源开始捕捉语音数据。如果当出现在 Capture-On-Speech标题出现在请求中,并且此值为true,当语音被检测到以后,录音资源才开始捕捉语音数据。录音格式是通过Media-Type header来设置。此标题会出现在RECORD请求中。录音资源对捕捉到语音录音以后,通过Record-URI的形式表示录音存储路径。如果此标题出现没有支持设置的值,则录音资源会在录音完成事件消息中返回记录-URI或在STOP请求中,携带一个URL地址。
  如果在记录的请求中省略了记录-URI,录音资源则会在录音完成事件的消息体中或者停止响应中返回这个URL值。
  MRCP要求Record-URI至少支持HTTPS来保证数据传输的安全性,MRCP同样也支持经常使用的http://和file:// URI的形式。如果Record-URI是无效的地址,则会返回无效状态码“404标题非法值”。如果录音资源因为各种原因不能对创建的内容链接,则返回407方法或操作失败。
  视频资源,请求中可以支持队列的处理。的流程图:
  
  3、默认环境下,启动录音以后,No-Input-Timeout标头就会启动一个无输入定时器的定时器。如果在定时器超时之前没有检测到语音输入时,RECORD-COMPLETE事件消息会返回完成 - 原因,此值为002 noinput-timeout。通常情况下,系统提示用户完成输入以后,MRCP客户端会马上发起一个RECORD请求。对某些应用场景来说,用户输入的同时需要同时启动录音操作。录音资源可以通过二次设置来启动定时器的设置。RECORD请求中可以设置开始输入,定时器为假来表示不启动定时器,如果需要定时器启动的话,MRCP客户端可以发起一个开始输入,定时器请求来启动定时器设置以下是一个。开始输入,定时器流程图:



  4、STOP方法结束录音流程,并且通知录音资源从录音状态切换到空闲状态。STOP响应消息中包含一个Active-Request-Id-List表示请求停止的ID。以下是一个停止请求的流程图:
 
  五、MRCP录音资源支持两个事件消息,它们分别是START-OF-INPUT和RECORD完成消息。
  当录音资源第一次检测到语音时,录音资源会生成START-OF-INPUT事件消息。MRCP客户端可以使用事件消息来结束语音回放等流程。例如,在语音合成资源中的强行插入而出现的消息激活打断流程。
  当录音资源完成对RECORD请求流程后,录音资源生成并返回RECORD-COMPLETE消息事件,并且录音资源从录音资源切换到空闲状态。录音资源会自动结束录音流程,结束的原因会返回到MRCP客户端。具体结束原因可能是:无输入超时,最大时间到期,检测到最终静音等。完成 - 原因标题表示了RECORD请求结束的原因。如果录音结束后,请求没有携带任何错误的话,RECORD-COMPLETE消息则会表示一个录音文件的URL地址。
  6、录音资源支持了十五个头。我们逐一介绍这些报头的使用方式。
  完成 - 原因,此标题总是出现在RECORD-COMPLETE事件中,用来表示RECORD结束原因。如果出现错误的话,它也可能出现在RECORD请求的返回响应消息中。示例:完成 - 原因:002无输入 - 时间到。
  完成 - 原因,此标题可选出现在RECORD-COMPLETE事件消息中,提供更多结束原因代码。示例:完成 - 原因:磁盘空间不足。为客户端通过日志跟踪信息:
  Failed-URI,此标题表示访问所给URL失败。示例:Failed-URI:http://192.168.1.10/audio/mailbox01.wav。
  Failed-URI-Cause,此标题表示访问URL失败的具体原因,示例:Failed-URI-Cause:404 Not Found。
  Record-URI,表示录音的存储URL路径。示例:Record-URI:; 大小= 40000;持续时间= 5000。
  Media-Type,此标题表示录音文件格式。示例:Media-Type:audio / x-wav。
  Capture-On-Speech,此标题是一个布尔值,表示是否当检测到语音时开始录音。默认值是假,表示接收方收到录音请求后马上开始录音。示例:Capture-On-Speech:true。
  No-Input-Timeout,此标题表示当录音开始时,在设定的时间内没有检测到语音。在返回RECORD-COMPLETE事件消息中携带完成 - 原因,其值为002 noinput-timeout。示例为:No - 输入 - 超时:3000。
  最大时,其头部用来设定最大录音时间,此时间从开始录音计算,不包括其中的静音压缩时段。其值以毫秒为单位。当录音时长达到最大录音时间时,录音会结束,录音资源会生成并且返回RECORD-COMPLETE事件,携带完成 - 原因,值为000 success-silence。示例:Max-Time:10000。
  Final-Silence,此标题设定一个静音时长(毫秒为单位),用来表示录音结束前的静音时长。如果此值为0,表示无穷大,无最后静音检测。示例:Final-Silence:3500。
  灵敏度等级,此标题表示一个语音检测的敏感度。取值范围从0到1.取值比较低表示对噪音不敏感 ;取值比较高表示输入时静音比较敏感。示例:敏感度等级:0.85 。
  Trim-Length,此标头使用在STOP请求中。其值表示从录音结束起,所移除的时间长度。默认值为0.示例:Trim-Length:1000。
  Start-Input-Timers,此header在RECORD请求中设定一个延迟启用no-input timer的时间,直到MRCP客户端重新发送START-INPUT-TIMERS请求。示例:Start-Input-Timers:false。
  Ver-Buffer-Utterance,此标题使用在RECORD请求中,表示录音文件使用在后续的说话人验证流程中,这里,假设说话让验证资源被分配在同一会话中。默认值为假。示例:Ver-缓冲 - 话语:是的。
  新的音频通道,如果此头在录音请求中设置为真,则表示语音数据正在从不同的语音资源,通道或讲话人发送。如果此头出现的话,并且设置为真,则表示正在调整某些算法。这些算法可能已经在语音检测中使用,为了适应新的语音资源,一些算法需要调整。示例:New-Audio-Channel:false。
  7、这里,我们稍微花一点时间再多讨论一下关于静音检测到问题。首先说明,笔者不是语音检测算法方面的专家,因为我们在VOIP领域一直涉及相关的技术话题,所以这里提醒用户,对于录音资源的VAD检测也是非常重要的一环。静音检测在终端设计中结合厂家的技术特点都有各自的算法,具体的应用场景很多,包括检测语音挂机,降低录音文件大小,优化网络带宽都具有非常重要的作用。关于在SIP环境中的VAD检测,笔者在以前的SIP讲座中做过非常深入的讨论。这里,我们仅对录音资源中的静音处理做一些简单提示。因为在录音环境中,如果没有对录音进行静音检测处理或者优化,它会导致录音文件非常庞大,严重影响系统存储性能,同时也会影响语音识别的准确性。当然,如果开启VAD检测到话,同时也会增加系统的负载具体。的VAD设计流程如下:
  更多关于VAD的算法,读者可以结合笔者给出的参考资料做进一步的研究,也可以针对录音资源的几个头做适当的调整来优化录音文件。读者也可以参考PSJIP或FreeSWITCH的的VAD模块做更多了解。另外,如果读者想进一步了解VAD的话,读者也需要结合静音压缩的算法,舒适噪音生成来进一步了解这几个算法的相互关系。
  8、在本章节的分享中,笔者详细介绍了MRCP中的录音资源的细节内容,包括请求,事件消息和头的完整介绍。并且,对录音优化过程中的VAD做了简单分享,希望读者在优化录音文件时更多注意这些参数。
  参考资料:
  TomB?ckstr?m,  语音活动检测  语音处理
  E. Verteletskaya,K。Sakhnov,语音增强应用的语音活动检测
  Md Sahidullah,说话人识别语音活动检测技术的比较
  J.Ramírez,JMGórriz,语音活动检测。基础知识和语音识别系统的稳健性




【免责声明】本文仅代表作者本人观点,与CTI论坛无关。CTI论坛对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。请读者仅作参考,并请自行承担全部责任。

专题