当前位置:首页 > 云服务器

如何用Javacript实现语音识别?

游戏科技网2026年09月15日 01:39云服务器10
描述:JavaScript语音识别主要依靠Web Speech API的SpeechRecognition接口,需检测兼容性、处理权限与事件,适合网页实时转文字;不支持Safari,复杂需求需接入云服务或WebAssembly模型。JavaScript 实现语音识别主要依靠浏览器原生的 Web Speec…
JavaScript语音识别主要依靠Web Speech API的SpeechRecognition接口,需检测兼容性、处理权限与事件,适合网页实时转文字;不支持Safari,复杂需求需接入云服务或WebAssembly模型。

如何用Javacript实现语音识别?

JavaScript 实现语音识别主要依靠浏览器原生的 Web Speech API,特别是其中的 SpeechRecognition 接口(目前为 Chrome、Edge 等基于 Chromium 的浏览器支持较好,Firefox 有部分支持但需手动启用,Safari 尚未支持)。它无需后端、不依赖第三方 SDK,适合网页端实时语音转文字场景。

检查浏览器兼容性并初始化识别器

不是所有浏览器都支持,使用前必须检测并优雅降级:

  • window.SpeechRecognition || window.webkitSpeechRecognition 判断是否可用
  • 若不可用,提示用户换浏览器或改用其他输入方式
  • 创建实例时建议用 new (window.SpeechRecognition || window.webkitSpeechRecognition)()
  • 设置关键属性:如 recognition.continuous = false(单次识别),recognition.interimResults = true(返回中间结果)

监听识别事件并处理文本结果

语音识别是异步事件驱动的,核心事件有:

  • onstart:麦克风开启,可更新 UI 状态(如显示“正在听…”)
  • onresult:收到识别结果,event.resultsSpeechRecognitionResultList,每项含多个 SpeechRecognitionAlternative
  • onend:识别结束(可能因超时、出错或用户停止),可在此自动重启识别(设 continuous = true 时需手动调用 recognition.start()
  • .onerror:捕获错误(如 no-speechabortednot-allowed),尤其注意权限被拒时要引导用户授权

示例提取最终文本:
const transcript = event.results[0][0].transcript;
const isFinal = event.results[0].isFinal;

如何用Javacript实现语音识别?
baidu-map-jsapi-three

使用 MapV-Three 构建专业的 3D 地图和 GIS 应用 - 基于 Z-up 坐标系的 3D 地图库,支持地图编辑、测量工具、要素绘制、数据管理等地理可视化功能。适用于创建地图编辑器、测量工具、空间数据可视化等 Web-GIS 应用。

下载

请求麦克风权限与用户交互设计

首次调用 recognition.start() 会触发浏览器权限弹窗,但不能提前预判是否被拒绝:

立即学习Java免费学习笔记(深入)”;

  • 避免自动启动识别,应由用户显式点击按钮触发(符合 Chrome 的 autoplay 和权限策略)
  • 按钮文案建议明确,如“点击说话”,并实时反馈状态(禁用中 / 正在听 / 识别中 / 完成)
  • 权限被拒后,onerror 中的 event.error === not-allowed 可用于提示用户去地址栏手动开启麦克风
  • 移动端需注意:部分 Android 浏览器要求 HTTPS,且某些 WebView 完全不支持

基础可用代码片段(可直接测试)

复制到 HTML 文件中,在 Chrome 中打开即可运行:

1

<button id="speakBtn">点击说话</button><br><div id="output"></div><br><br><script><br>const SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition;<br>if (!SpeechRecognition) {<br>  document.getElementById(speakBtn).disabled = true;<br>  document.getElementById(output).textContent = 您的浏览器不支持语音识别;<br>} else {<br>  const recognition = new SpeechRecognition();<br>  recognition.interimResults = true;<br>  recognition.lang = zh-CN; // 设为中文<br><br>  recognition.onresult = (event) => {<br>    let interimTranscript = ;<br>    let finalTranscript = ;<br>    for (let i = 0; i < event.results.length; i++) {<br>      const transcript = event.results[i][0].transcript;<br>      if (event.results[i].isFinal) {<br>        finalTranscript += transcript;<br>      } else {<br>        interimTranscript += transcript;<br>      }<br>    }<br>    document.getElementById(output).innerHTML =<br>      `最终:${finalTranscript}<br>暂定:${interimTranscript}`;<br>  };<br><br>  document.getElementById(speakBtn).onclick = () => {<br>    recognition.start();<br>  };<br>}<br></script>

基本上就这些。不复杂但容易忽略权限、兼容性和用户体验细节。如需更稳定或支持离线/多语言/自定义词表,就得接入 WebAssembly 模型(如 Vosk)或调用云服务(阿里云智能语音、百度语音等),那就超出纯 JS 范畴了。

“如何用Javacript实现语音识别?” 的相关文章

5元云服务器:入门级新手首选

5元云服务器:入门级新手首选 我是一名刚毕业的大学生,对编程充满了热情,但现实总是骨感一些。刚踏入职场,我梦想着能独立开发一个网站或应用,却苦于没有足够的资源。买一台实体服务器太贵,租个虚拟空间又觉得…

6元服务器租用,高性价比VPS主机推荐

6元服务器租用,高性价比VPS主机推荐 记得去年我刚开始创业,做了一个小型网站来展示我的产品。那时,我手头紧,预算有限,却急着需要一个可靠的服务器来托管网站。作为一个普通上班族,我对技术懂得不多,但我…

2021年云服务器优惠套餐推荐

2021年云服务器优惠套餐推荐 嗨,朋友们!你是否曾经在深夜里,面对一堆代码和服务器错误,感叹说:“为什么我的项目老是卡顿?”如果是这样的话,那你可能正在寻找2021年云服务器优惠套餐的解决方案。作为…

云服务器市场增长

云服务器市场增长 大家好,作为一个每天依赖云服务器的开发者,我亲身感受到市场的飞速膨胀。想象一下,几年前我还得在办公室的老旧电脑前苦苦挣扎,处理数据时总是卡顿不堪,但现在,只需轻轻一点,就能在云端获得…

云服务器10元月:经济型服务价格新记录

云服务器10元/月:经济型服务价格新记录 最近,云服务器的价格被推向了一个新低,10元一个月的方案让许多人惊喜不已。这不仅仅是数字上的变化,更是科技服务普惠化的一个标志。云服务器作为一种基于云计算的虚…

实惠低价云服务器f2g评测

实惠低价云服务器f2g评测 实惠低价云服务器F2G评测 随着云计算技术的快速发展,云服务器已经成为企业和个人开发者的重要选择。相比传统的物理服务器,云服务器在灵活性、可扩展性和成本上具有显著优势。然而…