小程序中使用微信同声传译插件实现语音识别、语音合成、文本翻译功能----文本翻译(三)

官方文档链接:https://mp.weixin.qq.com/wxopen/plugindevdoc?appid=wx069ba97219f66d99&token=370941954&lang=zh_CN#-
要使用插件需要先在小程序管理后台设置->第三方设置->插件管理中添加插件,目前该插件仅认证后的小程序。
添加插件

文本翻译功能

文本翻译目前支持的语言有 zh_CN(中国大陆) en_US(英语)。

translate(obj)

参数说明:
1、lfrom:文本语言 zh_CN(中国大陆) en_US(英语),String类型,必填项;
2、lto:目标语言 zh_CN(中国大陆) en_US(英语),String类型,必填项;
3、content:需要被翻译的文本内容,后台限制1000字节大小,String类型,必填项;
4、tts:是否对翻译结果进行语音合成,Boolean类型,默认为false,不进行语音合成;
5、success:调用成功时触发的回调,Function类型;
回调结果说明
retcode::retcode == 0 时翻译成功,Int类型;
origin:原始文本,String类型;
result:翻译结果,String类型
filename:语音合成返回的语音地址,仅支持合成中文语音,String类型;
expired_time:语音合成链接超时时间戳 如1525930552超时后无法播放,可使用时间为3小时,Int类型;
翻译成功,合成失败时success回调,success返回码说明:
0 翻译合成成功
-10006 翻译成功,合成内部错误
-10007 翻译成功,传入了不支持的语音合成语言
-10008 翻译成功,语音合成达到频率限制
6、fail:调用失败时触发的回调,Function类型;
回调结果说明
retcode:错误码,Int类型;
msg:错误信息,String类型。
错误码说明
-10001 语言检查错误
-10002 输入的待翻译内容格式不正确
-10003 传入过长的待翻译文本内容
-10004 翻译内部逻辑错误
-10005 请求发送失败,请检查网络
-40001 接口调用频率达到限制,请联系插件开发者
7、complete:接口调用结束的回调函数(调用成功、失败都会执行),Function类型。

使用:

1、注册插件

在app.json中注册插件
“plugins”: {
“WechatSI”: {
“version”: “0.3.5”,
“provider”: “wx069ba97219f66d99”
}
},

2、在页面中引入插件

//引入插件:微信同声传译
const plugin = requirePlugin(‘WechatSI’)

3、在上述1、2步骤完成后实现文本翻译

plugin.translate({
  lfrom:"en_US", //原语言      
  lto:"zh_CN", // 翻译的目标语言
  content:"hello, this is the first time to test?", //需要翻译的内容
  tts: true, //对翻译结果进行语音合成
  success: (res) => {
    console.log(res);
    if(res.retcode == 0) {
      console.log("原始文本=>", res.origin)
      console.log("翻译结果=>", res.result)
      console.log("语音合成返回的语音地址=>", res.filename)
      console.log("语音合成超时后无法播放时间戳=>", res.expired_time)
      // 1、设置tts为true,播放合成的语音
      const backgroundAudioManager = wx.getBackgroundAudioManager()
      backgroundAudioManager.src = res.filename  
      backgroundAudioManager.title = '文本播放'  //必须 否则语音无法播放
    } else {
      console.warn("翻译失败", res)
    }
  },
  fail: function(res) {
    console.log("网络失败",res)
  }
})

案例实现代码:

//引入插件:微信同声传译
const plugin = requirePlugin('WechatSI')
Page({
  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    this.textTranslate("积极的语言塑造积极的思维,积极的思维塑造积极的人生", "zh_CN", "en_US")
    // this.textTranslate()
  },

  textTranslate(content = "positive  language, positive  mind, positive  life", lfrom = "en_US", lto = "zh_CN"){
    plugin.translate({
      lfrom,
      lto,
      content,
      tts: true, //对翻译结果进行语音合成
      success: (res) => {
        console.log(res);
        if(res.retcode == 0) {
          console.log("原始文本=>", res.origin)
          console.log("翻译结果=>", res.result)
          console.log("语音合成返回的语音地址=>", res.filename)
          console.log("语音合成超时后无法播放时间戳=>", res.expired_time)
          // 1、设置tts为true,播放合成的语音
          const backgroundAudioManager = wx.getBackgroundAudioManager()
          backgroundAudioManager.src = res.filename  
          backgroundAudioManager.title = '文本播放' 
          // 2、使用语音合成方法播报
          // this.playTextToVoice(res.result)
        } else {
          console.warn("翻译失败", res)
        }
      },
      fail: function(res) {
        console.log("网络失败",res)
      }
    })
  },

  // 文字转语音
  playTextToVoice(content){
    //创建内部 audio 上下文 InnerAudioContext 对象。
    this.innerAudioContext = wx.createInnerAudioContext();
    const that = this;
    plugin.textToSpeech({
      // 调用插件的方法
      lang: 'zh_CN',
      // lang: 'en_US',
      content,
      success: function (res) {
        that.playAudio(res.filename);
      }
    });
  },
  // 播报语音
  playAudio(e) {
    this.innerAudioContext.src = e; //设置音频地址
    this.innerAudioContext.play(); //播放音频
  },
  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {
    this.innerAudioContext && this.innerAudioContext.stop();
    this.innerAudioContext && this.innerAudioContext.destroy();
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
    this.innerAudioContext && this.innerAudioContext.stop();
    this.innerAudioContext && this.innerAudioContext.destroy();
  },
})

效果图

具体案例代码亦可参考:https://gitee.com/mei-ruohan/mini-program-collection/tree/master/pages/texttranslate

使用语音识别,用你的声音在网上填写任何表格!用你的声音控制互联网! 语音识别无处不在 通过“随处语音识别”,您可以用语音控制互联网。使用语音识别来填写网络上的表格和文件!用语音文本口述电子邮件! 无需将语音复制并粘贴到表单输入字段中。您所说的演讲会自动输入任何网页免提的任何形式。您还可以浏览网页并使用语音命令完全控制网站。它可以像虚拟助手一样使用。 新!语音识别功能现在包括文本语音,自定义语音命令和脚本。有关更多信息,请参阅 seabreezecomputers.com/speech 免费功能: *选择数十种语言和方言进行语音识别 *口述电子邮件和在线文件 *用你的声音填写表格 *用你的声音到下一个或上一个字段 *使用您的声音到任何网页 *切换标签并用您的声音导航网页 *向上或向下滚动页面 *用你的声音点击链接和按钮 *剪切,复制,粘贴,清除,突出显示 *说“显示标签”以查看网页上按钮的标签 *说“播放(艺术家或歌曲的名称)”即时播放音乐 *文字语音(tts) * 个自定义语音命令 *脚本 全部功能: *使用语音激活唤醒短语:(示例:'Ok Google','Computer','Alexa','Hey Siri','Hey Cortana') * Chrome启动时始终启动“语音识别功能”(始终倾听) *在后台启动“随处语音识别” *自动提交搜索字段 *如果在选项卡中播放音频,则暂停“语音识别随处” *虚拟助手模式 *在“随时随地识别语音”时,防止系统休眠 *在“随时随地识别语音”时,防止屏幕进入睡眠状态 *无限制的自定义语音命令 *自动标点符号 *导出/导入自定义命令 免责声明:Sea Breeze Computers对本产品或服务的性能不作任何保证 此扩展程序使用Google的Web Speech API进行语音识别,因此我们无法保证语音识别服务的质量或持续运行。 支持语言:Deutsch,English,Français,español,italiano,português (Brasil),português (Portugal),svenska,čeština,中文 (简体),中文 (繁體),日本語
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值