js
const app = getApp();
//引入插件:微信同声传译
const plugin = requirePlugin('WechatSI');
//获取全局唯一的语音识别管理器recordRecoManager
const manager = plugin.getRecordRecognitionManager();
const db = wx.cloud.database();
Page({
/**
* 页面的初始数据
*/
data: {
play_stop: 2,
textInputTis: 1,
tis: '按住 说话',
//语音
recordState: false, //录音状态
content: '', //内容
answer: '', //答案
src: '', //答案语音
// 当is_clock为true时识别
is_clock: true,
list: [{
type: 2,
src: '',
text: '智能人机聊天!',
},
]
},
// 发送消息
sendOut(e) {
var that = this
console.log(1111, e)
let text = e.detail.value
if (text == '') {
wx.showToast({
title: '请输入聊天内容',
icon: 'none',
})
} else {
let arr = {
type: 1,
src: '',
text: text
};
var a = that.data.list;
a.push(arr)
that.setData({
content: text,
list: a,
title: ''
})
this.answer()
}
},
// 语音文字切换
textInputTis() {
console.log('this.data.textInputTis', this.data.textInputTis)
if (this.data.textInputTis == 1) {
this.setData({
textInputTis: 2
})
} else if (this.data.textInputTis == 2) {
this.setData({
textInputTis: 1
})
}
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function(options) {
//
//识别语音
this.initRecord();
},
onReady() {
//创建内部 audio 上下文 InnerAudioContext 对象。
this.innerAudioContext = wx.createInnerAudioContext();
this.innerAudioContext.onError(function(res) {
console.log(res);
this.setData({
play_stop:1,
})
})
},
//识别语音 -- 初始化
initRecord: function() {
const that = this;
// 有新的识别内容返回,则会调用此事件
manager.onRecognize = function(res) {
console.log(res)
}
// 正常开始录音识别时会调用此事件
manager.onStart = function(res) {
console.log("成功开始录音识别", res)
}
// 识别错误事件
manager.onError = function(res) {
console.error("error msg", res)
}
//识别结束事件
manager.onStop = function(res) {
console.log('..............结束录音')
console.log('录音临时文件地址 -->' + res.tempFilePath);
console.log('录音总时长 -->' + res.duration + 'ms');
console.log('文件大小 --> ' + res.fileSize + 'B');
console.log('语音内容 --> ' + res.result);
if (that.data.is_clock == true) {
// 语音结束识别
if (res.result == '') {
wx.showModal({
title: '提示',
content: '听不清楚,请重新说一遍!',
showCancel: false,
s