📜  javascript 语音识别 - Javascript (1)

📅  最后修改于: 2023-12-03 14:42:38.419000             🧑  作者: Mango

Javascript 语音识别 - Javascript

语音识别是当今最热门的人机交互技术之一。在Javascript中,语音识别可以通过Web Speech API来实现。Web Speech API 允许浏览器识别和转换语音,然后将其转换为文本或命令。

安装

Web Speech API 是HTML5一部分,大多数现代浏览器都支持它。无需任何安装,即可在现代浏览器上开始使用Web Speech API。

应用

我们可以通过以下步骤来创建一个语音识别的应用:

  1. 创建SpeechRecognition对象
  2. 配置SpeechRecognition对象
  3. 注册回调函数,当SpeechRecognition对象有可用数据时自动执行回调函数
  4. 启动SpeechRecognition(开始录音)
  5. 在回调函数中处理识别的文本

例如,以下代码将创建一个 SpeechRecognition 对象并启动识别:

const recognition = new window.webkitSpeechRecognition(); // 创建SpeechRecognition对象
recognition.continuous = true; // 将语音识别设置为持续接收语音输入的状态
recognition.interimResults = true; // 允许在语音识别未结束时返回临时结果
recognition.lang = 'zh-CN' // 设置语言类型
recognition.onresult = event => { // 注册回调函数  当SpeechRecognition对象有可用数据时自动执行回调函数
    const text = event.results[0][0].transcript;
    console.log(text); // 打印识别到的文本
};
recognition.start(); // 启动SpeechRecognition(开始录音)
Web Speech API 方法

Web Speech API 提供了以下对象和方法来实现语音识别:

SpeechRecognition

SpeechRecognition 对象是语音识别的核心。 它提供了方法和事件来启动和停止语音输入,以及从语音输入中提取文本。

const recognition = new window.webkitSpeechRecognition(); // 创建SpeechRecognition对象
SpeechRecognition.continuous

continuous 属性确定语音识别是否一直接收输入,还是只识别单个语音输入。

recognition.continuous = true;
SpeechRecognition.interimResults

interimResults 属性设置为true时,语音识别结果将在输入结束前连续返回多个结果。

recognition.interimResults = true;
SpeechRecognition.lang

lang 属性是表示语音输入的语言的字符串,通常使用ISO 639-1标准。

recognition.lang = 'zh-CN';
SpeechRecognition.start()

start() 方法启动语音输入。调用此方法后,语音输入将被捕获并转换为文本。

recognition.start();
SpeechRecognition.stop()

stop() 方法停止语音输入。

recognition.stop();
SpeechRecognition.onstart

onstart 事件在识别程序启动时触发。

recognition.onstart = () => {
    console.log('Speech recognition started.')
};
SpeechRecognition.onerror

onerror 事件在发生错误时(例如录音设备无法访问或语音识别服务器无法访问)触发。

recognition.onerror = event => {
    console.error(event.error); // 打印错误信息
};
SpeechRecognition.onend

onend 事件在识别程序停止时触发。

recognition.onend = () => {
    console.log('Speech recognition stopped.');
};
SpeechRecognition.onresult

onresult 事件在发现可用的语音文本时触发。返回的语音文本存储在事件的 results 属性中。

recognition.onresult = event => {
    const text = event.results[0][0].transcript;
    console.log(text);
};
总结

语音识别是一项非常有前途的技术,可以方便用户与计算机进行沟通。Web Speech API为使用Javascript实现语音识别提供了便捷的方法。通过使用SpeechRecognition对象和相关事件,我们可以很容易地构建一个基本的语音识别应用。