当前位置: 首页 > news >正文

vue使用语音识别

vue使用语音识别

使用 Web Speech API 实现语音识别功能

语音转换的原理可以简单概括为以下几个步骤:

  1. 声音捕捉:将声波转化为数字信号。
  2. 特征提取:分析声音中的关键特征。
  3. 声学模型:将声音特征与音素匹配。
  4. 语言模型:根据上下文理解词汇和句子。
  5. 文字输出:将识别结果转化为文字。

可以把语音转换的过程比作一个翻译员的工作:

  • 麦克风是耳朵,负责听声音。
  • 特征提取是翻译员的记笔记过程,记录下关键的发音。
  • 声学模型是翻译员的词典,帮助理解每个发音对应的文字。
  • 语言模型是翻译员的语法知识,确保翻译出来的句子是通顺的。
  • 最后,翻译员将完整的句子写下来,呈现给你。

下面的示例包括一个简单的界面,用户可以点击按钮开始和停止语音识别,并在页面上显示识别结果。

实例:

src/components 目录下创建一个新的组件文件 speech.vue

<template><div><button @click="startRecognition">开始识别</button><button @click="stopRecognition">停止识别</button><p>识别结果: {{ transcript }}</p></div>
</template><script>
export default {data() {return {recognition: null,transcript: "", // 用于存储最终结果interimTranscript: "", // 用于存储临时结果};},methods: {startRecognition() {if (!("webkitSpeechRecognition" in window)) {alert("您的浏览器不支持语音识别,请使用 Chrome 浏览器。");return;}this.recognition = new webkitSpeechRecognition();this.recognition.continuous = true; // 设置为连续识别this.recognition.interimResults = true; // 返回临时结果this.recognition.lang = "zh-CN"; // 设置语言为中文this.recognition.onstart = () => {console.log("语音识别已启动");};this.recognition.onresult = (event) => {console.log(event);let finalTranscript = ""; // 用于存储最终结果this.interimTranscript = ""; // 清空临时结果for (let i = event.resultIndex; i < event.results.length; ++i) {if (event.results[i].isFinal) {// 如果是最终结果,追加到 finalTranscriptfinalTranscript += event.results[i][0].transcript;} else {// 如果是临时结果,存储到 interimTranscriptthis.interimTranscript += event.results[i][0].transcript;}}// 将最终结果追加到 transcript 中this.transcript += finalTranscript;console.log("临时结果:", this.interimTranscript);};this.recognition.onerror = (event) => {console.error("语音识别错误", event);};this.recognition.onend = () => {console.log("语音识别服务已断开");};this.recognition.start();},stopRecognition() {if (this.recognition) {this.recognition.stop();}},},
};
</script><style scoped>
button {margin: 5px;
}
</style>

src/App.vue 中引入并使用 speech 组件:

<template><div id="app"><speech /></div>
</template><script>
import speech from './components/`speech.vue';export default {name: 'App',components: {speech,},
};
</script><style>
#app {font-family: Avenir, Helvetica, Arial, sans-serif;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;text-align: center;color: #2c3e50;margin-top: 60px;
}
</style>

相关文章:

  • 包管理工具有哪些?主流软件分享
  • Windows部署FunASR实时语音听写便捷部署教程
  • 详解LibTorch中train()函数
  • [渗透测试]渗透测试靶场docker搭建 — —全集
  • FreeRTos学习记录--2.内存管理
  • 自注意力机制、多头自注意力机制、填充掩码 Python实现
  • Vue如何获取Dom
  • 第5章:MCP框架详解
  • 【LeetCode 热题 100】哈希、双指针、滑动窗口
  • 大模型数据味蕾论
  • 《AI大模型应知应会100篇》第31篇:大模型重塑教育:从智能助教到学习革命的实践探索
  • 在线查看【免费】 mp3,wav,mp4,flv 等音视频格式文件文件格式网站
  • 离线安装rabbitmq全流程
  • 零基础上手Python数据分析 (20):Seaborn 统计数据可视化 - 轻松绘制精美统计图表!
  • 多源异构网络安全数据(CAPEC、CPE、CVE、CVSS、CWE)的作用、数据内容及其相互联系的详细分析
  • 5565反射内存网络产品
  • 【NVIDIA】Isaac Sim 4.5.0 加载 Franka 机械臂
  • (cvpr2025) LSNet: See Large, Focus Small
  • 【Redis】Jedis与Jedis连接池
  • 4月谷歌新政 | Google Play今年对“数据安全”的管控将全面升级!
  • 国家疾控局局长沈洪兵:将逐步缩小国内免疫规划与国际差距
  • 成都市政府秘书长王忠诚调任遂宁市委副书记
  • A股低开高走,震荡收涨:两市成交10414亿元,4360股收涨
  • 独家丨远洋渔船船长被害案嫌犯移送检方报捕,船上两段视频曝光
  • 又有多地推进产科整合
  • 林间徐行寻风眠——关于浙美“徐宗帅捐赠纪念展”