当前位置:首页 > VUE

vue怎么实现语音识别

2026-01-22 08:44:55VUE

实现语音识别的核心步骤

在Vue项目中集成语音识别功能,可通过浏览器原生API或第三方库实现。以下是两种主流方案的具体实现方法:

使用Web Speech API(浏览器原生方案)

浏览器提供的SpeechRecognition接口是基础解决方案,需注意兼容性(Chrome、Edge支持较好):

// 在Vue组件中
export default {
  data() {
    return {
      recognition: null,
      transcript: '',
      isListening: false
    }
  },
  mounted() {
    const SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition
    if (SpeechRecognition) {
      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
          }
        }
      }
    }
  },
  methods: {
    toggleListening() {
      if (this.isListening) {
        this.recognition.stop()
      } else {
        this.recognition.start()
      }
      this.isListening = !this.isListening
    }
  }
}

模板部分:

<button @click="toggleListening">
  {{ isListening ? '停止' : '开始' }}录音
</button>
<p>识别结果: {{ transcript }}</p>

使用第三方库(如annyang)

对于需要快速集成或更复杂控制的场景,可使用语音识别库:

  1. 安装依赖:

    npm install annyang
  2. 组件实现:

    
    import annyang from 'annyang'

export default { data() { return { commands: { 'hello': () => alert('Hello world!'), 'search *term': (term) => this.search(term) }, isSupported: false } }, mounted() { this.isSupported = annyang.isSupported() if (this.isSupported) { annyang.addCommands(this.commands) } }, methods: { startListening() { annyang.start({ autoRestart: true, continuous: true }) }, stopListening() { annyang.abort() } } }

vue怎么实现语音识别


模板示例:
```html
<button v-if="isSupported" @click="startListening">开始语音控制</button>
<button v-if="isSupported" @click="stopListening">停止</button>

关键注意事项

  • 浏览器权限:首次使用需用户授权麦克风访问
  • 生产环境建议:重要场景应结合后端验证识别结果
  • 移动端适配:iOS有特殊限制,需用户主动交互触发
  • 错误处理:添加onerror事件监听处理识别错误

两种方案各有优劣:Web Speech API无需额外依赖但功能有限;第三方库扩展性强但增加包体积。根据项目需求选择合适方案即可。

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

相关文章

vue实现发送值接受值

vue实现发送值接受值

Vue 实现父子组件传值 父组件向子组件传值(props) 父组件通过 v-bind 或简写 : 向子组件传递数据。子组件通过 props 接收数据。 父组件代码: <template&g…

vue实现星星

vue实现星星

实现星星评分的Vue组件 使用Vue实现星星评分功能可以通过组件化方式完成,以下是一个完整的实现方案: 模板部分 <template> <div class="star-ra…

vue评分实现

vue评分实现

Vue 评分组件实现方法 使用第三方库(如 Element UI) 安装 Element UI: npm install element-ui 引入并注册组件: import Vue from '…

vue插件实现

vue插件实现

Vue 插件实现方法 Vue 插件是一种向 Vue 应用程序添加全局功能的机制。插件可以包含全局指令、过滤器、混入、实例方法等。 插件的基本结构 一个 Vue 插件通常是一个对象或函数,需要暴露一个…

vue实现博客

vue实现博客

Vue 实现博客的基本步骤 使用 Vue.js 实现一个博客系统可以分为前端和后端两部分。以下是基于 Vue 的前端实现方案,后端可以选择 Node.js、Django 或其他框架。 项目初始化 使…

vue拖拽实现

vue拖拽实现

Vue 拖拽实现方法 使用 HTML5 原生拖拽 API HTML5 提供了原生拖拽 API,可以通过 draggable 属性、dragstart、dragend、dragover 和 drop 事…