页面加载时谷歌语音搜索

Jos*_*Cox 14 html javascript jquery speech-recognition

首先,我正在尝试创建一个我不希望永远工作的临时解决方案.只是一个实验,如果你愿意!

我有以下运行!我想要做的是在页面加载时启动语音搜索.有任何想法让这个工作!注意:您需要使用Chrome浏览器才能看到麦克风输入.

http://jsfiddle.net/dirtyd77/99amf/

<html>
<head>
<style>

#mike {
font-size: 25px;
width: 25px;
height: 25px;
cursor:pointer;
border: none;
position: absolute;
margin-left: 5px;
outline: none;
background: transparent;
}
#txt {
height: 150px;
width: 150px;
}
</style>

<script>
var mike = document.getElementById('mike');
mike.onfocus = mike.blur;
mike.onwebkitspeechchange = function(e) {
console.log(e); // SpeechInputEvent
document.getElementById('txt').value = mike.value;  
};
</script>
</head>
Run Code Online (Sandbox Code Playgroud)

Dom*_*Dom 13

不幸的是,这是不可能的.最重要的原因是它会侵犯隐私/安全隐患.用户必须自愿选择录制(在这种情况下,通过鼠标点击).如果可以模拟事件并且用户不知道他们正在被记录,则可能会产生严重的法律后果.希望这可以帮助!


更新:

这是从一个文件Speech Input:

为了最小化用户在不知情的情况下让网页记录语音的机会,如果网页丢失输入焦点到另一个窗口或同一用户代理内的另一个选项卡,则实现必须中止活动语音输入会话.

以下是同一文件的问题:

1)从安全角度来看,口头密码输入可能会有问题,但用户需要决定是否要说出密码.

2)语音输入可能用于窃听用户.恶意网页可能会使用诸如隐藏输入元素之类的技巧,或者让用户相信它已经停止录制语音,同时继续这样做.他们还可能将输入元素设置为显示为其他内容,并诱使用户单击它们.可以在http://www.quirksmode.org/dom/inputfile.html上看到样式化文件输入元素的示例.上述建议旨在降低此类攻击的风险.

另外,根据html5rocks.com的这篇文章:

在第一次使用语音识别时,Chrome需要询问用户是否允许使用麦克风,在这种情况下,只有在用户允许的情况下才启动onstart.

考虑到这一点,在未经用户同意的情况下实施事件将非常困难,甚至几乎不可能onload,因为Google已采取措施进行防范malicious webpages.谷歌还阻止用户模拟点击事件.


Tal*_*ter 2

您可以使用 webkitSpeechRecognition,它不需要单击按钮即可激活。然后将您捕获的任何文本直接输入到输入中。

webkitSpeechRecognition 将提示用户授权网站使用麦克风,但只要该权限存在,它就可以在页面加载后立即开始侦听用户输入。确保您的网站使用 HTTPS,以便浏览器仅向用户请求一次权限,并记住它。

您可能还想看看annyang,它是一个 JavaScript 库,可以使语音识别处理变得超级简单。