当前位置:首页 > 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. 错误处理
    建议添加错误监听:

    vue实现语音识别demo

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

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

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

相关文章

vue实现动态

vue实现动态

Vue 实现动态路由的方法 在 Vue 中实现动态路由通常涉及以下几个关键步骤: 使用 Vue Router 的动态路由匹配 通过 Vue Router 的 :param 语法可以实现动态路由匹配。…

vue实现route

vue实现route

Vue 路由实现方法 Vue 中实现路由通常使用 vue-router 库,这是 Vue 官方推荐的路由管理器。以下是具体实现步骤: 安装 vue-router 通过 npm 或 yarn 安装…

vue实现分发

vue实现分发

Vue 实现分发的方法 在 Vue 中,分发(Distribution)通常指的是将内容从父组件传递到子组件,或者通过插槽(Slots)机制让父组件控制子组件的部分渲染内容。以下是几种常见的实现分发的…

vue事件实现

vue事件实现

Vue 事件实现方法 在Vue中,事件处理是通过v-on指令或@简写来实现的。以下是几种常见的事件处理方式: 使用v-on指令绑定事件 <button v-on:click="handleC…

vue实现mvvm

vue实现mvvm

Vue 实现 MVVM 模式 MVVM(Model-View-ViewModel)是一种前端架构模式,Vue 是其典型实现之一。MVVM 的核心是通过数据绑定和响应式系统实现视图与数据的自动同步。…

vue实现例子

vue实现例子

以下是一些常见的 Vue 实现例子,涵盖基础功能到进阶应用场景: 基础数据绑定 使用 v-model 实现双向数据绑定: <template> <div> &l…