当前位置:首页 > JavaScript

js实现语音识别

2026-03-01 09:24:04JavaScript

使用Web Speech API实现语音识别

Web Speech API是浏览器原生支持的语音识别和合成接口,无需额外依赖库。以下为基本实现方法:

// 创建语音识别对象
const recognition = new (window.SpeechRecognition || window.webkitSpeechRecognition)();

// 设置识别参数
recognition.lang = 'zh-CN'; // 设置语言为中文
recognition.interimResults = false; // 是否返回临时结果
recognition.maxAlternatives = 1; // 返回最大候选结果数

// 开始识别
recognition.start();

// 处理识别结果
recognition.onresult = (event) => {
  const transcript = event.results[0][0].transcript;
  console.log('识别结果:', transcript);
};

// 错误处理
recognition.onerror = (event) => {
  console.error('识别错误:', event.error);
};

// 识别结束自动重启
recognition.onend = () => {
  recognition.start();
};

添加用户交互控制

建议添加按钮控制识别开始/停止:

<button id="startBtn">开始录音</button>
<button id="stopBtn">停止录音</button>
<div id="output"></div>

<script>
  const startBtn = document.getElementById('startBtn');
  const stopBtn = document.getElementById('stopBtn');
  const output = document.getElementById('output');

  startBtn.addEventListener('click', () => {
    recognition.start();
    output.textContent = "正在聆听...";
  });

  stopBtn.addEventListener('click', () => {
    recognition.stop();
    output.textContent = "已停止";
  });
</script>

多语言支持配置

通过修改lang参数支持不同语言:

js实现语音识别


// 英语(美国)
recognition.lang = 'en-US';

// 日语
recognition.lang = 'ja-JP';

// 粤

标签: 语音识别js
分享给朋友:

相关文章

js分组实现

js分组实现

分组实现方法 在JavaScript中,可以通过多种方式实现数组或对象的分组操作。以下是几种常见的方法: 使用Array.prototype.reduce() 通过reduce方法可以轻松实现数组分…

js实现选题

js实现选题

实现选题功能的JavaScript方法 基础实现方案 使用数组存储选项,通过随机索引选取: const options = ['选项A', '选项B', '选项C', '选项D']; const r…

js实现自举

js实现自举

实现 JavaScript 自举的方法 JavaScript 自举(Bootstrap)通常指通过 JavaScript 动态加载自身或依赖的脚本,实现运行时环境的初始化或扩展。以下是几种常见实现方式…

js实现密码

js实现密码

密码强度验证 使用正则表达式验证密码强度是一种常见方法。以下代码检查密码是否包含大小写字母、数字和特殊字符,且长度至少为8位: function checkPasswordStrength(pass…

js实现吸色

js实现吸色

使用Canvas实现吸色功能 通过Canvas的getImageData方法获取像素颜色数据。创建一个Canvas元素,将目标图像绘制到Canvas上,通过鼠标事件获取坐标对应的颜色值。 const…

js实现跑马灯

js实现跑马灯

实现跑马灯效果 使用HTML和JavaScript可以轻松实现跑马灯效果。以下是两种常见的实现方式: HTML结构 <div id="marquee"> <span>…