当前位置:首页 > VUE

vue实现语音识别demo

2026-01-20 06:11:27VUE

使用 Web Speech API 实现语音识别

Vue 可以结合浏览器原生支持的 Web Speech API 实现语音识别功能。以下是一个简单的实现示例:

安装依赖(可选)
若需扩展功能,可安装 vue-web-speech 等插件:

npm install vue-web-speech

基础实现代码
在 Vue 组件中直接调用 API:

<template>
  <div>
    <button @click="startRecognition">开始录音</button>
    <button @click="stopRecognition">停止</button>
    <p>识别结果: {{ transcript }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      recognition: null,
      transcript: ''
    }
  },
  mounted() {
    this.initRecognition()
  },
  methods: {
    initRecognition() {
      const SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition
      this.recognition = new SpeechRecognition()
      this.recognition.continuous = true
      this.recognition.interimResults = true

      this.recognition.onresult = (event) => {
        let interimTranscript = ''
        for (let i = event.resultIndex; i < event.results.length; i++) {
          const transcript = event.results[i][0].transcript
          if (event.results[i].isFinal) {
            this.transcript += transcript
          } else {
            interimTranscript += transcript
          }
        }
      }
    },
    startRecognition() {
      this.recognition.start()
    },
    stopRecognition() {
      this.recognition.stop()
    }
  }
}
</script>

使用第三方库(增强兼容性)

对于需要更好兼容性或更多功能的场景,推荐使用以下方案:

安装 annyang 库:

npm install annyang

示例实现:

<script>
import annyang from 'annyang'

export default {
  data() {
    return {
      commands: {
        'hello': () => alert('Hello world!'),
        'show me *tag': (tag) => this.search(tag)
      }
    }
  },
  mounted() {
    if (annyang) {
      annyang.addCommands(this.commands)
      annyang.start()
    }
  },
  methods: {
    search(tag) {
      console.log('Searching for:', tag)
    }
  }
}
</script>

注意事项

  1. 浏览器兼容性
    Web Speech API 目前仅 Chrome、Edge、Safari 支持较好,需添加前缀(如 webkitSpeechRecognition

  2. HTTPS 限制
    语音识别功能通常要求网页运行在 HTTPS 环境下

  3. 用户授权
    首次使用需获取麦克风权限,建议添加权限请求提示

  4. 多语言支持
    可通过设置语言参数支持中文等语言:

    this.recognition.lang = 'zh-CN'
  5. 错误处理
    建议添加错误监听:

    this.recognition.onerror = (event) => {
      console.error('识别错误:', event.error)
    }

完整项目可参考 GitHub 上的 vue-speech-recognition 等开源实现。

vue实现语音识别demo

标签: 语音识别vue
分享给朋友:

相关文章

vue伪函数实现

vue伪函数实现

Vue 伪函数实现方法 伪函数(Mock Function)在 Vue 中常用于测试或模拟某些逻辑,以下是几种常见的实现方式: 使用 Jest 的 jest.fn() 在单元测试中,可以通过 Je…

vue实现用户信息表

vue实现用户信息表

Vue 实现用户信息表的方法 使用 Vue CLI 创建项目 安装 Vue CLI 并初始化项目: npm install -g @vue/cli vue create user-info-tabl…

vue中登陆实现逻辑

vue中登陆实现逻辑

Vue 中登录实现逻辑 前端实现逻辑 表单验证 使用 Vue 的表单验证库(如 VeeValidate)或自定义验证规则,确保用户输入的账号和密码符合要求。例如,检查邮箱格式、密码长度等。 发送登…

vue   实现单选

vue 实现单选

Vue 实现单选功能 在 Vue 中实现单选功能可以通过多种方式,以下是几种常见的方法: 使用原生 <input type="radio"> 绑定 v-model 通过 v-model…

vue实现点击

vue实现点击

实现点击事件的基本方法 在Vue中实现点击事件可以通过v-on指令或@简写方式绑定。以下是常见的点击事件绑定方法: <template> <button v-on:click=…

vue 实现grid

vue 实现grid

在Vue中实现Grid布局可以通过多种方式完成,以下是几种常见的方法: 使用CSS Grid布局 CSS Grid是一种强大的布局系统,可以直接在Vue组件的样式中使用。以下是一个简单的示例:…