Vue 极简实现语音实时转写(录音转文字,低网络依赖、开箱即用)
一、前言
在 Vue 项目开发中,语音录音、实时语音转文字是非常常见的功能,例如智能问答、语音输入、评论语音转文字、AI 对话输入等场景。
很多方案依赖第三方云端接口、需要频繁请求网络、断网直接失效、部署复杂。
今天给大家分享一款超轻量、低网络依赖、开箱即用 的 Vue 语音转写方案:vue-speech-recognition。
优势非常明显:
-
✅ 浏览器原生 Web Speech API 底层,无需后端接口
-
✅ 低网络依赖,大部分场景离线/弱网可用
-
✅ 代码极简,十几行代码完成录音+实时转文字
-
✅ 支持连续录音、实时拼接文本
-
✅ 适配 Vue2,开箱即用
二、技术原理(通俗易懂)
该组件底层基于浏览器原生 Web Speech API,是浏览器自带的语音识别能力:
浏览器内置语音识别内核,不需要我们自己训练模型、不需要调用第三方 AI 接口,本地浏览器即可完成语音识别转文字。
所以:网络要求极低、延迟小、免费、无调用次数限制。
⚠️ 注意:部分浏览器/无痕模式可能有限制,建议在正常项目浏览器环境运行。
三、安装依赖
首先安装 vue-speech-recognition 插件:
bash
npm install vue-speech-recognition --save
四、完整可运行代码(Vue2)
下面是可直接复制运行的完整业务代码,包含:开始录音、停止录音、实时文字回显、清空历史文本功能。
vue
<template>
<div class="speech-box">
<h3>Vue 语音实时转文字 Demo</h3>
<button @click="startListening" class="start-btn">开始录音</button>
<button @click="stopListening" class="stop-btn">停止录音</button>
<div class="text-box">
<p>转写结果:</p>
<p class="res-text">{{ transcript }}</p>
</div>
</div>
</template>
<script>
// 引入语音识别插件
import SpeechRecognition from 'vue-speech-recognition';
export default {
name: 'SpeechToText',
data() {
return {
// 最终转写的文本
transcript: ''
};
},
methods: {
// 开始录音 + 实时转写
startListening() {
// 每次录音清空上次内容
this.transcript = '';
// 开启连续识别模式
SpeechRecognition.start({ continuous: true })
.then((result) => {
// 实时拼接语音转文字结果
this.transcript += result;
})
.catch((error) => {
console.error('语音识别失败:', error);
});
},
// 停止录音
stopListening() {
SpeechRecognition.stop();
}
}
};
</script>
<style scoped>
.speech-box {
padding: 30px;
}
button {
margin: 0 10px 20px 0;
padding: 6px 16px;
border: none;
border-radius: 4px;
cursor: pointer;
}
.start-btn {
background: #409eff;
color: #fff;
}
.stop-btn {
background: #f56c6c;
color: #fff;
}
.text-box {
margin-top: 20px;
padding: 15px;
border: 1px solid #eee;
border-radius: 6px;
}
.res-text {
margin-top: 10px;
color: #333;
line-height: 1.8;
}
</style>
五、代码逐行功能讲解
5.1 模板部分
-
开始录音按钮 :触发
startListening,开启语音监听 -
停止录音按钮 :触发
stopListening,结束语音监听 -
文本回显:实时展示浏览器识别后的文字内容
5.2 核心方法讲解
startListening 开启语音识别
核心配置 continuous: true 代表:连续录音模式,不会一句话结束就自动停止,适合长文本录音。
每次识别出片段文字,会通过 result 返回,我们直接拼接即可实现实时累加文字效果。
stopListening 停止识别
调用内置 stop() 方法,关闭浏览器麦克风权限、终止语音识别进程。
六、项目优势(为什么推荐用这套方案)
1. 极低网络依赖
依托浏览器原生能力,不需要频繁请求云端AI接口,弱网、断网环境也可正常使用,不会因为网络卡顿导致转写失败。
2. 开发成本极低
无需后端配合、无需密钥、无需申请第三方平台(百度/阿里/讯飞)API,前端独立完成全部功能。
3. 实时性强
边说边转,实时返回文本片段,用户体验媲美商用语音输入框。
七、常见问题与注意事项
7.1 页面必须 HTTPS / localhost
浏览器安全策略:语音麦克风权限仅支持 localhost 本地环境 或 HTTPS 域名,普通 HTTP 域名无法调用麦克风。
7.2 部分浏览器不兼容
Chrome、Edge 内核浏览器支持最好;部分小众浏览器、微信内置浏览器、无痕模式可能不支持。
7.3 首次使用需要授权麦克风
用户必须手动允许麦克风权限,否则识别会报错,属于浏览器安全限制,无法绕过。
八、适用业务场景
-
后台管理系统语音输入搜索
-
智能客服、AI对话语音输入
-
移动端 H5 语音转文字留言
-
笔记、文档快速语音录入
-
低弱网环境下简易语音转写需求
九、总结
vue-speech-recognition 是 Vue 项目中最轻量、低成本、低网络依赖的语音转文字解决方案。
十几行代码即可实现完整的录音+实时转写能力,摆脱对第三方云端接口的依赖,非常适合中小型项目、内部系统、弱网环境快速落地语音输入功能。
(注:文档部分内容可能由 AI 生成)