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表示。
槽位变量的使用方法请参见参数。