dbsd_kczx/src/views/site/studentWdkc/yysbUtils/examples/main.js

106 lines
3.0 KiB
JavaScript
Raw Normal View History

2025-01-13 09:29:09 +08:00
let recorder;
let speechRecognizer;
let isCanSendData = false;
let isCanStop;
$(function () {
const params = {
signCallback: signCallback, // 鉴权函数 用户提供鉴权函数不传则为null
// 用户参数
secretid: config.secretId,
appid: config.appId,
// 实时识别接口参数
engine_model_type : '16k_zh', // 引擎
voice_format : 1,
// 以下为非必填参数,可跟据业务自行修改
hotword_id : '08003a00000000000000000000000000',
needvad: 1,
filter_dirty: 1,
filter_modal: 1,
filter_punc: 1,
convert_num_mode : 1,
word_info: 2
}
$('#start').on('click', function () {
const areaDom = $('#recognizeText');
let resultText = '';
$(this).hide();
$('#connecting').show();
speechRecognizer = null;
isCanSendData = false;
// 获取录音数据
recorder = new WebRecorder();
recorder.OnReceivedData = (res) => {
// console.log(res) // res 为采集到浏览器数据
if (isCanSendData) {
// 发送数据
speechRecognizer.write(res);
}
};
// 录音失败时
recorder.OnError = (err) => {
console.log(err);
recorder.stop();
};
recorder.start();
if (!speechRecognizer) {
speechRecognizer = new SpeechRecognizer(params);
}
// 开始识别
speechRecognizer.OnRecognitionStart = (res) => {
console.log('开始识别', res);
isCanSendData = true;
isCanStop = true;
$('#connecting').hide();
$('#end').show();
$('#recognizing').show();
};
// 一句话开始
speechRecognizer.OnSentenceBegin = (res) => {
console.log('一句话开始', res);
};
// 识别变化时
speechRecognizer.OnRecognitionResultChange = (res) => {
console.log('识别变化时', res);
const currentText = `${resultText}${res.result.voice_text_str}`;
areaDom.text(currentText);
};
// 一句话结束
speechRecognizer.OnSentenceEnd = (res) => {
console.log('一句话结束', res);
resultText += res.result.voice_text_str;
areaDom.text(resultText);
};
// 识别结束
speechRecognizer.OnRecognitionComplete = (res) => {
console.log('识别结束', res);
isCanSendData = false;
};
// 识别错误
speechRecognizer.OnError = (res) => {
console.log('识别失败', res);
isCanSendData = false;
$('#end').hide();
$('#recognizing').hide();
$('#connecting').hide();
$('#start').show();
};
// 建立连接
speechRecognizer.start();
});
$('#end').on('click', function () {
$(this).hide();
$('#start').show();
$('#recognizing').hide();
recorder.stop();
if (isCanStop) {
speechRecognizer.stop();
}
});
});