科大讯飞语音识别 语音合成 数字读法 Android

科大讯飞语音识别 离线语音合成 数字读法 Android

用科大讯飞语音识别包的时候要求识别到数字的时候以阿拉伯数字的形式传到后台。
数字优先的设定下大多数数字经过识别返回的结果是阿拉伯数字,但是比如“十二万”就会识别成“12万”,同时比较大的数字会有逗号分隔符(比如12,345)。
用正则匹配替换。

text = text.replace(",", "");
text = text.replaceAll("([0-9])万", "$10000");

后台返回四位数序列时期望语音合成按照串的读法,但其他部分的数字依旧按照数字读法。
在线语音合成支持cssml方法设定读音,离线不支持。
将数字序列转成汉字传入startSpeaking方法解决了问题。

final private String[] character = {"零", "一", "二", "三", "四", "五", "六", "七", "八", "九"};

StringBuilder toRead = new StringBuilder();
for(int i=0; i<serial.length(); i++) {
	toRead.append(character[(int)serial.charAt(i) - (int)('0')]);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值