首页 > 其他分享 >vue实现录音并转文字功能,包括PC端web,手机端web

vue实现录音并转文字功能,包括PC端web,手机端web

时间:2024-08-12 11:16:47浏览次数:12  
标签:web vue 浏览器 PC 调用 isSpeaking event recognition

vue实现录音并转文字功能,包括PC端,手机端和企业微信自建应用端
不止vue,不限技术栈,vue2、vue3、react、.net以及原生js均可实现。

原理
浏览器实现录音并转文字最快捷的方法是通过Web Speech API来实现,这是浏览器内置示例的api方法,可以直接调用,无需引入任何依赖包,唯一需要注意的是浏览器的兼容性,具体可查看官方文档
链接: Web Speech API

实现过程

<template>
    <button @click="toggleSpeechRecognition ">{{ isSpeaking?'开始':'停止' }}录音</button>
    <span>{{ prompt }}</span>
</template>
<script setup lang="ts">
    import { ref } from 'vue'
    //测试语音识别
    const prompt = ref('')
    const isSpeaking = ref(false);
    let recognition: any = null;
    let finalResult = ''; // 保存最终结果的变量
    let interimResult = ''; // 保存中间结果的变量
    const toggleSpeechRecognition = () => {
      if (!recognition) {
        recognition = new webkitSpeechRecognition();
        recognition.continuous = true;
        recognition.interimResults = true;
        recognition.lang = 'zh-CN';
        recognition.onresult = event => {
          interimResult = ''; // 清空中间结果
          for (let i = event.resultIndex; i < event.results.length; i++) {
            if (event.results[i].isFinal) {
              finalResult += event.results[i][0].transcript;
            } else {
              interimResult += event.results[i][0].transcript;
            }
          }
          prompt.value = finalResult + interimResult;
        };
      }
      if (isSpeaking.value) {
        finalResult = '';
        recognition.stop();
      } else {
        recognition.start();
      }
      isSpeaking.value = !isSpeaking.value;
    };
</script>

 


避坑指南
1.http问题导致录音失败:我相信99.9%的人本地开发环境启动的都是http,当前主流浏览器出于安全考虑禁止http的应用调用麦克风,需要在浏览器高级设置中添加白名单,具体操作为:
chrome浏览器地址栏中输入chrome://flags/#unsafely-treat-insecure-origin-as-secure,回车,在Insecure origins treated as secure这栏中添加你的应用地址,将该选项置为Enabled,然后点击右下角弹出的Relaunch按钮。
edge浏览器打开:edge://flags/#unsafely-treat-insecure-origin-as-secure,同上。

 

这里需要注意的是,你的电脑需要有音频录入设备,检查顺序为:先检查电脑是否有音频录入设备(是否正常)-> 再添加浏览器安全白名单。

2.应用是否被其他规则限制调用麦克风
1.iframe内部应用不允许直接调用麦克风,只能通过postMassage实现iframe内外部通信,调用外部系统的方法来调用麦克风,具体我会在单独的文章将iframe内外部通信;
2.如果应用嵌在企微工作台或类似的平台中,麦克风权限首先受企微等平台的权限管控,一般都需要调用企微官方api来实现类似功能。

标签:web,vue,浏览器,PC,调用,isSpeaking,event,recognition
From: https://www.cnblogs.com/houxianzhou/p/18354572

相关文章

  • Vue自定义指令——函数式与对象式以及注意事项
    作者:CSDN-PleaSure乐事欢迎大家阅读我的博客希望大家喜欢使用环境:vscodeChrome浏览器目录1.什么是自定义指令1.1定义2.函数式自定义指令2.1定义2.2书写格式与效果3.对象式自定义指令3.1定义3.2书写格式与效果4.需要注意的坑4.1命名4.1.1问题4.1.2原因4.1.3......
  • web解题思路(自用)
    工具firefox的hackbar插件,bp,kali-linux,蚁剑,7kbscan等抓包修改BP,hackbar通过hackbar传入get,post参数,例如?name1=value1&name2=value2,url后添加文件路径,可以访问相应的文件,404notfound;403越权访问;200okhttpX-Forwarded-For(XFF)是用来识别通过HTTP代理或负载均衡方式......
  • 简单的python web项目的docker-compose.yml 示例
    一个简单的pythonweb项目,包含redis,mysql,nginx,定时业务调度等其中web启动注册了自定义命令flaskcreate-db&&flaskinit-db&&uwsgi/web/uwsgi.iniversion:'3.5'services:db:image:mysqlcontainer_name:yeping_mysqlcommand:--default-......
  • 在 PC 端安装 YouTube Music 桌面版的 3 种方法
    想把YouTubeMusic安装到自己的电脑上,找遍了应用程序商店却发现没有它的身影。那是因为,YouTubeMusic没有官方的桌面应用程序,以下我找到了3种方法在PC端安装YouTubeMusic桌面版应用程序。通过浏览器安装YouTubeMusic桌面版-要将YouTubeMusic安装为桌面应......
  • Vue.js入门系列(五):深入理解监视属性与计算属性的对比
    个人名片......
  • 盘点硬件工程师PCB设计冷知识
    PCB(PrintedCircuitBoard,印刷电路板)设计原理与关键节点涉及多个方面,以下是对这些方面的详细阐述:PCB设计原理电气连接:PCB上的导线和金属线路用于连接电子元件(如电阻、电容、集成电路等)之间的电气信号。导线通过印刷、刻蚀或添加导线层的方式实现电路连接,以满足电路的电气性......
  • 基于Java的考试信息报名系统 SpringBoot考试报名管理系统 Vue前后端分离【Java毕业设
    ⛄博主介绍:⚡全栈开发工程师,精通Web前后端技术、数据库、架构设计。专注于Java技术领域和小程序领域的开发,毕业设计、课程设计项目中主要包括定制化开发、源代码、代码讲解、文档报告辅导、安装调试等。✅文末获取联系✅目录1项目介绍 2技术选型 3系统总体设计 4......
  • PCIe简介
    PCIe简介PeripheralComponentInterconnectExpress(PCI),高速串行计算机扩展总线标准,PCIe对外围设备的组织方式是树形结构。拓扑结构根:树的根部直接连接到CPU和内存,通常集成在主板的芯片组中。根是所有PCIe设备的起点,负责与CPU和内存之间的通信。根端口:从根延伸出的“......
  • springboot+vue体检套餐定制系统的设计与实现【程序+论文+开题】-计算机毕业设计
    系统程序文件列表开题报告内容研究背景随着人们健康意识的不断提升,定期体检已成为现代人维护健康、预防疾病的重要手段。然而,市场上现有的体检套餐往往存在一刀切的问题,难以满足不同年龄、性别、职业及健康状况人群的个性化需求。此外,体检预约流程繁琐、体检结果解读困难等......
  • 计算机毕业设计 校园失物招领网站 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解
    ......