• 小程序语音识别接口


    .wxml代码

    <view class="voice-button" bindtouchstart="recordStart" bindtouchend="recordEnd">
              <image class="pic-img"  src="/resource/image/voice.png"></image>
              <view class="pic-text">长按说话</view>
    </view>

    .wxss代码

    .voice-button{
    float: right;
    text-align: center;
    }
    .pic-img{
    width: 132rpx;
    height: 132rpx;
    }
    .pic-text{
    font-size: 26rpx;
    }

    .js代码

    .js页面
      /* 语音功能 */
      //这个是监听语音识别的方法,只要写了bindtouchstart和bindtouchend对应的方法就可自动触发,需注意的是,最好写var that = this;因为会发生指向问题,从而触发不到这个方法。
      initRecord: function(){
        let that = this;
        //有新的识别内容返回,则会调用此事件
        // manager.onRecognize = (res) => {
        //   var recText = this.sendRecord(res.tempFilePath);
        //   console.log('语音识别中');
        //   console.log(result);
        //   this.setData({
        //     inputVal: recText
        //   });
        // }
    
        // 识别结束事件
        manager.onStop ((res) => {
          console.log('监听识别结束');
          console.log(res.tempFilePath)
          that.sendRecord(res.tempFilePath);//识别结束执行上传语音事件
        })
    
        // 识别错误事件
        manager.onError ((res) => {
    
          that.setData({
           //这里的参数根据项目要求自行设置
          })
    
        })
      },
      //识别开始
      recordStart: function(){
        let that = this;
        manager.start({
          duration: 30000,//指定录音的时长,单位 ms
          sampleRate: 16000,//采样率
          numberOfChannels: 1,//录音通道数
          encodeBitRate: 96000,//编码码率
          format: 'mp3',//音频格式,有效值 aac/mp3
          frameSize: 50,//指定帧大小,单位 KB
        })
        that.setData({
            //这里的参数根据项目要求自行设置
        });
        console.log('识别开始')
      },
      //识别结束
      recordEnd: function(){
        manager.stop();
        console.log('识别结束')
      },
      //上传语音方法
      sendRecord: function (src) {
        let that = this;
        app.uploadFile({
          url: url,//这里写语音识别的接口
          method: 'POST',
          filePath: src,
          name: 'file',
          formData: {
            file:src
          },
          header:{
            'Content-Type': 'application/x-www-form-urlencoded'
          },
          success: function (result) {
            console.log('识别结果')
            console.log(result)
            //必须解析
            var res = JSON.parse(result.data);
            console.log(res)
            if(res.success){
              var data = res.item;
              let recText ;
              if(data.length>0){
                recText = data.replace(/。/ig, '');
                that.setData({
                   //这里的参数根据项目要求自行设置
                })
              }else{
                that.setData({
                   //这里的参数根据项目要求自行设置
                });
                app.msg('无识别结果')
                return false;
              }
            }else{
              that.setData({
                listening: false
              });
              app.msg(res.message)
              return false;
            }
          },
          fail: function (err) {
            app.msg(res.message)
            return false;
          }
        });
      },
  • 相关阅读:
    java 标准异常
    java 重新抛出异常
    java 异常链
    java 轨迹栈
    mysql死锁-非主键索引更新引起的死锁
    数据库事务
    JMS学习笔记(一)
    log4j中将SocketAppender将日志内容发送到远程服务器
    Kubernetes之kubectl常用命令
    java代理与动态代理的学习
  • 原文地址:https://www.cnblogs.com/xiaoqi2018/p/10893978.html
Copyright © 2020-2023  润新知