首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MRCP学习笔记-控制会话中的Generic headers

前面的讲座中,笔者介绍了控制会话的消息体,参数设置和头域值的简单说明。今天,我们会进一步详细介绍MRCP的Generic headers。在MRCP中,Generic headers 包括以下头域值:

Channel-Identifier: 此头域在请求,响应和我事件消息中是必须强制支持的。此值用来确认通道对消息的唯一性。标准格式为:MRCP会话@媒体类型:Channel-Identifier: 466453af837@speechrecog

Active-Request-Id-List:此值可能出现在请求或响应中,但是没有在事件消息中出现。此列表可以列出多项请求的ID。此值会经常出现在响应的事件消息中,它可能表示某些请求要被停止或已经完成。例如,SPEAK请求中的SPEAK-COMPLETE或RECOGNIZE中的RECOGNITION-COMPLETE可选消息。此值也可能出现在语音合成的媒体类型中,例如PAUSE等。例如,MRCP客户端可以发出一个STOP请求,要求某些请求停止:

Active-Request-Id-List: 00001,00002

Content-Base:此头可以包含一个相对的URL地址,此地址包含在请求中的可能需要解析的Content-Base,用来支持某些语法。语法格式:

Content-Base: http://www.example.com/myapp/

Content-Encoding:此值定义对内容解析解析。如果有多个解析列表支持时。语法格式示例:Content-Encoding: gzip。

Content-ID:此值是对消息内容在消息体中进行识别的ID号,或作为多个消息中的单个ID号。如果此值出现在请求中,它要求媒体资源服务器在一定会话时间内保存媒体内容数据,将来通过MRCP的URL获取此值。其格式示例为:Content-ID: menu@example.com。

Content-Length:此值表示消息体的长度。

Content-Location:此值表示消息体中的资源定位。其语法格式为:

这里支持了相对路径和绝对路径。媒体资源服务器可以通过此设置来优化某些操作。用户可以通过缓存来获取历史记录值,而不需要每次通过媒体资源服务器来获取。

Content-Type:MRCP支持了一系列非常严格的MIME媒体类型来表示其内容,例如,speech synthesis markup,speech 语法和识别结果。其语法格式示例为:Content-Type: application/ssml+xml。

Proxy-Sync-Id:通过媒体服务器结合事件来此值用来提供一种协调功能,当在媒体资源中发生DTMF输入或语音合成后,系统检测到了一个打断行为,通过添加一个事件ID来跟踪消息。当媒体资源服务器第一次在媒体流中遇到语音或DTMF输入时,媒体资源服务器端会检测到一个打断的检测消息,那么MRCP客户端就会从事件中收到一个START-OF-INPUT。然后,MRCP客户端会马上发送一个BARGE-IN-OCCURRED请求到语音合成服务器端,服务器端则决定是否停止语音数据的回放。这里,是否回放还要取决于SPEAK请求中设置了参数Kill-On-Barge-In为true。在一些部署应用环境中,语音合成服务器和输入检测功能结合非常紧密,检测响应的速度非常快,检测协调功能是通过其内部进行的。为了实现其类似的部署环境,在START-OF-INPUT的事件消息中,媒体资源服务器需要添加一个识别码来确认此事件,这样就构成了一个Proxy-Sync-Id。MRCP 客户端会在接下来的BARGE-IN-OCCURRED请求中转发同样的ID,这样媒体资源会使用同样的打断检测事件中的ID来协调这个请求。其格式为:proxy-sync-id = "Proxy-Sync-Id" ":" 1*VCHAR CRLF。

Accept:通常情况下,表示在响应消息中,指定的某些媒体类型是可以接受的。此头域也用来说明在客户端的请求中限定了某些媒体类型。例如:Accept: application/sdp。

Accept-Charset:此头域用来设置请求中可接受的字符设置方式。它在某些环境中是非常有用的,例如指定在RECOGNITION-COMPLETE事件中的结果(NLSML)中的字符设置。

Fetch-Timeout:此值支持MRCP客户端通过URL来访问媒体资源服务器的超时设置。默认以毫秒为单位。

Cache-Control:此头值用来定义缓存获取的控制方式。在上面的头域设置中,我们如果使用了缓存的设置。这里,的设置会控制缓存的获取规则。它实际上继承了HTTP请求中的Cache-Control方式,一般都支持了刷新时间,存活时长等参数。具体的语法格式为:

这里,我们通常会设置cache-directive 的访问机制。max-age 表示MRCP客户端会容许媒体资源服务器端在一定的时间内使用此内容数据。max-stale表示MRCP客户端允许媒体资源服务器端使用缓存的数据,此数据访问超时设置已经超过了限定的值(max-stale)。min-fresh表示MRCP客户端允许的HTTP服务器最小的响应时间设置。

Set-Cookie / Set-Cookie2:此值用来跟踪MRCP客户端的访问状态,它实际上继承了HTTP的Cookies 使用方式。系统可以通过SET-PARAMS和GET-PARAMS来获取当前的数据,例如:

Vendor-Specific:此值支持MRCP客户端获取具体的参数信息内容。获取到的数据可能是多个参数,参数之间通过分号加以区分。

Logging-Tag:此头域仅使用在SET-PARAMS和GET-PARAMS中。此头域会和会话消息所关联。媒体资源服务器可以此标签来标注一个特别的会话内容,支持管理员对特定的会话进行排查。

在本章节,我们仅对MRCP中会话的16个头域值逐一进行了介绍。这16个头值也是MRCP 的标准头值。这些头值有的可以支持set方式,有的可以支持get方式。具体的应用我们将在未来的讲座中会做更加详细地介绍。

unimrcp-MRCP协议学习分享,QQ群号:208136295

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180604G0II8Q00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券