收藏
评论

微信同声传译小程序插件 —— 机器翻译、智能语音

开发文档:https://mp.weixin.qq.com/wxopen/plugindevdoc?appid=wx069ba97219f66d99&token=61191740&lang=zh_CN



插件功能

  • 语音转文字

  • 语音合成

  • 文本翻译



具体使用案例可以查看面对面翻译小程序开源项目:  https://github.com/Tencent/Face2FaceTranslator            

     

简单DEMO实现:


step 1:添加插件



在使用前,需要登录官网 设置 → 第三方服务 → 添加插件

搜索 【微信同声传译】并添加



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


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


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


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


step 2:语音输入

希望做到的效果是按住某个按钮,开始识别语音,松开按钮就结束识别

<view  catchtouchstart="streamRecord" catchtouchend="endStreamRecord">中文view>


// index.js
Page({
 data: {},
 streamRecord: function() {
   manager.start({
     lang: 'zh_CN',
   })
 },
 streamRecordEnd: function() {
   manager.stop()
 }
})


step 3:绑定录音回调事件



<view>语音识别内容:{{currentText}}view>


// page.js
Page({
 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:文本翻译


<view>翻译结果:{{translateText}}view>


// page.js
Page({
 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 => {
     // 可以重新得到语音合成文件和过期时间
   },
})


面对面翻译小程序

面对面翻译小程序是微信团队针对中英文面对面沟通的场景开发的流式语音翻译小程序,基于微信同声传译插件封装实现,提供了中英文语音识别,文本翻译等功能。

预览

面对面翻译小程序

下载与使用

  1. 克隆代码
  2. project.config.json 中的 appid 替换成在公众平台申请的项目 id
  3. 公众平台 → 设置 → 第三方服务 → 插件管理 中 添加微信同声传译插件 (wx069ba97219f66d99)
  4. 打开微信开发者工具中添加项目

微信版本要求

基础库版本 >= 1.9.94

  • 使用插件,需要基础库版本 >= 1.9.6
  • 插件内调用wx.getRecorderManager接口,需要基础库版本 >= 1.9.94

微信同声传译插件支持功能

  • 语音识别 (目前支持 zh_CN(中国大陆), en_US(英语))
  • 文本翻译 (目前支持 zh_CN(中国大陆),  en_US(英语))
  • 语音合成 (目前支持 zh_CN(中国大陆),  en_US(英语))

FAQ

什么时候开放英语语音合成?

插件语音合成支持en_US(英语)正在加紧开发中

插件语音合成目前已经支持en_US(英语)

对于插件有新需求,可描述具体使用场景发送邮件至lethexie@tencent.com

License

The MIT License

最后一次编辑于  2018-08-13
收藏

14 个评论

  • 哄哄
    哄哄
    2018-08-13

    通过这个插件能否获取用户原始的语音内容?

    2018-08-13
    赞同
    回复
  • 哄哄
    哄哄
    2018-08-13

    我的一个需求是:如何获取用户原始输入的语音?

    2018-08-13
    赞同
    回复
  • Derrick舰长
    Derrick舰长
    2018-07-09

    我对由英文文本合成的英文语言有要求

    1 可以配置是欧美男音,还是欧美女音

    2 目前的欧美英文合成女音,能够更自然点么,更拟人些?用户体验不好啊,我还想用合成的英文语言练习美式英语听力呢。

    2018-07-09
    赞同
    回复 2
    • Polaris
      Polaris
      2018-07-10

      你好,感谢反馈。英文合成效果会继续优化的,配置男声和女声正在计划中。

      2018-07-10
      1
      回复
    • Derrick舰长
      Derrick舰长
      2018-07-21回复Polaris

      感谢微信同声传译团队。

      2018-07-21
      回复
  • Aliya_零落
    Aliya_零落
    2018-06-26

    面对面翻译英语可以正常合成播放,我们自己开发的小程序为什么不行?如果是没有开放,请问什么时候能开放呢?能有时间表嘛?

    2018-06-26
    赞同
    回复 3
    • Polaris
      Polaris
      2018-06-29

      你好,英文语音合成当前已经开放,可以尝试使用。

      2018-06-29
      回复
    • 魔耳马老师
      魔耳马老师
      2018-07-31回复Polaris

      有些单词发音不准确,比如minute(分钟)like(喜欢),暂时发现这两个,请问能修正吗?谢谢

      2018-07-31
      回复
    • Polaris
      Polaris
      2018-08-06回复魔耳马老师

      已反馈给后台同学。

      2018-08-06
      回复

正在加载...

登录 后发表内容