首页 > 编程语言 >微信小程序实现语音转文字接口,提供中文普通话转文字服务。

微信小程序实现语音转文字接口,提供中文普通话转文字服务。

时间:2023-12-27 18:24:21浏览次数:39  
标签:文字 console log 程序实现 res 录音 微信 voice data

进行录音

  initRecorderManager(){
     // 微信自带语音初始化
     this.data.recorderManager = wx.getRecorderManager();
     // 监听录音开始事件
     this.data.recorderManager.onStart(() => {
       console.log('录音开始');
     });
     // 监听录音暂停事件
     this.data.recorderManager.onPause(() => {
       console.log('录音暂停');
     });
     // 监听录音继续事件
     this.data.recorderManager.onResume(() => {
       console.log('录音继续');
     });
     // 监听录音结束事件
    // 监听录音结束事件
    this.data.recorderManager.onStop((res:any) => {
   // 将res.tempFilePath传入speechToText 进行转换
      console.log('录音结束', res);
      this.setData({
        audioSrc: res.tempFilePath
      });   
      // 获取accessToken的接口
      fly.get('wechat/getAccessToken').then((res: { code: number; data: any; }) => {
        if (res.code == 200) {
            this.setData({
              accessToken: res.data
            });
            speechToText(this.data.accessToken,this.data.audioSrc).then((resf:any) => {

              console.log('resf',resf);
              
              // this.setData({
              //   res:
              //  })
            })
        }else{
          wx.showToast({
            title: '网络错误',
            icon: 'error',
            duration: 2000
          })
        }
    });


    });
     // 监听录音错误事件
     this.data.recorderManager.onError((res:any) => {
       console.error('录音错误', res.errMsg);
     });
  },

提交语音

  1. 先以提交音频的形式来上传到微信服务器进行处理
  2. 在通过接口获取转成文字的数据
    示例
// 封装语音转文本
// accessToken是根据appid,AppSecret获取到的token
// formatPath是录音地址
const speechToText = (accessToken:string,formatPath:string) => {
return new Promise<any>((resolve, reject) => {
  let voice_id = generateUUID()
 // 1.
  wx.uploadFile({
    url: `https://api.weixin.qq.com/cgi-bin/media/voice/addvoicetorecofortext?access_token=${accessToken}&format=mp3&voice_id=${voice_id}&lang=zh_CN`,
    filePath: formatPath,
    name: 'voice',
    success: function(res:any) {
     // 上传成功后的状态码 errcode:0 的时候表示成功了
      console.log('success',JSON.parse(res.data).errcode);
      if(JSON.parse(res.data).errcode == 0){
     // 2.成功后获取
      wx.request({
        method: 'POST',
        url: `https://api.weixin.qq.com/cgi-bin/media/voice/queryrecoresultfortext?access_token=${accessToken}&voice_id=${voice_id}&lang=zh_CN`,
        success: function(resf:any) {
          var text = resf.data.text;
          // 处理识别结果,识别成功后的文件返回
          resolve(text)
        },
        fail:(err)=> {
          console.log('speechToTextrequest',err);
         }
      });
      }
    },
    fail:(err)=> {
     console.log('speechToText',err);
 
    }
  });
})
}

// 生成一个随机的 uuID
function generateUUID() {
  var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
  var uuid = '';
  for (var i = 0; i < 32; i++) {
    var index = Math.floor(Math.random() * chars.length);
    uuid += chars.charAt(index);
  }
  return uuid;
}

标签:文字,console,log,程序实现,res,录音,微信,voice,data
From: https://www.cnblogs.com/imxiaoxin/p/17931144.html

相关文章

  • 07.微信小程序性能分析
    微信小程序界面渲染架构微信小程序的组件通讯架构Web分析工具edge:edge://inspect/#devices(推荐)chrome:chrome://inspect/  chrome个别版本有bug会导致界面错乱firefoxabout:debugging ......
  • 微信视频号广告全量开放,优势有哪些?
    1、熟人社交优势明显2、用户池庞大、对广告接受度较高3、流量转化链路多......
  • 纯CSS技术妙不可言,打造惊艳文字效果!
    哈喽!大家好!我是【程序视点】的小二哥。前言CSS是一门很特殊的语言,你认为CSS只能用来控制网页的结构与样式,但只要你有丰富的想象力,就能创造无限可能。本文中为你精选了10个使用纯CSS实现的文字炫酷效果,欣赏完之后一定要自己实现体验一番哦~一.渐变文字效果该效果主要利用backgr......
  • 视频监控EasyCVR如何通过设置sei接口,实现在webrtc视频流中添加画框和文字?
    安防视频监控系统基于视频综合管理平台EasyCVR视频系统,采用了开放式的网络结构,可以提供实时远程视频监控、视频录像、录像回放与存储、告警、语音对讲、云台控制、平台级联、磁盘阵列存储、视频集中存储、云存储等丰富的视频能力,具备权限管理、设备管理、鉴权管理、流媒体接入与转......
  • git 提交后中文字符会乱码
    转载自:https://blog.csdn.net/yilongchuan/article/details/92833077最近发生那了一件怪事,当然菜鸡经常碰见怪事本来一个.properties文件在idea里面commit的时候看了一下diff,没发现异常,但是提交到gitlab上发现.properties的所有中文字符都变成了\xxxx的ascii的编码。 然......
  • 微信小程序自动化测试方案调研和对比
    方案优点缺点​微信开发工具-手动录制简单方便,点击即可回放会因为网络延迟等回放失败,可定制化弱​官网sdk miniprogram-automator配合jest,较为方便,只需写一些js代码需要有js代码功底,以及遇到shodaw-root时定位元素较为困难​官网测试框架 Minium功能全面,......
  • 视频监控EasyCVR如何通过设置sei接口,实现在webrtc视频流中添加画框和文字?
    安防视频监控系统基于视频综合管理平台EasyCVR视频系统,采用了开放式的网络结构,可以提供实时远程视频监控、视频录像、录像回放与存储、告警、语音对讲、云台控制、平台级联、磁盘阵列存储、视频集中存储、云存储等丰富的视频能力,具备权限管理、设备管理、鉴权管理、流媒体接入与转......
  • 微信小程序测试框架minium 报错MiniCommandError: timeout问题排查和解决
    系统:win10python版本:3.11.7minium版本:1.4.6微信开发工具版本:1.06.2310080运行minitest官网的一个简单例子,内容如下#!/usr/bin/envpython3importminiumclassFirstTest(minium.MiniTest):deftest_get_system_info(self):sys_info=self.mini.get_sys......
  • 微信小程序自定义ui库开发记录
    首先去翻官网,看有没有提供,发现微信官方提供了命令行工具,用于快速初始化一个项目npminstall-g@wechat-miniprogram/miniprogram-cli自定义组件/开发第三方自定义组件(qq.com)使用体验打包后的组件,每个js顶部都会带上一大段代码,增大了文件体积。没有相关的组件文档生......
  • echart 柱状图x轴悬浮显示文字
    两种方法:1.自带属性,自带样式;2.自定义样式renderBarChart(){//letthat=thisconstbarChart=echarts.init(document.getElementById('bar-chart'))constbarOptions={title:{//text:this.selectEchartData.label.le......