TTS服务无法播放长数字

发布时间:  2015-04-25 浏览次数:  111 下载次数:  0
问题描述
TTS环境正常,统一网关使用U2900系列。配置CCIVR或者IVR流程,播放TTS语音内容如下,大约120左右字节长度:
1111111111 222222222 33333333 444444444 555555555 6666666666 777777777 888888888 9999999999 1234567...
结果播放流程后听到语音“十一亿...”,通话立刻释放。
处理过程
1. 修改统一网关中的TTS服务器设置的“TTS文本文件访问模式”为“内联”,“TTS合成类型”为“普通”。
本实例中的TTS服务器的“MRCPID”为“0”,请根据现场实际情况修改。
MOD MRCPSRV: MRCPID=0, SRVCAP=TTS, TTSACCMOD=INL, SYNTYP=NORMAL;

2. 修改语种设置的“缺省最大长度(第一包)”为“120”,“下一包最大长度”为“60”。
本实例修改的是“普通话”的语种设置,请根据现场实际情况修改。
MOD LANGCFG: LANGID=GID0, MAXLEN=120, SSML=60;
根因
查看ICDDEBUG日志,发现CTI下发播放语音消息后,统一网关ACK成功,但RES失败。

查看统一网关上的INTESS和MRCP日志,发现统一网关放音过程突然下发STOP,原因是RTP流溢出。

该问题的原因在于统一网关在处理TTS放音时,实际播放的是来自TTS服务器的RTP流语音信息,如果是英文单词,如“One Two”,共7个字节,但发音时只有“旺吐”,信息量较少,RTP流也就较少。如果是长数字,如“12345”,共五个字节,但发音时相当于“一万两千三百四十五”,明显的信息量倍增了,RTP流膨胀。所以在长数字时,RTP流容易溢出。

END