上期,咱们在《「医院 LBS 位置服务」插件:输出LBS室内位置能力,为改善就医服务提供解决方案》一文中介绍了「医院 LBS 位置服务」小程序插件的意义、使用场景以及使用方法。web
今天咱们为你们推荐的插件是「微信同声传译」,若是你想在小程序中拥有快速实现语音转文字、文本翻译、语音合成等能力,那么「微信同声传译插件」是你的不二选择。接下来,咱们将从使用场景到使用方法,为你做出详细的介绍。json
今天咱们说到的「微信同声传译」插件,是由微信智聆语音团队、微信翻译团队与公众平台联合推出的同传开放接口,可经过语音转文字、文本翻译、语音合成接口,为开发者赋能。值得一提的是,在原有功能的基础上,插件还新增了对粤语语音识别的支持。小程序
经过这个插件,插件使用者能够轻松实现语音读取识别、文本转语音和中英文文本转换,避免这类需求的重复开发工做。微信
小程序「面对面翻译」便使用了插件中的接口能力,并将其开源以帮助开发者快速开发,有兴趣的读者能够体验小程序 👇app
「面对面翻译」小程序码ide
把「微信同声传译」插件放在小程序里,既能够将口语转为文字,也能够帮助用户判断发音是否标准纯正,是最佳听众和英语学习道路上的良师益友。svg
这时能够把「微信同声传译」插件应用到翻译小程序里,说中文,译英文,不再怕出国交流难。学习
只要在小程序里有「微信同声传译」插件,用户就能够按住按钮说话,语音转文字,发送弹幕!ui
「微信同声传译」的功能强大,使用起来却十分简单:this
**1.申请使用插件。**在「小程序管理后台 - 设置 - 第三方服务 - 插件管理」中查找插件名称「微信同声传译」(目前最新版本:0.2.2,appid:wx069ba97219f66d99),并申请使用。
2.引入插件代码后修改配置文件 JSON:
// app.json { ... "plugins": { ... "WechatSI": { "version": "0.2.2", "provider": "wx069ba97219f66d99" } }
3.接下来,在 index.js
引入插件,获取全局惟一的语音识别管理器 recordRecoManager
。
// index.jsconst plugin = requirePlugin("WechatSI")const manager = plugin.getRecordRecognitionManager()
若是你但愿作到的效果是按住某个按钮,开始识别语音,松开按钮就结束识别,那你须要进行如下步骤的操做。
<view catchtouchstart="streamRecord" catchtouchend="endStreamRecord">中文view>
// index.jsPage({ data: {}, streamRecord: function() { manager.start({ lang: 'zh_CN', }) }, streamRecordEnd: function() { manager.stop() } })
<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() } })
<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: '', }) }, }) }, })
plugin.translate
获得的语音文件具备过时时间,能够下载到本地使用。
若是像「面对面翻译」小程序同样须要存比较多历史记录的话,也能够选择过时以后调用 plugin.textToSpeech
接口再去从新合成一次。
plugin.textToSpeech({ lang: 'zh_CN', content: '我想从新进行语音合成', success: resTrans => { // 能够从新获得语音合成文件和过时时间 }, })
若是你想了解更多「微信同声传译」插件详情,欢迎访问开发者社区插件版块相应页面(建议电脑访问):
🔗https://mp.weixin.qq.com/wxopen/pluginbasicprofile?action=intro&appid=wx069ba97219f66d99
手机端用户也能够扫码访问 👇
内容来自:微信开放社区《小程序·小故事》栏目
原做者:谢滔、黄嘉敏
任何问题,欢迎前往微信开放社区:https://developers.weixin.qq.com
了解更多小程序开发相关内容,欢迎微信扫描下方二维码关注微信极客WeGeek公众号,共筑微信生态。