小程序实时语音识别
说到搜索功能,常见的有:图片搜索,语音搜索,文字搜索(模糊、精准)
今天我们聊聊如何在微信小程序上实现语音搜索,这里我们借助了第三方腾讯云智能语音插件
接下来让我们一起来看看实际操作吧
首先,我们需要在使用界面里面执行以下操作
//腾讯云,没有腾讯云账号的,需要注册一个账号
let appid = ''
let secretid = ''
let secretkey = ''
let openConsole = true
let plugin = requirePlugin("QCloudAIVoice");
const recorderManager = wx.getRecorderManager() // 获取全局唯一的录音管理器 RecorderManager
const innerAudioContext = wx.createInnerAudioContext() // 创建内部 audio 上下文 InnerAudioContext 对象。
plugin.setQCloudSecret(appid, secretid, secretkey, openConsole);
let speechRecognizerManager = plugin.speechRecognizerManager();
let manager = plugin.getRecordRecognitionManager(); //获取全局唯一的语音识别管理器
Page({
onLoad(e) {
manager.onStart((res) => {
console.log('recorder start', res.msg);
})
manager.onStop((res) => {
console.log("stop")
recorderManager.stop()
console.log('recorder stop', res.tempFilePath);
})
manager.onError((res) => {
console.log('recorder error', res.errMsg); // 打印录音识别错误信息
})
// 开始识别
speechRecognizerManager.OnRecognitionStart = (res) => {
console.log('开始识别', res);
}
// 一句话开始
speechRecognizerManager.OnSentenceBegin = (res) => {
console.log('一句话开始', res)
}
// 识别变化时
speechRecognizerManager.OnRecognitionResultChange = (res) => {
console.log('识别变化时', res)
}
// 一句话结束
speechRecognizerManager.OnSentenceEnd = (res) => {
console.log('一句话结束', res)
}
// 识别结束
speechRecognizerManager.OnRecognitionComplete = (res) => {
console.log('识别结束', res);
}
// 识别错误
speechRecognizerManager.OnError = (res) => {
console.log('识别失败', res);
}
// 录音超过固定时长(最长10分钟)时回调
speechRecognizerManager.OnRecorderStop = () => {
console.log('超过录音时长');
}
},
//点击按钮开始识别
startHandel: function () {
var that = this
console.log("开始")
//参数定义可查看腾讯云小程序插件
manager.start({
duration:10000,
engine_model_type: '16k_zh',
filter_dirty: 2,
filter_modal: 1,
filter_punc: 1,
needvad:1
});
//获取识别内容
manager.onRecognize((res) => {
console.log(res)
if(res.code == 0){
if(res.resList.resultList[0].voice_text_str){
that.setData({
Words: res.resList.resultList[0].voice_text_str,//获取识别的文字内容
})
}
if(res.resList.resultList[0].slice_type == 2){
//识别结束,可进行一些相关操作
}
}else{
recorderManager.stop()
}
})
},
})
感谢阅读
如有问题,欢迎留言指出,一起学习,一起进步