codecamp

微信小程序 插件服务·微信同声传译

微信同声传译

微信同声传译插件是微信自研的语音输入,文本翻译等功能的插件封装,用于提供给第三方小程序调用。

体验入口

语音输入

提供语音的实时流式识别能力。 通过获取全局唯一的语音识别管理器recordRecoManager实现

recordRecoManager

recordRecoManager 对象的方法列表:

方法参数说明
startoptions开始识别
stop结束识别
onStartcallback正常开始录音识别时会调用此事件
onRecognizecallback有新的识别内容返回,则会调用此事件
onStopcallback识别结束事件
onErrorcallback识别错误事件

start(options)说明:

属性类型必填默认值说明
durationNumber60000指定录音的时长,单位ms,最大为60000。如果传入了合法的 duration ,在到达指定的 duration 后会自动停止录音
langStringzh_CN识别的语言,目前支持zh_CN en_US zh_HK sichuanhua

onStart(callback)回调结果说明:

属性类型说明
msgString默认Ok

onStop(callback)回调结果说明:

属性类型说明
tempFilePathString录音临时文件地址
durationNumber录音总时长,单位: ms
fileSizeNumber文件大小,单位: B
resultString最终识别结果

onError(callback)回调结果说明:

属性类型说明
retcodeInt错误码
msgString错误信息

onRecognize(callback)回调结果说明:

属性类型说明
resultString识别结果

onError错误码说明:

错误码说明
-30001录音接口出错
-30002录音暂停接口被调用,录音终止,识别终止
-30003录音帧数据未产生或者发送失败导致的数据传输失败
-30004因网络或者其他非正常状态导致的未查询识别结果
-30005语音识别服务内部错误
-30006语音识别服务未在限定时间内识别完成
-30007start启动参数错误
-30008查询请求时网络失败
-30009创建鉴权内部失败
-30010发送鉴权时网络失败
-30011试图在识别正在进行中是再次调用start,返回错误,正在进行的识别任务正常进行
-30012当前无识别任务进行时调用stop错误
-30013其他未知错误
-40001达到接口调用频率限制

示例代码:

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

//index.js
var plugin = requirePlugin("WechatSI")
let manager = plugin.getRecordRecognitionManager()
manager.onRecognize = function(res) {
    console.log("current result", res.result)
}
manager.onStop = function(res) {
    console.log("record file path", res.tempFilePath)
    console.log("result", res.result)
}
manager.onStart = function(res) {
    console.log("成功开始录音识别", res)
}
manager.onError = function(res) {
    console.error("error msg", res.msg)
}
manager.start({duration:30000, lang: "zh_CN"})

文本翻译

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

translate(OBJECT)

translate(object)说明:

参数名类型必填说明
lfromString文本语言 zh_CN(中国大陆)   en_US(英语)
ltoString目标语言 zh_CN(中国大陆)  en_US(英语)
contentString需要被翻译的文本内容,后台限制1000字节大小
ttsBoolean是否对翻译结果进行语音合成,默认为false,不进行语音合成
successFunction调用成功时触发的callback
failFunction调用失败时触发的callback
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)

success(callback)回调结果说明

属性类型说明
retcodeIntretcode == 0 时翻译成功
originString原始文本
resultString翻译结果
filenameString语音合成返回的语音地址,仅支持合成中文语音
expired_timeInt语音合成链接超时时间戳 如1525930552超时后无法播放,可使用时间为3小时

success返回码说明: 翻译成功,合成失败时调用success回调

状态码说明
0翻译合成成功
-10006翻译成功,合成内部错误
-10007翻译成功,传入了不支持的语音合成语言
-10008翻译成功,语音合成达到频率限制

fail(callback)回调结果说明

属性类型说明
retcodeInt错误码
msgString错误信息

fail错误码说明:

错误码说明
-10001语言检查错误
-10002输入的待翻译内容格式不正确
-10003传入过长的待翻译文本内容
-10004翻译内部逻辑错误
-10005请求发送失败,请检查网络
-40001接口调用频率达到限制,请联系插件开发者

示例代码

plugin.translate({
  lfrom:"en_US",
  lto:"zh_CN",
  content:"hello, this is the first time to test?",
  success: function(res) {
    if(res.retcode == 0) {
      console.log("result", res.result)
    } else {
      console.warn("翻译失败", res)
    }
  },
  fail: function(res) {
    console.log("网络失败",res)
  }
})

语音合成

语音合成支持的语言有 zh_CN(中国大陆),en_US(英文)

textToSpeech(OBJECT)

textToSpeech(object)说明:

参数名类型必填说明
langString文本语言 zh_CN(中国大陆)en_US(英文)
contentString需要被翻译的文本内容,后台限制1000字节大小
successFunction调用成功时触发的callback
failFunction调用失败时触发的callback

success(callback)回调结果说明

属性类型说明
retcodeIntretcode == 0 时请求成功
originString原始文本
filenameString语音合成返回的语音地址,可自行下载使用
expired_timeInt语音合成链接超时时间戳 如1525930552,超时后无法播放,可使用时间为3小时

success返回码说明:

状态码说明
0语音合成成功

fail(callback)回调结果说明

属性类型说明
retcodeInt错误码
msgString错误信息

fail错误码说明:

错误码说明
-20001语音合成语言格式出错
-20002输入的待合成格式不正确
-20003语音合成内部错误
-20005网络错误
-40001接口调用频率达到限制,请联系插件开发者

示例代码

plugin.textToSpeech({
    lang: "zh_CN",
    tts: true,
    content: "一个常见的需求",
    success: function(res) {
        console.log("succ tts", res.filename)   
    },
    fail: function(res) {
        console.log("fail tts", res)
    }
})

版本要求

基础库版本 >= 1.9.94

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

配额说明

由于资源限制,当前各个接口调用存在配额限制,如业务有特殊更多需求,请邮箱联系roytianzou@tencent.com申请,邮件配额模版如下。 语音输入配额:每个小程序250条/分钟,3w条/天。 文本翻译配额:每个小程序500次/分钟,10w次/天。 语音合成配额:每个小程序100次/分钟,2w次/天。

配额申请模版

公司简介:(个人则填写个人)

小程序简介:

小程序appid:

申请接口名:

当前用户量:(当前未上线可填无)

当前调用量:(当前未上线可填无)

申请配额: xx 次/分钟, xx次/天。

合理的配额推导(请提供使用场景,预期用户量,用户使用频率,高峰时段,平均时长/字数):


微信小程序 工具库类·国际化
微信小程序 插件服务·OCR支持
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

微信小程序 指南

目录结构

开放能力

微信小程序 调试

微信小程序 实时日志

微信小程序 小程序测速

微信小程序 基础组件

微信小程序 API

媒体

界面

微信小程序API 绘图

微信小程序 服务端

接口调用凭证

统一服务消息

微信小程序 服务市场

微信小程序 生物认证

微信小程序 云开发

服务端

微信小程序云开发服务端API 数据库

SDK文档

微信小程序 扩展能力

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }