3.8 API+TTS实现方案

友情提示:超链接返回的快捷键为Alt + ←)

为满足业务拓展需要,迅时自主开发了一套TTS服务器。开发者可利用TTS服务器动态合成语音文件,并利用OM API实时播放。

实现场景如: 客户来电后,按键进入语音导航,选择“1账户查询”,语音播报“王先生,您的账号余额为300元。”

版本要求

软件版本Rev 2.1.5.109.18及其以上(若版本不支持,可联系客服帮您升级bin包或直接更新wget组件(wget 1.9.2及以上),客服电话:4007779719或4006172700)。

实现方案图

语音合成

迅时提供TTS服务器,可以合成OM需要的多种语音格式文件,实际合成时可能只需要一种格式,推荐使用pcm,设备直接下载不需要转换格式 。

点击这里下载合成TTS语音文件的demo。

TTS接口通信图:

语音文件下载图:

接口实现:

TTS请求:

POST /xml HTTP/1.1 
Host: tts.newrocktech.com:9000
Cache-Control: no-cache 
Content-Type: text/xml 
Content-Length: 195

<?xml version="1.0" encoding="utf-8"?>
<Control attribute="TTSConvert">
    <content>王先生,您的账号余额为300元</content>
    <lang>ch_female</lang>
    <speed>5</speed>
    <volume>5</volume>
    <wav>0</wav>
    <pcm>1</pcm>
    <dat>0</dat>
</Control >

参数说明

说明:<>表示必选项,[]表示可选项(当参数值为默认值或空时,响应消息可能不携带该参数),| 表示或者关系

参数名称 子项说明 值说明
<content> 语音内容 支持中文(需utf8编码)和英文,最多130个汉字及标点
<speed> 语速 1~9
<volume> 音量 1~9
<lang> 发言人 支持ch_female | ch_male | en_female,分别为中文女声 | 中文男声 | 英文女声
<wav> 是否需要wav 0:不需要,1:需要
[pcm] 是否需要pcm 0:不需要,1:需要
[dat] 是否需要dat 0:不需要,1:需要

TTS成功响应:

<?xml version="1.0" encoding="utf-8"?>
<Event attribute=“OK”>
    <wav_url>http://tts.newrocktech.com:9880/wav/20170203/1486091400698.wav</wav_url>
    <pcm_url>http://tts.newrocktech.com:9880/wav/20170203/1486091400698.pcm</pcm_url>
    <dat_url>http://tts.newrocktech.com:9880/wav/20170203/1486091400698.dat</dat_url>
</Event>

参数说明:

参数名称 子项说明 值说明
wav_url wav文件下载路径
pcm_url pcm文件下载路径
dat_url dat文件下载路径

TTS失败返回:

<?xml version="1.0" encoding="utf-8"?>
<Event attribute=“FAILED”>
    <error code="number"  reason="failedreason" />        
</Event>

参数说明:

错误码字段 说明
<error code="400" reason="Bad Request" /> 请求错误
<error code="421" reason="XML Error " /> XML格式错误
<error code="422" reason="xx Param Unrecognized" /> xx参数无法识别
<error code="423" reason="xx Param Value Error" /> xx参数值错误
<error code="500" reason="Server Error" /> 服务器错误

动态播放合成的语音

  • 首先,需要临时配置menu,指定远程PCM路径,下载TTS语音文件;
  • 其次,使用transfer指令转接播放。

配置menu命令如下:

<?xml version="1.0" encoding="utf-8" ?>
<Control attribute="Assign">
    <menu id="1">
        <voicefile>http://tts.newrocktech.com:9880/wav/20170203/1486091400698.pcm</voicefile>
        <repeat>1</repeat>
        <infolength>3</infolength>
        <exit>#</exit>
    </menu>
</Control>

Transfer转接命令如下:

<?xml version="1.0" encoding="utf-8" ?>
<Transfer attribute="Connect">
    <visitor id="41" />    //当有来电时监听到的visitor id
    <menu id="1"/>
</Transfer>

温馨提示:

由于动态播放远程合成语音需要下载,有可能来不及导致播放失败,需要注意以下几点:

  1. 动态合成语音不宜过长,简短10~30字,控制文件大小;

  2. 动态语音不宜频繁,同时配合网络,保证网络下载畅通;

  3. menu配置id范围1~50,不能重复防止转接互相错乱,临时播放使用过后的menu id可以重用;

  4. 配置menu和转接tranfer之间可以等待100ms~1s左右 ,防止语音文件下载失败;

  5. TTS服务器域名需要解析,OM设备和应用服务器都需要DNS服务器配置以解析域名;

  6. TTS服务器固定域名:tts.newrocktech.com,合成端口9000,返回下载端口9880。

results matching ""

    No results matching ""