微信小程序中聊天精灵+语音播报

微信小程序中的自动聊天

主要分为两个部分的调用 图灵机器人接口+调用百度语音播报API接口,废话少说咱们直接上代码

const app = getApp()Page({  hello: function() {    this.setData({      pd: true    })  },  /**   * 页面的初始数据   */  data: {    tittle: "机器人聊天室",    syas: [],    nr: '',    pd: false,    headLeft: 'https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=4139308026,2925331886&fm=26&gp=0.jpg',    headRight: '',    token: '',    tulingspeak: '' ,    filePath:'',    bianliang:'',    scrollTop: 600  },  methods: {}, 
 /**   * 生命周期函数--监听页面加载   */
   onLoad: function() {    let that = this    wx.getUserInfo({  
       success: function(e) {     
          let header = e.userInfo.avatarUrl     
             that.setData({         
              headRight: header        })      }    })
  },  
  converSation: function(e) {    let that = this    var obj = {},      isay = e.detail.value.says, //获取输入了什么     
   syas = that.data.syas, //获取当前数组的内容并且把它付给syas变量    
     length = syas.length, //获取当前的数组长度   
        key = '2972a46feda14f908df7537da16d4f46' //这里填入你得到的图灵机器人的
        apikey    console.log(length)  
          wx.request({ //请求图灵机器人的接口     
           url: 'http://www.tuling123.com/openapi/api?key=' + key + '&info=' + isay,    
             success: function(res) {        let tuling = res.data.text; //这个是图聆机器人返回值       
              obj.robot = tuling; //把返回值发给正常 给这个对象robot属性           	
              obj.isay = isay;
               //获取输入的东西给obj.isay     
              obj.id = "div"+length      
              syas[length] = obj;; //把这个obj对象变成 syas【length】的数组的值       
              that.setData({          syas: syas, //把整个syas给Data里的syas            				   			 nr: '',        
              pd: false,          tulingspeak: res.data.text   ,//把这个机器人返回的值附加给全局变量       
                          scrollTop: that.data.scrollTop + 350  //这是啥        });             }    })    that.to();  }, 
                           delectChat: function() { //清除syas里边的内容    
                           let that = this    that.setData({      syas: [], //清空      nr: ''    })  }, 
                            to: function() {    var that  =  this ;    var grant_type = "client_credentials";   
                             var appKey = "ohNbirS0WGjKbCOR8FpxOeF5";    var appSecret = "dnIdDq8szxqCQ0yLMt25NPTTwezbMRoI";  
                               var url = "https://openapi.baidu.com/oauth/2.0/token?" + "grant_type=" + grant_type + "&client_id=" + appKey + "&client_secret=" + appSecret;    wx.request({      url:url,      method: "GET",      dataType:'json',    
                              success: function(res) { //设置1这个成功时候的返回的TOKEN码        that.setData({          token: res.data.access_token, //把这个TOKEN码给一个常量               })      
                                that.cancel();      }    })  },  cancel: function(e) { //具体翻译每一句话   
                               var text = e.currentTarget.dataset.text; //把全局变量图灵机器人的话给到一个局部变量   
                                var tex = encodeURI(text); //转换编码url_encode UTF8编码    var tok = this.data.token; //把TOKEN值给到一个变量+   
                                var cuid = 12345685; // 字符编码   
                               var ctp = 1; //表示语音种类  
                                 var lan = "zh"; // zh表示中文    var spd = 5; // 表示朗读的语速,9代表最快,1是最慢    
                                 var url = "https://tsn.baidu.com/text2audio?tex=" + tex + "&lan=" + lan + "&cuid=" + cuid + "&ctp=" + ctp + "&tok=" + tok + "&spd=" + spd    wx.downloadFile({ //下载资源后返回的路径位置      url: url,      success: (res)=> {        console.log(res)        console.log('chenggong')        this.setData({          filePath : res.tempFilePath,//临时文件路径           scrollTop: this.data.scrollTop + 350  //这是啥        })        // 只要服务器有响应数据,就会把响应内容写入文件并进入 success 回调,业务需要自行判断是否下载到了想要的内容                 this.play()              },    
                                   filePath: () => { },    
                                   complete: () => { }    });  },  //播放  play: function()
                                    {    const tolingtextspeak = wx.getBackgroundAudioManager()//调用微信的音乐播放功能    tolingtextspeak.title="语音播放"    tolingtextspeak.src = this.data.filePath//把播放的地址给这个    tolingtextspeak.play()  },})

希望对大家有帮助这次分享结束。

你可能感兴趣的:(微信小程序中聊天精灵+语音播报)