版权声明:博主原创文章,欢迎大家转载! https://blog.csdn.net/happycxz/article/details/80674270
本文原文:http://www.happycxz.com/m/?p=383
官方插件上线
遥知之改版
原来使用的是我自己封装的API,现在改成用同传插件,很方便,而且响应速度还快,欢迎切换,给我的服务器减减肥。:)
我只用到了同传插件的语音识别和语音合成功能,没有用翻译能力,感兴趣的小伙伴自己去研究一下。
调用方式
语音识别部分见: page/asr/asr.js
var pageSelf = undefined;
var plugin = requirePlugin("WechatSI")
let manager = plugin.getRecordRecognitionManager()
manager.onRecognize = function (res) {
UTIL.log("current result", res.result)
}
manager.onStop = function (res) {
UTIL.log("record file path", res.tempFilePath)
UTIL.log("result", res.result)
//res.result is the asr result, change the follow step to your source
//NLI.process(res.result, pageSelf);
}
manager.onError = function (res) {
UTIL.log("error msg", res.msg)
}
////////////////////////////// 以下是调用同声传译插件的方式
//手指按下
touchdown_plugin: function () {
var _this = this
UTIL.stopTTS();
manager.start({ duration: 30000, lang: "zh_CN" })
},
//手指松开
touchup_plugin: function () {
manager.stop();
wx.showToast({
title: '正在识别……',
icon: 'loading',
duration: 2000
})
},
page/asr/asr.wxml
<button type="primary" style="border-radius: 20px;" class="btn-style" bindtouchstart="touchdown_plugin" bindtouchend="touchup_plugin">按下录音,松开结束</button>
语音合成(播报)部分见: util/util.js
var plugin = requirePlugin("WechatSI")
var innerAudioContext = wx.createInnerAudioContext();
innerAudioContext.onError((res) => {
// 播放音频失败的回调
})
function playTTS(text) {
//need to add WXAPP plug-in unit: WechatSI
plugin.textToSpeech({
lang: "zh_CN",
tts: true,
content: text,
success: function (res) {
log("succ tts", res.filename)
innerAudioContext.src = res.filename;
innerAudioContext.play()
},
fail: function (res) {
log("fail tts", res)
}
})
}
function stopTTS() {
innerAudioContext.stop();
}
module.exports = {
playTTS: playTTS,
stopTTS: stopTTS,
}