密级公开
版本10D.2

AICP 10.0.0 TTS MRCP开发手册

1. 概述#

1.1 功能介绍#

在电话呼叫等系统中一般使用MRCP接口同客户端的ivr系统进行语音识别交互,在AICP10.x平台的基础上增加对MRCP接口访问TTS能力的支持。

1.2 术语定义#

1.2.1 MRCPv2协议#

媒体资源控制协议(Media Resource Control Protocol, MRCP)是一种通讯协议,用于媒体资源服务器向客户端提供各种语音服务,目前已定义的媒体资源服务有语音识别(Speech Recognition)、语音合成(Speech Synthesis)、录音(Recording)、说话人鉴别和确认(Speaker Verification and Identifi-cation)。 MRCP并不定义会话连接,不关心服务器与客户端是如何连接的, MRCP消息使用RTSP、SIP等作为控制协议,目前最新的MRCPv2版本使用SIP控制协议。(本文使用的是MRCPv2)

1.2.2 MRCP相关协议#

  • SIP(Session Initiation Protocol) 会话初始化协议,用于创建、修改、终止一个或多个参与者的会话。这些会议包括互联网电话,多媒体分发和多媒体会议。
  • SDP(Session Description Protocol) 会话描述协议,传递媒体流信息,允许会话描述的接收者去参与会话。定义了会话描述的统一格式,与SIP配合使用在MRCP中达到创建一个Media Control Channel的目的。
  • RTP(Real-Time Transport Protocol) 实时传输协议,适用于传输实时数据的应用程序,如音频、视频或模拟数据,可通过RTP的子协议RTCP(RTP Control Protocol)保证服务质量。在MRCP中负责对媒体资源进行传输。

1.3 参考资料#

UniMRCP官网
W3C语法文件规范
UniMRCP设计文档
UniMRCP服务配置

1.4 逻辑架构#

MRCP ServerAICP 10平台UniMRCPServerTTS PluginTTS 能力服务IVR/MRCPv2ClientSIPMRCPv2RTPControlMediaAudio/Text

2. 参数控制#

MRCP接口服务支持通过mrcp协议的头信息传递相关控制参数,常用的参数头如下:

头域字段名值说明
Voice-Name发音人property
Vendor-Specific-Parameters自定义变量

  • 其中Vendor-Specific-Parameters支持自定义扩展键值对,key=value的格式,多个用半角分号;分开具体示例如下:Vendor-Specific-Parameters:pitch=0;speed=0;volume=50
  • 其中property等参数的取值,请参考aicp10平台部署手册中相关定义

2.1 发音人参数控制#

  1. 可通过Voice-Name传入不容property值,在每次合成请求时动态切换发音人
  2. 可通过Vendor-Specific-Parameters中的speed字段,控制合成语速
  3. 可通过Vendor-Specific-Parameters中的pitch字段,控制合成基频
  4. 可通过Vendor-Specific-Parameters中的volume字段,控制合成音量

3. 请求方法#

  1. 通过Speak方法向MRCP服务发起合成请求
  • 请求报文:
MRCP/2.0 229 SPEAK 1
Channel-Identifier: d41f9e78aea511ea@speechsynth
Content-Type: text/plain
Vendor-Specific-Parameters: speed=0;volume=50;
Voice-Age: 10
Voice-Name: cn_roumeijuan_common
Content-Length: 18
合成测试文本
  • 响应报文:
MRCP/2.0 83 1 200 IN-PROGRESS
Channel-Identifier: d41f9e78aea511ea@speechsynth
  1. 合成完成后的响应
  • 合成成功

    MRCP/2.0 122 SPEAK-COMPLETE 1 COMPLETE
    Channel-Identifier: d41fadaaaea511ea@speechsynth
    Completion-Cause: 000 normal
  • 合成失败

    MRCP/2.0 122 SPEAK-COMPLETE 1 COMPLETE
    Channel-Identifier: d41fadaaaea511ea@speechsynth
    Completion-Cause: 004 error

3.1 标记语言支持#

当传入合成文本是ssml标记语言格式,mrcp头域Content-Type应为xml标签样式例如:

MRCP/2.0 229 SPEAK 1
Channel-Identifier: d41f9e78aea511ea@speechsynth
Content-Type: application/ssml+xml
Voice-Name: cn_roumeijuan_common
Content-Length: ...
<?xml version="1.0" encoding="UTF-8"?><speak version="1.0" xml:lang="zh-cn"><prosody volume="100">你昨晚看了黑客帝国了吗?</prosody>你昨晚看了<break time="1s"/>黑客帝国了吗</speak>

:标记语言的使用请遵循AICP10平台,TTS合成优化指南

4. 版本记录#

接口版本平台支持版本组件及支持版本修改内容
10.0.010C.1aicp_tts_mrcp 10.0.0初始版本