1.安装同声传译插件----面对面小程序开源
2.wxml代码:
<view catchtouchstart="streamRecord" catchtouchend="streamRecordEnd">中文</view><view>翻译结果:{{translateText}}</view>
3.js的代码段:
const plugin = requirePlugin("WechatSI")const manager = plugin.getRecordRecognitionManager();Page({data: {currentText: '',translateText: '',},streamRecord: function() {manager.start({lang: 'zh_CN',})console.log('开始录制')},streamRecordEnd: function() {manager.stop();console.log('结束录制');},initRecord: function() {var that=this;//有新的识别内容返回,则会调用此事件manager.onRecognize = (res) => {let text = res.resultthis.setData({currentText: text,})}// 录音结束manager.onStop = function(res) {// 提示用户正在跳转到搜索页面(因为我做的时候,在跳转这块会有1~2秒的时间,所以我设置了一个提示框)wx.showToast({title: '正在跳转...',duration: 1500,icon: 'success'})// 将识别的语音翻译成文本plugin.translate({lfrom: 'en_US',lto: 'zh_CN',content: res.result,success: function(res) {if(res.retcode == 0) {// (iphone是这样,Android不清楚)语音识别有时会在末尾添加符号if(res.result.charAt(res.result.length - 1) == '。' || res.result.charAt(res.result.length - 1) == '.') {res.result = res.result.substr(0, res.result.length - 1);}// 将翻译后的内容放到搜索框中that.translateText = res.resultthat.setData({translateText:res.result})console.log(res.result);} else {console.log('翻译失败', res)}},fail: function(res) {console.log('网络失败', res)// 当用户说话声音小或者用户没有说话就会报这两个错误if(res.retcode == -10001 || res.retcode == -10002) {wx.showToast({title: '没有听清您说什么',duration: 1000,icon: 'error'})}}})}// 打印错误信息manager.onError = function(res) {console.log('error msg', res.msg)}// // 识别结束事件---翻译成英语// manager.onStop = (res) => {// let text = res.result// if(text == '') {//// 用户没有说话,可以做一下提示处理...//return '无'// }// this.setData({//currentText: text,// })// // 得到完整识别内容就可以去翻译了// this.translateTextAction()// }},// 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: '',// })//},// })// },onLoad: function() {this.initRecord()}});
-_-语音识别有点痛苦,语音识别还有个云知声的插件,但我没写出来,有大脑写出来可告知。。。
EvalSDK | 小程序插件 | 微信公众平台
如果觉得《小程序使用同声传译插件进行语音识别》对你有帮助,请点赞、收藏,并留下你的观点哦!