当前位置:   article > 正文

微信小程序使用同声传译插件实现文本转语音播放(适用于食堂取餐报餐场景)_requireplugin("wechatsi")

requireplugin("wechatsi")

一、微信小程序后台启用插件

在这里插入图片描述

二、微信小程序配置文件

在项目app.json中添加以下内容

"plugins": {
    "WechatSI": {
        "version": "0.3.5",
        "provider": "wx069ba97219f66d99"
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

三、小程序页面调用插件播放语音

在需要播放语音的页面添加相关的代码,为提升播放效率,相关的播放内容将缓存起来,已播放过的内容直接调用缓存直接播放,否则从网络中请求新的语音数据。

//引入插件:微信同声传译
const plugin = requirePlugin('WechatSI');
//获取全局唯一的语音识别管理器recordRecoManager
const manager = plugin.getRecordRecognitionManager();

onLoad: function(options) {
    //创建内部 audio 上下文 InnerAudioContext 对象。
    this.innerAudioContext = wx.createInnerAudioContext();
    this.innerAudioContext.onError(function (res) {
        console.log(res);
        wx.showToast({
            title: '语音播放失败',
            icon: 'none',
        })
    })
    this.wordYun("查无订餐记录", function() {
        that.setData({
            loadingFlag: !1
        })
    })
},

// 文字转语音
wordYun: function(e, cb) {
    var that = this;
    var content = e;

    var t_file = wx.getStorageSync(e)
    console.log(t_file)
    if (t_file) {
        console.log("文件播放")
        that.innerAudioContext.src = t_file
        that.innerAudioContext.play(); //播放音频
    } else {
        console.log("网络播放")
        plugin.textToSpeech({
            lang: "zh_CN",
            tts: true,
            content: content,
            success: function(res) {
                console.log(res);
                console.log("succ tts", res.filename);
                that.setData({
                    src: res.filename
                })

                wx.downloadFile({
                    url: res.filename,
                    success: function(res) {
                        let path = res.tempFilePath
                        console.log("my path")
                        console.log(path)
                        that.innerAudioContext.src = path
                        that.innerAudioContext.play(); //播放音频

                        wx.setStorage({
                            key: e,
                            data: path,
                        })
                        // wx.saveFile({
                        //     tempFilePath: path,
                        //     success(res) {
                        //         var savedFilePath = res.savedFilePath;



                        //     },
                        // }
                    }
                })
                // that.innerAudioContext.src = res.filename
                // that.innerAudioContext.play(); //播放音频
                typeof cb == "function" && cb()

            },
            fail: function(res) {
                console.log("fail tts", res)
            }
        })
    }
},
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/在线问答5/article/detail/904716
推荐阅读
相关标签
  

闽ICP备14008679号