Web Speech API(1)—— SpeechRecognition

news2024/10/7 7:31:56

Web Speech API 使你能够将语音数据合并到 Web 应用程序中。Web Speech API 有两个部分:SpeechSynthesis 语音合成(文本到语音 TTS)和 SpeechRecognition 语音识别(异步语音识别)。

SpeechRecognition

  • 语音识别通过 SpeechRecognition (en-US) 接口进行访问,它提供了识别从音频输入(通常是设备默认的语音识别服务)中识别语音情景的能力。一般来说,你将使用该接口的构造函数来构造一个新的 SpeechRecognition (en-US) 对象,该对象包含了一系列有效的对象处理函数来检测识别设备麦克风中的语音输入。

  • SpeechGrammar 接口则表示了你应用中想要识别的特定文法。文法则通过 JSpeech Grammar Format (JSGF.) 来定义。

语音识别api

SpeechRecognition (en-US)

语音识别服务的控制器接口;它也处理由语音识别服务发来的 SpeechRecognitionEvent (en-US) 事件。

  • 创建SpeechRecognition的新实例

var SpeechRecognition = SpeechRecognition || webkitSpeechRecognition
// 语音识别
var recognition = new SpeechRecognition()
  • 设置是持续听还是听到声音之后就关闭接收。

recognition.continuous = true;
  • 设置是否允许临时结果,临时结果是识别的中间过程,这时候返回结果的isFinal = false。

recognition.interimResults = true;
  • 设置语言

recognition.lang = 'cmn-Hans-CN'; //普通话 (中国大陆)
  • 控制语音识别的开启和停止,可使用start()和stop()方法,分别对应onstart、onend事件

//  开始语音识别监听,开始接收和处理语音输入
recognition.start();
//  停止语音识别监听,不再接收和处理语音输入
recognition.stop();
//  将当前的语音识别操作中止,并且不触发任何结果事件
recognition.abort();
  • 对识别到的结果进行处理,可以使用一些事件方法,比方说onresult:

recognition.onresult = function(event) { 
    console.log(event);
    // event返回结果格式
    /*
    {
      results: {
        0: {
            0: {
                    confidence: 0.695017397403717,
                    transcript: "你好,世界"
                },
                isFinal:true,
                length:1
        },
        length:1
      },
     }
    */
}
  • 错误处理

recognition.onerror = function(event) { 
    console.log(event);
}

以下是SpeechRecognition对象的一些常见事件说明:

  audioend:当音频输入结束时触发,表示不再接收音频数据。

audiostart:在开始处理音频数据之前触发,表示开始接收音频输入。

end:当SpeechRecognition实例停止监听后触发。

error:在处理期间发生错误时触发。

nomatch:在没有找到匹配的语音输入时触发。

result:在获取到语音输入结果时触发,可以通过event.results获取识别结果。

soundend:在声音输入结束时触发。

soundstart:在开始处理声音输入时触发。

speechend:当语音输入结束时触发。

speechstart:在开始处理语音输入时触发。

start:当SpeechRecognition实例开始监听时触发。

SpeechRecognitionAlternative (en-US)

表示由语音识别服务识别出的一个词汇。

recognition.onresult = function(event) {
  // SpeechRecognitionEventresults 属性返回一个 SpeechRecognitiontionResultList 对象
  // SpeechRecognitionResultList 对象包含了多个 SpeechRecognitionResultResult 对象。
  // 它具有 getter,因此可以像数组一样进行访问
  // 第一个 [0] 返回位置 0 处的 SpeechRecognitionResult。
  // 每个 SpeechRecognitionResult 对象都包含具有单独结果的 SpeechRecognitionAlternative 对象。
  // 它们也有 getter ,因此可以像数组一样对其进行访问。
  // 第二个 [0] 返回位置 0 处的 SpeechRecognitionAlternative。
  // 然后,我们返回 SpeechRecognitionAlternative 对象的 transcript 属性
  var color = event.results[0][0].transcript;
  diagnostic.textContent = '收到结果:' + color + '。';
  bg.style.backgroundColor = color;
}

SpeechGrammar

我们将要交由语音识别服务进行识别的词汇或者词汇的模式。

var grammar ="#JSGF V1.0; grammar colors; public <color> = aqua | azure | beige | bisque | black | blue | brown | chocolate | coral | crimson | cyan | fuchsia | ghostwhite | gold | goldenrod | gray | green | indigo | ivory | khaki | lavender | lime | linen | magenta | maroon | moccasin | navy | olive | orange | orchid | peru | pink | plum | purple | red | salmon | sienna | silver | snow | tan | teal | thistle | tomato | turquoise | violet | white | yellow ;";
var recognition = new SpeechRecognition();
var speechRecognitionList = new SpeechGrammarList();
speechRecognitionList.addFromString(grammar, 1);
recognition.grammars = speechRecognitionList;

SpeechGrammarList (en-US)

表示一个由 SpeechGrammar 对象构成的列表。

SpeechRecognitionResult (en-US)

表示一次识别中的匹配项,其中可能包含多个 SpeechRecognitionAlternative (en-US) 对象。

SpeechRecognitionResultList (en-US)

表示包含 SpeechRecognitionResult (en-US) 对象的一个列表,如果是以 continuous (en-US) 模式捕获的结果,则是单个对象。

安全性

http协议下浏览器每次都会提醒用户去确认语音操作,然而https的页面,没有这样一个麻烦的操作。

JavaScript上下文,整个页面,都能过访问到捕获的音频。

浏览器兼容性

实验性: 这是一项实验性技术 在将其用于生产之前,请仔细检查浏览器兼容性表格

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1684554.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

由于找不到mfc140u.dll,无法继续执行代码如何解决

在计算机使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中之一就是电脑找不到mfc140u.dll文件。这个问题可能会导致程序无法正常运行或系统崩溃。为了解决这个问题&#xff0c;本文将介绍5种修复方法&#xff0c;帮助大家快速恢复电脑的正常运行。 一&#x…

SD-WAN EVPN基本原理

SD-WAN EVPN是一种用于Overlay业务网络和底层传输网络分离以及业务网络路由和传输网络路由分离的VPN技术。SD-WAN EVPN技术采用类似于BGP/MPLS IP VPN的机制&#xff0c;通过扩展BGP协议&#xff0c;使用扩展后的可达性信息&#xff0c;使不同站点的底层传输网络互通&#xff0…

rocketmq 学习二 基本概念

教程&#xff1a;基本概念 | RocketMQ 视频教程 https://www.bilibili.com/video/BV1d5411y7UW?vd_sourcef1bd3b5218c30adf0a002c8c937e0a27 版本&#xff1a;5.0 一 基本概念 1.1 生产者/Producer 1.1.1 定义 消息发布者。是构建并传输消息到服务端的运行实体。…

php之web开发

目标 实现一款具有常用大部分功能的WEB应用&#xff0c;并初步了解WEB漏洞原理 登录功能&#xff1a; 1、基于前端的登录功能 <!DOCTYPE html> <html> <head> <title>简单登录功能</title> </head> <meta charset"UTF-8"…

yaml文件格式详解 及 k8s实战演示

目录 一 k8s 支持的语言格式 1&#xff0c;YAML 语法格式 2&#xff0c;查看 api 资源版本标签 二 k8s 运行nginx pod实例 yaml文件 具体讲解 1&#xff0c;写一个yaml文件demo 2&#xff0c;deployment 管理nginx 的yaml 文件 3&#xff0c;创建资源对象 4&#…

BGP(一)边界网关协议

BGP协议基础 路由分类 直连路由 非直连路由&#xff08;间接路由&#xff09; 静态路由动态路由 IGP&#xff1a;内网网关路由协议&#xff08;在企业内部或数据中心内部使用&#xff09; DV&#xff1a;距离矢量路由协议RIP&#xff08;v1/v2&#xff09;IGRP——网络直径&…

【超全干货】一文讲清什么是全民分销?怎么做好全民分销?

一、什么是全民分销&#xff1f; 全民分销&#xff0c;作为新时代营销模式的代表之一&#xff0c;是基于互联网尤其是社交媒体平台兴起的一种分销策略。它打破了传统零售与电子商务的界限&#xff0c;允许任何个人&#xff0c;无论是否为专业销售人员&#xff0c;都能成为品牌…

JJJ:ubuntu修改静态ip

一、IP变化的原因 1.DHCP协议 虚拟机系统(Ubuntu、CentOS、UOS等Linux系统)启动后&#xff0c;加入本地局域网网络时&#xff0c;会向本地网络申请租约一个IP地址&#xff0c;租约时长不定。我这里租约时间短到只有1小时左右就更换一次IP地址。 二、解决方法&#xff1a;手动…

英语学习笔记20——Look at them!

Look at them! 看看他们&#xff01; 词汇 Vocabulary big a. 大的&#xff08;尺寸&#xff0c;年龄&#xff0c;音量……&#xff09; 搭配&#xff1a;big cheese 大人物    big mouth 大嘴巴&#xff08;传话的人&#xff09;    big talker 吹牛的人 例句&#xf…

(六)Spring教程——Spring IoC容器(中)

(一)Spring教程——Spring框架简介 (二)Spring教程——Spring框架特点 (三)Spring教程——依赖注入与控制反转 (四)Spring教程——控制反转或依赖注入与Java的反射技术 (五)Spring教程——Spring IoC容器&#xff08;上&#xff09; (六)Spring教程——Spring IoC容器(中) (七)…

Milvus的执行引擎Knowhere

前言 本文将会介绍Knowhere这个概念&#xff0c;它是milvus向量执行引擎的核心。 概览 Knowhere是milvus向量咨询引擎的核心&#xff0c;它将好几个向量相似搜索库聚集在一起&#xff08;包括faiss、hnswlib、annoy&#xff09;。Knowhere也被设计支持异构计算。它控制在什么…

如何使用WindowsSpyBlocker防止Windows系统被恶意监控和跟踪

关于WindowsSpyBlocker WindowsSpyBlocker是一款功能强大的Windows系统安全防护工具&#xff0c;该工具基于Go语言开发&#xff0c;WindowsSpyBlocker以一个单独的可执行程序发布&#xff0c;可以帮助广大用户防止自己的Windows系统被恶意监控和跟踪。 WindowsSpyBlocker能够利…

使用 LlamaParse 进行 PDF 解析并创建知识图谱

此 Python 笔记本提供了有关利用 LlamaParse 从 PDF 文档中提取信息并随后将提取的内容存储到 Neo4j 图形数据库中的综合指南。本教程在设计时考虑到了实用性&#xff0c;适合对文档处理、信息提取和图形数据库技术感兴趣的开发人员、数据科学家和技术爱好者。 该笔记本电脑的主…

人工智能是“数字鹦鹉”还是有了自我意识?

相关说明 这篇文章涉及到的书籍是《解构大语言模型&#xff1a;从线性回归到通用人工智能》&#xff0c;欢迎有兴趣的读者多多支持。 部分章节内容可以参考&#xff1a; 理解大语言模型&#xff08;二&#xff09;——从零开始实现GPT-2利用神经网络学习语言&#xff08;四&…

ICRA 2024: NVIDIA 联合多伦多大学、加州大学伯克利分校、苏黎世联邦理工学院等研究人员开发了精细操作的手术机器人

英伟达&#xff08;NVIDIA&#xff09;正与学术研究人员合作&#xff0c;研究手术机器人。 NVIDIA 联合多伦多大学、加州大学伯克利分校、苏黎世联邦理工学院和佐治亚理工学院的研究人员开发了 ORBIT-Surgical&#xff0c;一个训练机器人的模拟框架&#xff0c;可以提高手术团…

拥抱红利行业,短视频带货助力普通人逆袭

短视频带货&#xff0c;作为当下最热门的副业选择之一&#xff0c;不仅迎合了现代消费者购物习惯的改变&#xff0c;还借助了互联网平台的强大传播力&#xff0c;让每一个普通人都有机会成为带货达人。 首先&#xff0c;短视频带货具有低门槛、易上手的特点。你无需具备专业的…

Docker-数据卷的挂载

文章目录 数据卷概念数据卷实现机制数据卷特性数据卷操作数据卷挂载通用命令匿名挂载具名挂载数据卷继承容器数据卷只读容器数据卷读写-默认 总结 数据卷概念 为了很好的实现数据保存和数据共享&#xff0c;Docker提出了Volume这个概念&#xff0c;简单的说就是绕过默认的联合文…

upload-labs 通关方法

目录 Less-1&#xff08;JS前端验证&#xff09; Less-2&#xff08;MIME验证&#xff09; Less-3&#xff08;黑名单&#xff0c;特殊过滤&#xff09; Less-4&#xff08;黑名单验证&#xff0c;.htaccess&#xff09; Less-5&#xff08;黑名单&#xff0c;点空格点绕过…

「项目」负载均衡在线OJ(ONLINE_JUDGE)系统

&#x1f436;博主主页&#xff1a;ᰔᩚ. 一怀明月ꦿ ❤️‍&#x1f525;专栏系列&#xff1a;线性代数&#xff0c;C初学者入门训练&#xff0c;题解C&#xff0c;C的使用文章&#xff0c;「初学」C&#xff0c;linux &#x1f525;座右铭&#xff1a;“不要等到什么都没有了…

Unity 开发Hololens,制作面板跟随眼镜一起移动,(面板跟踪)

Hololens滑动框以及面板跟踪 创建空物体&#xff0c;并添加组件 SolverHandler、RedialView、FollowMeToggle 创建按钮&#xff0c;控制停止/开始跟踪 创建一个Hololens自带的按钮放到右上角&#xff0c;并添加事件 创建蓝色背景板 创建空物体Backplate&#xff0c;下面再…