vue实现录音并转文字功能包括PC端web手机端web(实现过程)

 更新时间:2024年08月28日 15:12:57   作者:白白布凯西  
vue实现录音并转文字功能,包括PC端,手机端和企业微信自建应用端,本文通过实例代码介绍vue实现录音并转文字功能包括PC端web手机端web,感兴趣的朋友跟随小编一起看看吧

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来实现类似功能。

到此这篇关于vue实现录音并转文字功能,包括PC端web,手机端web的文章就介绍到这了,更多相关vue录音转文字内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue3+echarts实现好看的圆角环形图

    vue3+echarts实现好看的圆角环形图

    这篇文章主要介绍了vue3+echarts实现好看的圆角环形图效果,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10
  • Vue + AnimeJS实现3d轮播图的详细代码

    Vue + AnimeJS实现3d轮播图的详细代码

    轮播图在开发中是经常用到的,3D轮播图是其中最常用的一种,所以在这篇文章中将给大家介绍Vue + AnimeJS实现3d轮播图,文中有详细的代码示例供大家参考,具有一定的参考价值,需要的朋友可以参考下
    2024-01-01
  • 详解用vue-cli来搭建vue项目和webpack

    详解用vue-cli来搭建vue项目和webpack

    本篇文章主要介绍了详解用vue-cli来搭建vue项目和webpack,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • vue3+element-plus props中的变量使用 v-model 报错及解决方案

    vue3+element-plus props中的变量使用 v-model 报错及解决方案

    这篇文章主要介绍了vue3+element-plus props中的变量使用 v-model 报错及解决方案,prop 是单向数据流,这里只能用:model-value,不能用v-model,本文给大家介绍的非常详细,需要的朋友可以参考下
    2023-10-10
  • Vue实现组件间通信的几种方式(多种场景)

    Vue实现组件间通信的几种方式(多种场景)

    本文主要介绍了Vue实现组件间通信的几种方式,不同的场景使用不同的方式,基本满足所有开发场景中的通信需求,感兴趣的可以了解一下
    2021-10-10
  • Vue如何使用cdn加载资源加快打包速度

    Vue如何使用cdn加载资源加快打包速度

    外部的库文件,可以使用CDN资源,或者别的服务器资源等,下面这篇文章主要给大家介绍了关于Vue如何使用cdn加载资源加快打包速度的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-05-05
  • vue使用@include或@mixin报错的问题及解决

    vue使用@include或@mixin报错的问题及解决

    这篇文章主要介绍了vue使用@include或@mixin报错的问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • vue的Virtual Dom实现snabbdom解密

    vue的Virtual Dom实现snabbdom解密

    这篇文章主要介绍了vue的Virtual Dom实现- snabbdom解密,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • Vue3集成json-editor-vue3的代码实现

    Vue3集成json-editor-vue3的代码实现

    这篇文章主要介绍了Vue3集成json-editor-vue3的代码实现,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2023-11-11
  • Python实现图片二值化的详细代码

    Python实现图片二值化的详细代码

    图像二值化就是将图像上的像素点的“灰度值”设置为[0, 0, 0]或[255, 255, 255],即要么纯黑,要么纯白,这篇文章主要介绍了Python实现图片二值化,需要的朋友可以参考下
    2024-05-05

最新评论