chrome麦克风权限_如何在Chrome扩展程序中处理麦克风输入权限和语音识别

chrome麦克风权限

by Palash Taneja

由Palash Taneja

如何在Chrome扩展程序中处理麦克风输入权限和语音识别 (How to handle mic input permissions and speech recognition in Chrome extensions)

This tutorial assumes that you have a basic understanding of Chrome extensions and the associated configuration files. If not, then you can refer to this article which sets up the files for this tutorial.

本教程假定您对Chrome扩展程序和相关的配置文件有基本的了解。 如果不是,那么您可以参考本文 , 该文章为本教程设置了文件。

Setting up microphone recording permissions in a Chrome extension is a gray area. There is no officially documented way to do it, and developers are forced to use a “hack” to get mic permissions for their Chrome extension.

在Chrome扩展程序中设置麦克风录制权限为灰色区域。 目前尚无正式记录的方法,开发人员被迫使用“ hack”来获取其Chrome扩展程序的麦克风权限。

In this short article, we use the options.html page to get microphone permissions and use the popular annyang.js library for detecting speech from the user.

在这篇简短的文章中,我们使用options.html页面获取麦克风权限,并使用流行的annyang.js 库检测用户的语音。

1.创建权限触发脚本和页面 (1. Creating a permissions trigger script and page)

To get around Chrome’s restrictions, we use a web page from our extension like options.html andpopup.html to get mic permissions for the entire extension.

为了解决Chrome的限制,我们使用扩展程序中的网页(如options.htmlpopup.html来获取整个扩展程序的麦克风权限。

First, we need to create a JavaScript file to get mic permissions on a web page. I created a minimal file that requests permission to use the mic from chrome.

首先,我们需要创建一个JavaScript文件来获取网页上的麦克风权限。 我创建了一个最小文件,该文件请求允许使用Chrome中的麦克风。

If you’re not a fan of using JQuery, then you can embed this JS code at the end of the HTML page file that you intend to use as a permission trigger.

如果您不喜欢使用JQuery,则可以将此JS代码嵌入打算用作权限触发器HTML页面文件的末尾。

For our extension, TalkToMe, we used options.html as our permission trigger page.

对于我们的扩展程序TalkToMe,我们使用options.html作为权限触发页面。

2.自动打开触发页面 (2. Opening the trigger page automagically)

The mic permission popup will only be opened if the trigger page was opened in the current browser session. Having the user manually open it everytime is bad UX. We created a background script to get around this.

仅当在当前浏览器会话中打开了触发页面时,才会打开“麦克风”权限弹出窗口。 用户每次手动打开它都是糟糕的UX。 我们创建了一个后台脚本来解决这个问题。

It tries to access the mic every 100 ms, and opens the permission-trigger page if the request is denied by Chrome.

它会尝试每100毫秒访问一次麦克风,如果Chrome拒绝了该请求,则会打开权限触发页面。

For the script to work, you need to add it to your manifest.json with other background scripts.

为了使脚本正常工作,您需要将其与其他后台脚本一起添加到manifest.json

3.连接安阳进行语音识别 (3. Hooking up Annyang for speech recognition)

Annyang provides a versatile library for speech recognition, and it is 100% free to use.

安阳提供了用于语音识别的多功能库,并且100%免费使用。

It works on a command-based structure, in that it calls functions based on the user’s speech. This feature made it a perfect fit for TalkToMe.

它在基于命令的结构上工作,它基于用户的语音来调用函数。 此功能使其非常适合TalkToMe。

You can add the annyang.js code to a background script and start using it. Here I am showing you the Hello World example from the docs.

您可以将annyang.js代码添加到后台脚本中并开始使用它。 在这里,我向您展示文档中的Hello World示例。

And ta-da, just like that you have replicated our hours of searching StackOverflow for adding mic permissions to your chrome extension.

和ta-da一样,就像您已经复制了我们在搜索StackOverflow上花费了数小时来为chrome扩展程序添加麦克风权限一样。

If this tutorial helped you, we’d really ❤️ if you could give your thoughts on our extension TalkToMe, even if you may not be a visually impaired user.

如果本教程对您有帮助,即使您可能不是视力障碍的用户,也可以对我们的扩展TalkToMe提出您的想法,我们真的会❤️。

翻译自: https://www.freecodecamp.org/news/handling-mic-input-permissions-and-speech-recognition-in-chrome-extensions-ff7e3ca84cb0/

chrome麦克风权限

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

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

相关文章

云计算机房架构图,云计算架构技术与实践

云计算架构技术与实践从将云计算技术引入传统数据中心所带来的独特商业价值角度看,重点可以从开源与节流两个方面来衡量云计算的核心竞争力。1节流(Cost Saving)方面在业务系统搭建过程中,云计算和虚拟化使得企业及运营商的烟囱式软件应用可以突破应用边…

C#使用CLR/C++的DLL间接调用Native C++的DLL

C#使用CLR/C的DLL间接调用Native C的DLL 开发环境:win 7 VS2010 简介:C#的exe使用CLR/C间接调用Native C的DLL. 第一步:创建一个C#的Console Application工程-->命名“ConsoleApplication1”。 第二步:创建一个CLR/C的工程&am…

列表输出循环左移_python 列表推导式(经典代码)(21)

文章首发微信公众号,微信搜索:猿说python截止到目前为止,python基础内容已经学习了50%左右,在学习编程过程中,我们不仅要学习python语法,同时也需要学习如何把自己代码写的更美观,效率更高。一.…

leetcode100. 相同的树(dfs)

给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例 1:输入: 1 1/ \ / \2 3 2 3[1,2,3], [1,2,3]输出: true### 代码java /*** Definiti…

k8s 分发证书文件 启动文件

接着上面的博客继续写 准备三台主机 192.168.1.71 192.168.1.72 192.168.1.73 现在k8s压缩包 我使用时1.12版本 不能下载请FQ 百度网盘提供1.12版本 https://pan.baidu.com/s/1Ty6DRaRtL-0HiTCwy5ubPA n6cy 192.168.1.71 执行 pwd -> /tmp tar -zxf kubernetes-server-lin…

如何确保您的Progressive Web App保持其Lighthouse审核分数

by Ondrej Chrastina通过Ondrej Chrastina 如何确保您的Progressive Web App保持其Lighthouse审核分数 (How to make sure your Progressive Web App keeps its Lighthouse audit score) I bet most of you have implemented a web application before. Some of you may even …

计算机字节换算在线,计算机字节换算(计算机字节换算器)

8bit(位)1Byte(字节)1024Byte(字节)1KB1024KB1MB1024MB1GB 换算率约等于1000(1024),从大到小顺序为T、GB、MB(兆Zhao)、KB、B再小就是位了。.字节(Byte 发音:/‘bait/):字节是通过网络传输信息(或在硬盘或内存中存储信息)的单位。 在ASCII码中…

Robot Framework自动化测试(一)--- 安装

所需环境: 1、python 2、robotframework  https://pypi.python.org/pypi/robotframework/2.8.5#downloads 3、wxPython ——>是python的一个GUI库,下面要安装的RIDE是基于这个库开发的,所以要安装 地址:https://wxpython.org…

leetcode1296. 划分数组为连续数字的集合(贪心算法)

给你一个整数数组 nums 和一个正整数 k,请你判断是否可以把这个数组划分成一些由 k 个连续数字组成的集合。 如果可以,请返回 True;否则,返回 False。 示例 1: 输入:nums [1,2,3,3,4,4,5,6], k 4 输出&…

linux_svn命令操作

转至元数据起始 linux下svn命令大全 1、将文件checkout到本地目录 svn checkout path(path是服务器上的目录)例如:svn checkout svn://192.168.1.1/pro/domain简写:svn co 2、往版本库中添加新的文件 svn add file例如&#xff1a…

用python玩转数据慕课答案第四周_大学慕课用Python玩转数据章节测试答案

大学慕课用Python玩转数据章节测试答案更多相关问题渗透泵型片剂控释的基本原理是A.减小溶出B.减慢扩散C.片剂膜外渗透压大于片剂膜内,将片内药物从语义学批评是什么?As usual, _____ man was given his individual as…

html怎么让五张照片并排显示,最考验右脑5张照片,30s内能发现问题都是牛人,PS做不出来...

我们的大脑认定这种空间不可能存在,然而却要忍受眼睛亲眼所见其存在的苦恼。“眼见为实”已经成为错误的判断标准,于是你会感到很过瘾,颠覆的快感。事实上,通过色彩,不仅可以考量人们的视力,更能判断大脑水…

aws v2.2.exe_如何使用Python 3.6在AWS EC2上创建运行uWSGI,NGINX和PostgreSQLDjango服务器...

aws v2.2.exeby Sumeet Kumar通过Sumeet Kumar 如何使用Python 3.6在AWS EC2上创建运行uWSGI,NGINX和PostgreSQLDjango服务器 (How to create a Django server running uWSGI, NGINX and PostgreSQL on AWS EC2 with Python 3.6) Getting a server up and running …

Cloud in Action: Install OpenStack Ocata from scratch

Cloud in Action: Install OpenStack Ocata from scratch薛国锋 xueguofeng2011gmail.comOpenStack can control and manage large pools of compute, storage, and networking resources throughout a datacenter, througha dashboard or via the OpenStack API, and work…

jQUery中closest和parents的主要区别是

①,前者从当前元素开始匹配寻找,后者从父元素开始匹配寻找;②,前者逐级向上查找,直到发现匹配的元素后就停止了,后者一直向上查找直到根元素,然后把这些元素放进一个临时集合中,再用…

leetcode1276. 不浪费原料的汉堡制作方案(贪心)

圣诞活动预热开始啦,汉堡店推出了全新的汉堡套餐。为了避免浪费原料,请你帮他们制定合适的制作计划。 给你两个整数 tomatoSlices 和 cheeseSlices,分别表示番茄片和奶酪片的数目。不同汉堡的原料搭配如下: 巨无霸汉堡&#xff…

CentOS7配置ip

CentOS7配置ip 安装完centos7,重启就可以与linux第一次接触了。我是最小化安装,所以没有图形界面。登录介面显示发型版本和内核版本: CentOS Linux 7(Core) Kernel 3.10.0-862.e17.x86_64 on an x86_64 下面就是登录提示localhost login。在后面输入roo…

react开发模式_通过开发带有精灵动画的游戏来学习高级React模式

react开发模式by Pavel Vlasov通过帕维尔弗拉索夫(Pavel Vlasov) 通过开发带有精灵动画的游戏来学习高级React模式 (Learn advanced React patterns by developing a game with sprite animation) Have you ever wanted to learn some advanced React patterns? Or build you…

js脚本锁计算机软件,JS使用插件cryptojs进行加密解密数据实例

本文实例讲述了JS使用插件cryptojs进行加密解密数据。分享给大家供大家参考,具体如下:Testing websocketsvar key BOTWAVEE;//CBC模式加密function encryptByDESModeCBC(message) {var keyHex CryptoJS.enc.Utf8.parse(key);var ivHex CryptoJS.enc.U…

nginx、Apache、IIS服务器解决 413 Request Entity Too Large问题方法汇总

一、nginx服务器 nginx出现这个问题的原因是请求实体太长了。一般出现种情况是Post请求时Body内容Post的数据太大了,如上传大文件过大、POST数据比较多。处理方法 在nginx.conf增加 client_max_body_size的相关设置, 这个值默认是1m,可以增加到8m以增加提…