Android_Yanbin
Android_Yanbin
  • 发布:2016-12-21 19:20
  • 更新:2024-10-30 09:01
  • 阅读:29097

文字合成语音的实现

分类:HTML5+

HBuilder版本号为7.6.3.201612161809及之后的用户请用如下Native.Js代码实现:

var receiver;  

                receiver = plus.android.implements('com.iflytek.cloud.SynthesizerListener', {  
                    onEvent: function(int eventType, int arg1, int arg2, Bundle obj) {  
                        console.log("onEvent");  
                    },  
                    onSpeakBegin: function() {  
                        console.log("开始阅读");  
                    },  
                    onSpeakPaused: function() {  
                        console.log(" 暂停播放 ");  
                    },  
                    onSpeakResumed: function() {  
                        console.log("继续播放");  
                    },  
                    onBufferProgress: function(percent, beginPos, endPos, info) {  
                        console.log("合成进度" + percent);  
                    },  
                    onSpeakProgress: function(percent, beginPos, endPos) {  
                        console.log("播放进度" + percent);  
                    },  
                    onCompleted: function(error) {  
                        console.log("播放完毕");  
                    }  
                });  

                var main = plus.android.runtimeMainActivity();  

                var SpeechUtility = plus.android.importClass('com.iflytek.cloud.SpeechUtility');  

                SpeechUtility.createUtility(main, "appid=53feacdd");  

                var SynthesizerPlayer = plus.android.importClass('com.iflytek.cloud.SpeechSynthesizer');  

                var play = SynthesizerPlayer.createSynthesizer(main, null);  
                 // 开始合成  
                play.startSpeaking('新年快乐', receiver);  
        // 取消合成  
        play.stopSpeaking();  
        // 暂停播放  
        play.pauseSpeaking();  
        // 继续播放  
        play.resumeSpeaking();

该版本之前的用户请参考下面的写法:
由于Android系统tts不支持中文,使用科大讯飞文字转语音功能,使用如此功能时,需要保证manifest.json中permissions节点含有speech节点(如"Speech": {"description": "管理语音识别插件" })。

var main = plus.android.runtimeMainActivity();  
var SynthesizerPlayer = plus.android.importClass('com.iflytek.speech.SynthesizerPlayer');  
var play = SynthesizerPlayer.createSynthesizerPlayer(main,'appid=53feacdd');  
play.playText('水果',null,null);

iOS平台参考[http://ask.dcloud.net.cn/question/4175)(http://ask.dcloud.net.cn/question/4175)

12 关注 分享
赵梦欢 1***@qq.com JBoss 4***@qq.com Trust z***@qq.com 6***@qq.com z***@gmail.com 2***@qq.com 2***@qq.com 映月辉煌 j***@126.com

要回复文章请先登录注册

1***@163.com

1***@163.com

用真机测试没问题,但是云打包后没反应,这是怎么回事?
2020-09-05 10:40
w***@sino-carbon.cn

w***@sino-carbon.cn

回复 叫啥好呢 :
大佬,微信小程序中,模拟器可以播放,真机就没反应,为啥呀
2020-08-31 18:12
wxj1

wxj1

离线打包 播放不了,要怎么实现文字合成语音
2020-08-19 16:22
叫啥好呢

叫啥好呢

回复 w***@sino-carbon.cn :
我APP运行手机是可以的 ,没有试小程序。你可以用这个试试https://ext.dcloud.net.cn/plugin?id=182
2020-08-07 15:40
7***@qq.com

7***@qq.com

uni.getBackgroundAudioManager()怎么重置清缓存
2020-08-05 16:42
w***@sino-carbon.cn

w***@sino-carbon.cn

回复 w***@sino-carbon.cn :
具体说,是模拟器、安卓手机有反应,ios没反应
2020-08-05 16:09
w***@sino-carbon.cn

w***@sino-carbon.cn

回复 叫啥好呢 :
我想问下,这段代码在微信小程序 模拟器上面可以语音播放,但是在真机上没有反应,是为什么
2020-08-05 14:48
叫啥好呢

叫啥好呢

这样不好用吗
2020-07-03 15:15
叫啥好呢

叫啥好呢

var a = uni.createInnerAudioContext()
a.src = 'http://tts.baidu.com/text2audio?cuid=baiduid&lan=zh&ctp=1&pdt=311&tex=微信收款0.01元'
a.play()
2020-07-03 15:15
千幻空

千幻空

亲测有用
2020-06-29 09:12