📅  最后修改于: 2023-12-03 14:42:38.419000             🧑  作者: Mango
语音识别是当今最热门的人机交互技术之一。在Javascript中,语音识别可以通过Web Speech API来实现。Web Speech API 允许浏览器识别和转换语音,然后将其转换为文本或命令。
Web Speech API 是HTML5一部分,大多数现代浏览器都支持它。无需任何安装,即可在现代浏览器上开始使用Web Speech API。
我们可以通过以下步骤来创建一个语音识别的应用:
例如,以下代码将创建一个 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 提供了以下对象和方法来实现语音识别:
SpeechRecognition
对象是语音识别的核心。 它提供了方法和事件来启动和停止语音输入,以及从语音输入中提取文本。
const recognition = new window.webkitSpeechRecognition(); // 创建SpeechRecognition对象
continuous
属性确定语音识别是否一直接收输入,还是只识别单个语音输入。
recognition.continuous = true;
interimResults
属性设置为true时,语音识别结果将在输入结束前连续返回多个结果。
recognition.interimResults = true;
lang
属性是表示语音输入的语言的字符串,通常使用ISO 639-1标准。
recognition.lang = 'zh-CN';
start()
方法启动语音输入。调用此方法后,语音输入将被捕获并转换为文本。
recognition.start();
stop()
方法停止语音输入。
recognition.stop();
onstart
事件在识别程序启动时触发。
recognition.onstart = () => {
console.log('Speech recognition started.')
};
onerror
事件在发生错误时(例如录音设备无法访问或语音识别服务器无法访问)触发。
recognition.onerror = event => {
console.error(event.error); // 打印错误信息
};
onend
事件在识别程序停止时触发。
recognition.onend = () => {
console.log('Speech recognition stopped.');
};
onresult
事件在发现可用的语音文本时触发。返回的语音文本存储在事件的 results
属性中。
recognition.onresult = event => {
const text = event.results[0][0].transcript;
console.log(text);
};
语音识别是一项非常有前途的技术,可以方便用户与计算机进行沟通。Web Speech API为使用Javascript实现语音识别提供了便捷的方法。通过使用SpeechRecognition对象和相关事件,我们可以很容易地构建一个基本的语音识别应用。