开源地址:

https://github.com/Tencent/Fa...

近期咱们公布了微信同声传译小程序插件,收费凋谢微信AI团队在机器翻译、智能语音畛域的业界当先成绩,使开发者简便地在小程序中退出机器翻译、智能语音能力。

当初咱们开源齐全基于微信同声传译插件实现的面对面翻译小程序,以进一步升高小程序开发者应用插件的门槛。

小程序开发者参考面对面翻译开源实现,只须要调用几个简略API,就能够实现一个翻译利用。

咱们的终极目标是:0门槛搞定!!

插件性能

  • 语音输入
  • 语音合成
  • 文本翻译

上面将展现如何应用插件“0门槛”5步轻松实现面对面翻译小程序。

step 1:增加插件

在应用前,须要登录官网 设置 → 第三方服务 → 增加插件

搜寻 【微信同声传译】并增加

在须要应用插件的小程序 app.json 中指明须要应用的插件版本等信息

// app.json{  ...  "plugins": {    ...    "WechatSI": {      "version": "0.0.6",      "provider": "wx069ba97219f66d99"  }}

接下来,在index.js引入插件,获取全局惟一的语音辨认管理器recordRecoManager

// index.jsconst plugin = requirePlugin("WechatSI")const manager = plugin.getRecordRecognitionManager()

step 2:语音输入

心愿做到的成果是按住某个按钮,开始辨认语音,松开按钮就完结辨认

<!-- index.wxml --><view  catchtouchstart="streamRecord" catchtouchend="endStreamRecord">中文</view>
// index.jsPage({  data: {},  streamRecord: function() {    manager.start({      lang: 'zh_CN',    })  },  streamRecordEnd: function() {    manager.stop()  }})

step 3:绑定录音回调事件

<!-- index.wxml --><!-- 能够在页面上实时输入语音辨认后果 --><view>语音辨认内容:{{currentText}}</view>
// page.jsPage({  data: {    currentText: '',  },  initRecord: function() {    //有新的辨认内容返回,则会调用此事件    manager.onRecognize = (res) => {      let text = res.result      this.setData({        currentText: text,      })    }    // 辨认完结事件    manager.onStop = (res) => {      let text = res.result      if(text == '') {        // 用户没有谈话,能够做一下提醒解决...        return      }      this.setData({        currentText: text,      })      // 失去残缺辨认内容就能够去翻译了      this.translateTextAction()    }  },  translateTextAction: function() {},  onLoad: function() {    this.initRecord()  }})

step 4:文本翻译

<!-- index.wxml --><view>翻译后果:{{translateText}}</view>
// page.jsPage({  data: {    currentText: '',    translateText: '',  },  translateTextAction: function() {    let lfrom =  'zh_CN'    let lto = 'en_US'    plugin.translate({      lfrom: lfrom,      lto: lto,      content: this.data.currentText,      tts: true, // 须要合成语音      success: (resTrans)=>{        // 翻译能够失去 翻译文本,翻译文本的合成语音,合成语音的过期工夫        let text = resTrans.result        this.setData({          translateText: text,        })        // 失去合成语音让它自动播放进去        wx.playBackgroundAudio({          dataUrl: resTrans.filename,          title: '',        })      },    })  },})

step 5:语音合成

plugin.translate失去的语音文件是有过期工夫,能够download到本地应用。

如果像面对面翻译一样须要存比拟多历史记录的话,也能够抉择过期之后调用plugin.textToSpeech接口再去从新合成一次。

  plugin.textToSpeech({    lang: 'zh_CN',    content: '我想从新进行语音合成',    success: resTrans => {      // 能够重新得到语音合成文件和过期工夫    },})

小程序开发者参考面对面翻译开源实现,只须要调用几个简略API,就能够实现一个蕴含有语音输入、语音合成、文本翻译的利用。

0门槛搞定!!

想尝试微信语音输入、微信翻译的小程序开发同学们,连忙口头吧!

本文转自微信后盾团队,如有进犯,请分割咱们立刻删除

OpenIMgithub开源地址:

https://github.com/OpenIMSDK/...

OpenIM官网 : https://www.rentsoft.cn

OpenIM官方论坛: https://forum.rentsoft.cn/

更多技术文章:

开源OpenIM:高性能、可伸缩、易扩大的即时通讯架构
https://forum.rentsoft.cn/thr...

【OpenIM原创】简略轻松入门 一文解说WebRTC实现1对1音视频通信原理
https://forum.rentsoft.cn/thr...

【OpenIM原创】开源OpenIM:轻量、高效、实时、牢靠、低成本的音讯模型
https://forum.rentsoft.cn/thr...