TTS无法识别日期格式

问题描述

在配置西班牙语对话识别时,发现TTS播报时无法将20190801 这种格式的字符串视为年月日的格式进行播报,而直接播报成数字,客户体验不好。因此需要采取措施优化播报结果,使之播报成日期格式。

问题分析

流程中发现无论是通过获取ODFS系统日期SYS.systemDate,还是通过获取TUC槽位的日期实体值,都是yyyyMMdd格式,均没有自动转换格式的能力,怀疑是局点使用的TTS(Text to Speech0)系统对日期格式有要求。

根据同局点提供的TTS进行对接调试发现,2019/08/01这种格式的日期字符串送到TTS可以正常播报为年月日的形式,因此需要在放音前手工处理,将格式进行转换。

解决方法

在语义识别图元后添加一个业务接口调用图元,将语义识别图元中的槽位变量的值通过Java的字符串处理函数substring()进行格式转换和拼接。

具体参数值如下所示:

TOC.ChatBotMonth.substring(0,4)+"/"+TOC.ChatBotMonth.substring(4,6)+"/"+TOC.ChatBotMonth.substring(6,8)+ " a "+TOC.ChatBotMonth.substring(9,13)+"/"+TOC.ChatBotMonth.substring(13,15)+"/"+TOC.ChatBotMonth.substring(15,17)

Month为语音识别图元执行时获取的槽位变量名,在系统中使用TOC.ChatBotMonth表示。

槽位变量的使用方法请参见参数

相关文档