帖子

【求解】java-cssml在线语音合成中文乱码

 关闭 [复制链接]

该用户从未签到

17022  楼主| 超级教练 发表于 2016-4-17 21:16:05 1#
java合成语音的时候中国乱码,xml也读出来了,请问这是什么问题?

PS:speechUtil.setParameter(SpeechConstant.TEXT_ENCODING, "utf-8"); //改成gb2312也不行,


参数设置
                SpeechUtility.createUtility("appid=" + APPID);
                speechUtil = SpeechSynthesizer.createSynthesizer();
                speechUtil.setParameter(SpeechConstant.PARAMS, null);
                speechUtil.setParameter("ttp", "cssml");
                speechUtil.setParameter(SpeechConstant.ENGINE_TYPE, SpeechConstant.TYPE_CLOUD);
                speechUtil.setParameter(SpeechConstant.TEXT_ENCODING, "utf-8");
                speechUtil.setParameter(SpeechConstant.PITCH, "50");
                speechUtil.setParameter(SpeechConstant.VOLUME, "100");
                speechUtil.setParameter(SpeechConstant.STREAM_TYPE, "3");
                speechUtil.setParameter(SpeechConstant.SPEED, "35");

                speechUtil.setParameter(SpeechConstant.VOICE_NAME, "xiaoyan");

待合成文本

String text = "<?xml version=\"1.0\" encoding=\"utf-8\"?><speak>我是中国人<break time=\"2000ms\"/>我爱中国</speak>";

1.jpg
2.jpg
gxlin 发表于 2016-4-18 09:36:12
2#
把 设置代码中的 SpeechConstant.TEXT_ENCODING 改为 "tte",值为 "gb2312",XML中的 encoding 也改为 "gb2312"。
目前这个功能上的 SpeechConstant.TEXT_ENCODING 和 "tte"有区别,后续会确认是什么原因,应该会在新版本解决这个区别,暂时先用 "tte"代替吧。抱歉。
使用道具 举报 回复
 楼主| 超级教练 发表于 2016-4-18 10:02:59
3#
测试通过,多谢
使用道具 举报 回复