JavaScript如何实现语音识别_JavaScript中Web Speech API怎样调用

狼影

狼影

2025-12-30

756人浏览

原创

javascript语音识别依赖web speech api,主要通过speechrecognition接口实现,需检测兼容性、获取麦克风权限,并配置continuous、interimresults等参数以支持连续实时识别。

javascript如何实现语音识别_javascript中web speech api怎样调用

JavaScript 实现语音识别主要依靠浏览器原生支持的 Web Speech API,其中关键接口是 SpeechRecognition(目前在 Chrome、Edge 等基于 Chromium 的浏览器中稳定可用,Firefox 支持有限,Safari 尚未支持)。它允许网页通过麦克风实时捕获语音并转换为文本。

确认浏览器兼容性与权限获取

Web Speech API 不是所有浏览器都默认启用,调用前需检查是否存在,并引导用户授予权限:

  • 检测 window.SpeechRecognitionwindow.webkitSpeechRecognition 是否存在(Chrome 使用带前缀的版本)
  • 首次调用 recognition.start() 时,浏览器会自动弹出麦克风权限请求;若用户拒绝或未授权,需提示手动开启(如进入设置 → 网站设置 → 麦克风)
  • 可在页面加载后尝试一次静默检测,避免用户点击后才报错

初始化并配置 SpeechRecognition 实例

创建识别器后,可设置识别行为,提升实用性:

Comet AI 浏览器
Comet AI 浏览器

下载 Comet AI 浏览器,体验由 Perplexity AI 驱动的革命性上网方式。内置 AI 助手可实时总结网页、跨标签页对比信息、自动执行任务。告别繁琐操作,让 AI 成为你的浏览副驾,大幅提升研究与工作效率。支持 Windows、macOS、Android 和 iOS。

下载
  • 使用 new (SpeechRecognition || webkitSpeechRecognition)() 创建实例
  • 设置 recognition.continuous = true 支持连续识别(非说完即停)
  • recognition.interimResults = true 可获取中间结果(带下划线的暂定文本),适合实时反馈
  • 指定语言:如 recognition.lang = 'zh-CN'(中文)或 'en-US'(英文)
  • 限制单次识别时长:用 recognition.maxAlternatives = 1 减少冗余结果

监听关键事件并处理识别结果

语音识别是异步过程,依赖事件驱动。核心事件有:

  • onstart:麦克风已开启,开始收音
  • onresult:收到识别结果。event.resultsSpeechRecognitionResultList,每项含多个 SpeechRecognitionAlternative;取 results[results.length - 1][0].transcript 获取最新文本
  • onend:识别结束(可能因超时、错误或用户停止)。常在此处自动重启:recognition.start(),实现“一直听”效果
  • onerror:捕获错误,如 error.error === 'no-speech'(没检测到语音)、'aborted'(被中断)或 'not-allowed'(权限被拒)

基础调用示例(可直接运行)

以下代码片段可粘贴进 HTML 文件,在 Chrome 中测试:

const SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition;
if (!SpeechRecognition) {
  console.error('当前浏览器不支持语音识别');
} else {
  const recognition = new SpeechRecognition();
  recognition.lang = 'zh-CN';
  recognition.interimResults = true;
  recognition.continuous = true;
<p>recognition.onresult = (event) => {
const transcript = Array.from(event.results)
.map(result => result[0].transcript)
.join('');
console.log('识别结果:', transcript);
};</p><p>recognition.onend = () => recognition.start(); // 自动重连
recognition.onerror = (e) => console.warn('识别出错:', e.error);</p><p>// 页面加载后等待用户触发,例如点击按钮再 start()
document.getElementById('start-btn').onclick = () => recognition.start();
}</p>

大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!

相关专题

更多
chrome什么意思
chrome什么意思

chrome是浏览器的意思,由Google开发的网络浏览器,它在2008年首次发布,并迅速成为全球最受欢迎的浏览器之一。本专题为大家提供chrome相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

1974

5

chrome无法加载插件怎么办
chrome无法加载插件怎么办

chrome无法加载插件可以通过检查插件是否已正确安装、禁用和启用插件、清除插件缓存、更新浏览器和插件、检查网络连接和尝试在隐身模式下加载插件方法解决。更多关于chrome相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.06

2410

7

Chrome开启无痕模式
Chrome开启无痕模式

本专题整合了Chrome无痕模式开启相关内容,阅读专题下面的文章了解更多详细教程。

2026.03.24

2057

22

edge是什么浏览器
edge是什么浏览器

Edge是一款由Microsoft开发的网页浏览器,是Windows 10操作系统中默认的浏览器,其目标是提供更快、更安全、更现代化的浏览器体验。本专题为大家提供edge浏览器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.21

2337

5

IE浏览器自动跳转EDGE如何恢复
IE浏览器自动跳转EDGE如何恢复

ie浏览器自动跳转edge的解决办法:1、更改默认浏览器设置;2、阻止edge浏览器的自动跳转;3、更改超链接的默认打开方式;4、禁用“快速网页查看器”;5、卸载edge浏览器;6、检查第三方插件或应用程序等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.03.05

1357

4

如何解决Edge打开但没有标题的问题
如何解决Edge打开但没有标题的问题

若 Microsoft Edge 浏览器打开后无标题(窗口空白或标题栏缺失),可尝试以下方法解决: 重启 Edge:关闭所有窗口,重新启动浏览器。 重置窗口布局:右击任务栏 Edge 图标 → 选择「最大化」或「还原」。 禁用扩展:进入 edge://extensions 临时关闭插件测试。 重置浏览器设置:前往 edge://settings/reset 恢复默认配置。 更新或重装 Edge:检查最新版本,或通过控制面板修复

2025.04.24

1775

6

scripterror怎么解决
scripterror怎么解决

scripterror的解决办法有检查语法、文件路径、检查网络连接、浏览器兼容性、使用try-catch语句、使用开发者工具进行调试、更新浏览器和JavaScript库或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

642

5

500error怎么解决
500error怎么解决

500error的解决办法有检查服务器日志、检查代码、检查服务器配置、更新软件版本、重新启动服务、调试代码和寻求帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.25

1243

5

硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

2023.10.19

2768

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
WebStorm 官方调试文档
WebStorm 官方调试文档

共0课时 | 0人学习

React 教程
React 教程

共58课时 | 11.1万人学习

TypeScript 教程
TypeScript 教程

共19课时 | 6.1万人学习