小程序使用同声传译插件进行语音识别
1.安装同声传译插件----面对面小程序开源2.wxml代码:<viewcatchtouchstart="streamRecord" catchtouchend="streamRecordEnd">中文</view><view>翻译结果:{{translateText}}</view>3.js的代码段:const plugin = requirePl
·
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.result
this.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.result
that.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()
}
});
-_-语音识别有点痛苦,语音识别还有个云知声的插件,但我没写出来,有大脑写出来可告知。。。
更多推荐
已为社区贡献2条内容
所有评论(0)