距离您98米
距离您98米
  • 发布:2018-11-30 13:57
  • 更新:2022-09-01 16:13
  • 阅读:1751

【报Bug】文字转语音

分类:Native.js

详细问题描述(DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题)
[内容]
if(mui.os.android) {
var main = plus.android.runtimeMainActivity();
var SpeechUtility = plus.android.importClass('com.iflytek.cloud.SpeechUtility');
SpeechUtility.createUtility(main, "appid=");
var SynthesizerPlayer = plus.android.importClass('com.iflytek.cloud.SpeechSynthesizer');
var play = SynthesizerPlayer.createSynthesizer(main, null);
play.startSpeaking("卖了佛冷111111111", null);
}
部分安卓手机,文字转换语音错误
"卖了佛冷111111111" 播报出来是英文

“xxx买单1.00元已到账”播报出来的是:“今夜起”

你说气不气

录了个视频,可是上传不了
重现步骤
[步骤]
[结果]
[期望]
[如果语言难以表述清晰,可以拍一个视频或截图,有图有真相]

IDE运行环境说明
[HBuilder 或 HBuilderX]
[IDE版本号]
[windows版本号]
[mac版本号]

App运行环境说明
[Android版本号]
HUAWEI P20 Pro 型号CLT-AL00 android版本8.1.1
[iOS版本号]
[手机型号]
[模拟器型号]

附件
[IDE问题请提供HBuilderX运行日志。菜单帮助-查看运行日志,点右键打开文件所在目录,将log文件压缩成zip包上传]
[App问题请提供可重现问题的代码片段,你补充的细一点,问题就解决的快一点]
[安装包]

联系方式
[QQ]

2018-11-30 13:57 负责人:无 分享
已邀请:
DCloud_App_Array

DCloud_App_Array

这是使用native.js调用讯飞SDK实现的,从现象看应该是讯飞SDK的问题,我们无法修复。
目前新版本中支持了百度语音模块,可以尝试native.js调用百度语音SDK中相应的接口来实现。

  • 距离您98米 (作者)

    只有安卓版本8.1的会这样,其他的都是正常的,我问讯飞了,说不是他们的问题,要我们更新sdk。这咋整

    2018-11-30 15:42

  • 距离您98米 (作者)

    讯飞这样回复我的

    工号[061492] chaolu


    部分安卓手机播报错误的原因应该是您没有更新sdk,您现在下载官网最新sdk集成即可解决Android8.0以上播报错误。


    2018-11-30 14:43:48

    2018-11-30 15:44

  • DCloud_App_Array

    讯飞新版本SDK是绑定应用的appid(即每个应用都要单独下载SDK),这种情况5+云端打包无法支持,所以暂时无法更新讯飞SDK。建议改用百度语音识别。

    2018-11-30 16:51

  • 距离您98米 (作者)

    百度的怎样使用啊?

    2018-11-30 17:53

  • 5***@qq.com

    回复 距离您98米: 您解决了吗?

    2019-05-14 16:02

  • 距离您98米 (作者)

    回复 5***@qq.com: 解决了,百度和讯飞一起用,wx,445827735

    2019-06-27 11:03

  • 5***@qq.com

    回复 距离您98米: 请指教,百度的怎样使用啊?

    2019-12-13 17:40

  • 距离您98米 (作者)

    回复 5***@qq.com: //百度语音合成

    function baiduAubio(text) {

    var baiduToken = plus.storage.getItem("baiduToken");

    audioP = btts({

    tex: text,

    tok: JSON.parse(baiduToken),

    spd: 6,

    pit: 6,

    vol: 15,

    per: 0

    }, {

    volume: 0.9,

    autoDestory: true,

    timeout: 10000,

    hidden: false,

    onInit: function(htmlAudioElement) {},

    onSuccess: function(htmlAudioElement) {

    htmlAudioElement.play(); //播报语音

    },

    onError: function(text) {

    plus.nativeUI.alert(text);

    },

    onTimeout: function() {

    plus.nativeUI.alert("语音播报加载超时!");

    }

    });

    }

    2019-12-16 11:44

guosp

guosp

用下面的方法转一下编码就可以了,只是简单的测试了一下,不喜勿喷

changeEnCode(str) {  
        let res = []  
        for (let i = 0; i < str.length; i++) {  
            // 这个不是正常的encodeUnicode 颠倒了大小端的位置  
            res[i] = ("00" + str.charCodeAt(i).toString(16)).slice(-2) + ("00" + str.charCodeAt(i).toString(16)).slice(-4, -2)  
        }  
        let strCode = "\\u" + res.join("\\u")  
        strCode = strCode.replace(/\\/g, "%")  
        return unescape(strCode)  
    }
FullStack

FullStack - 【插件开发】【专治疑难杂症】【ios上架、马甲包、白包、过审、已成功上架过几百个】【多款插件已上架:https://ext.dcloud.net.cn/publisher?id=22130】【非诚勿扰】QQ:543610866

该问题目前已经被锁定, 无法添加新回复