<template> <div> <el-page-header @back="goBack" content="语音转文字"/> <div class="bank"></div> <el-card header="语音转文字"> <el-card> <el-input :readonly="true" id="word" v-model="word"></el-input> </el-card> <el-card> <el-button type="primary" @click="audioCHangeWord"><span v-if="isListening">语音识别中...</span><span v-else>语音识别</span></el-button> </el-card> </el-card> </div> </template> <script> export default { name: "AudioToWord", data() { return { word: "", isListening: false, // 判断是否在语音监听中 } }, methods: { audioCHangeWord() { var that = this; that.word = ""; // 创建SpeechRecognition对象 // eslint-disable-next-line no-undef var recognition = new webkitSpeechRecognition(); console.log("recognition1", recognition); if (!recognition) { // eslint-disable-next-line no-undef recognition = new SpeechRecognition(); } console.log("recognition2", recognition); console.log(11); // 设置语言 recognition.lang = 'zh-CN'; console.log(22); // 开始语音识别 recognition.start(); that.isListening = true; console.log(33); // 监听识别结果 recognition.onresult = function (event) { var result = event.results[0][0].transcript; console.log("监听结果:", result); that.word = result; }; // 监听错误事件 recognition.onerror = function (event) { that.isListening = false; that.$message("监听语音失败:"+event.error); console.error(event.error); }; // 监听结束事件(包括识别成功、识别错误和用户停止) recognition.onend = function () { that.isListening = false; console.log("语音识别停止"); }; }, goBack() { this.$router.push({ path: "/entry" }) } } } </script> <style> </style>