当前位置:首页 > JavaScript

js实现语音输入

2026-01-30 19:11:51JavaScript

实现语音输入的基本步骤

使用Web Speech API的SpeechRecognition接口实现语音输入功能。该API允许浏览器直接接收和处理语音输入。

浏览器兼容性检查

检测浏览器是否支持语音识别功能:

if ('webkitSpeechRecognition' in window || 'SpeechRecognition' in window) {
  // 浏览器支持语音识别
} else {
  // 浏览器不支持语音识别
}

创建语音识别实例

初始化语音识别对象并设置基本参数:

const recognition = new (window.SpeechRecognition || window.webkitSpeechRecognition)();
recognition.lang = 'zh-CN'; // 设置语言
recognition.interimResults = true; // 返回临时结果
recognition.maxAlternatives = 1; // 返回最大候选结果数

添加事件处理程序

设置各种事件监听器来处理语音识别过程:

js实现语音输入

recognition.onstart = () => {
  console.log('语音识别开始');
};

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

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

recognition.onend = () => {
  console.log('语音识别结束');
};

控制语音识别

提供开始和停止语音识别的方法:

function startListening() {
  recognition.start();
}

function stopListening() {
  recognition.stop();
}

完整示例代码

整合上述功能的完整实现示例:

js实现语音输入

const recognition = new (window.SpeechRecognition || window.webkitSpeechRecognition)();
recognition.lang = 'zh-CN';
recognition.interimResults = true;

recognition.onresult = (event) => {
  const transcript = event.results[0][0].transcript;
  document.getElementById('result').textContent = transcript;
};

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

document.getElementById('startBtn').addEventListener('click', () => {
  recognition.start();
});

document.getElementById('stopBtn').addEventListener('click', () => {
  recognition.stop();
});

注意事项

语音识别功能需要用户授权麦克风权限。现代浏览器会在首次使用时弹出权限请求对话框。

不同浏览器对Web Speech API的实现可能有所差异,建议在实际使用时进行充分测试。

某些浏览器可能需要使用前缀版本(如webkitSpeechRecognition),代码中已做兼容处理。

识别精度受环境噪音、发音清晰度和语言设置影响,实际应用中可能需要加入错误处理和重试机制。

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

相关文章

jquery.js

jquery.js

jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互等操作。以下是关于 jQuery.js 的核心信息和使用方法: 获…

h5实现语音输入

h5实现语音输入

使用Web Speech API实现语音输入 HTML5的Web Speech API提供了语音识别功能,可以在网页中实现语音输入。以下是一个完整的实现方法: <!DOCTYPE html&g…

js实现pdf在线预览

js实现pdf在线预览

使用PDF.js实现PDF在线预览 PDF.js是由Mozilla开发的一个开源JavaScript库,可以在网页中直接渲染PDF文件。以下是实现PDF在线预览的步骤: 引入PDF.js库 在HT…

js手势实现

js手势实现

手势识别实现方法 在JavaScript中实现手势识别通常涉及监听触摸事件(touchstart、touchmove、touchend)或鼠标事件(mousedown、mousemove、mouseu…

js实现交换

js实现交换

交换变量的方法 在JavaScript中,交换两个变量的值有多种方法。以下是常见的几种实现方式: 使用临时变量 通过引入一个临时变量来存储其中一个变量的值,实现交换: let a = 1; le…

js节流实现

js节流实现

节流的概念 节流(Throttle)是一种限制函数执行频率的技术,确保函数在一定时间间隔内只执行一次。常用于滚动事件、窗口调整等高频触发的场景。 基础实现方法 使用时间戳判断是否执行函数: fun…