微信小程序“同声传译”插件(语音识别,语音合成)体验

版权声明:博主原创文章,欢迎大家转载! https://blog.csdn.net/happycxz/article/details/80674270

本文原文:http://www.happycxz.com/m/?p=383

官方插件上线

微信小程序“同声传译”插件介绍 传送门

遥知之改版

原来使用的是我自己封装的API,现在改成用同传插件,很方便,而且响应速度还快,欢迎切换,给我的服务器减减肥。:)
我只用到了同传插件的语音识别和语音合成功能,没有用翻译能力,感兴趣的小伙伴自己去研究一下。

调用方式

语音识别部分见: page/asr/asr.js

var pageSelf = undefined;


var plugin = requirePlugin("WechatSI")
let manager = plugin.getRecordRecognitionManager()
manager.onRecognize = function (res) {
  UTIL.log("current result", res.result)
}
manager.onStop = function (res) {
  UTIL.log("record file path", res.tempFilePath)
  UTIL.log("result", res.result)
  //res.result is the asr result, change the follow step to your source
  //NLI.process(res.result, pageSelf);
}
manager.onError = function (res) {
  UTIL.log("error msg", res.msg)
}





  ////////////////////////////// 以下是调用同声传译插件的方式
  //手指按下
  touchdown_plugin: function () {
    var _this = this
    UTIL.stopTTS();
    manager.start({ duration: 30000, lang: "zh_CN" })
  },
  //手指松开
  touchup_plugin: function () {
    manager.stop();
    wx.showToast({
      title: '正在识别……',
      icon: 'loading',
      duration: 2000
    })
  },

page/asr/asr.wxml

<button type="primary" style="border-radius: 20px;" class="btn-style" bindtouchstart="touchdown_plugin" bindtouchend="touchup_plugin">按下录音,松开结束</button>

语音合成(播报)部分见: util/util.js

var plugin = requirePlugin("WechatSI")

var innerAudioContext = wx.createInnerAudioContext();
innerAudioContext.onError((res) => {
  // 播放音频失败的回调
})




function playTTS(text) {
  //need to add WXAPP plug-in unit: WechatSI
  plugin.textToSpeech({
    lang: "zh_CN",
    tts: true,
    content: text,
    success: function (res) {
      log("succ tts", res.filename)
      innerAudioContext.src = res.filename;
      innerAudioContext.play()
    },
    fail: function (res) {
      log("fail tts", res)
    }
  })
}

function stopTTS() {
  innerAudioContext.stop();
}

module.exports = {
  playTTS: playTTS,
  stopTTS: stopTTS,
}

Have fun…

猜你喜欢

转载自blog.csdn.net/happycxz/article/details/80674270