微信小程序云开发智能人机聊天室(可以语音转文字 文字转语音的)

本文介绍如何使用微信小程序的云开发功能创建一个具备语音识别和文字转换功能的智能人机聊天室。用户可以通过语音输入,系统将语音转化为文字,反之亦然,实现便捷的交互体验。
摘要由CSDN通过智能技术生成

       

js

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

  /**
   * 页面的初始数据
   */
  data: {
    play_stop: 2,
    textInputTis: 1,
    tis: '按住 说话',
    //语音
    recordState: false, //录音状态
    content: '', //内容
    answer: '', //答案
    src: '', //答案语音
    // 当is_clock为true时识别
    is_clock: true,
    list: [{
      type: 2,
      src: '',
      text: '智能人机聊天!',
    },
    ]
  },
  // 发送消息
  sendOut(e) {
    var that = this
    console.log(1111, e)
    let text = e.detail.value
    if (text == '') {
      wx.showToast({
        title: '请输入聊天内容',
        icon: 'none',
      })
    } else {
      let arr = {
        type: 1,
        src: '',
        text: text
      };
      var a = that.data.list;
      a.push(arr)
      that.setData({
        content: text,
        list: a,
        title: ''
      })
      this.answer()
    }
  },
  // 语音文字切换
  textInputTis() {
    console.log('this.data.textInputTis', this.data.textInputTis)
    if (this.data.textInputTis == 1) {
      this.setData({
        textInputTis: 2
      })
    } else if (this.data.textInputTis == 2) {
      this.setData({
        textInputTis: 1
      })
    }
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options) {
    // 


    //识别语音
    this.initRecord();
  },
  onReady() {
    //创建内部 audio 上下文 InnerAudioContext 对象。
    this.innerAudioContext = wx.createInnerAudioContext();
    this.innerAudioContext.onError(function(res) {
      console.log(res);
     this.setData({
       play_stop:1,
     })
    })
  },
  //识别语音 -- 初始化
  initRecord: function() {
    const that = this;

    // 有新的识别内容返回,则会调用此事件
    manager.onRecognize = function(res) {
      console.log(res)
    }
    // 正常开始录音识别时会调用此事件
    manager.onStart = function(res) {
      console.log("成功开始录音识别", res)
    }
    // 识别错误事件
    manager.onError = function(res) {
      console.error("error msg", res)
    }
    //识别结束事件
    manager.onStop = function(res) {
      console.log('..............结束录音')
      console.log('录音临时文件地址 -->' + res.tempFilePath);
      console.log('录音总时长 -->' + res.duration + 'ms');
      console.log('文件大小 --> ' + res.fileSize + 'B');
      console.log('语音内容 --> ' + res.result);
      if (that.data.is_clock == true) {
        // 语音结束识别


        if (res.result == '') {
          wx.showModal({
            title: '提示',
            content: '听不清楚,请重新说一遍!',
            showCancel: false,
            s
  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值