Голосовой поиск Google на загрузке страницы - программирование
Подтвердить что ты не робот

Голосовой поиск Google на загрузке страницы

Во-первых, я пытаюсь создать временное решение, которое я не ожидаю работать навсегда. Просто эксперимент, если вы будете!

У меня есть следующий запуск! То, что я пытаюсь сделать, - инициировать голосовой поиск при загрузке страницы. Любые идеи для способа заставить это работать! Примечание. Для просмотра микрофонного входа вам понадобится 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>

4b9b3361

Ответ 1

Вы можете использовать webkitSpeechRecognition, который не требует нажатия кнопки для активации. Затем просто направьте любой текст, который вы записываете на вход.

webkitSpeechRecognition предложит пользователю авторизовать сайт для использования микрофона, но до тех пор, пока это разрешение существует, оно может начать прослушивать ввод пользователя, как только загружается страница. Убедитесь, что ваш сайт использует HTTPS, чтобы браузер только запрашивал у пользователя разрешение и запоминал его.

Вы также можете проверить annyang, который представляет собой библиотеку JavaScript, которая упрощает работу с распознаванием речи.

Ответ 2

К сожалению, это невозможно. Самая важная причина в том, что это будет вторжение в угрозу конфиденциальности/безопасности. Пользователь должен охотно выбирать для записи (в данном случае, mouseclick). Если событие можно эмулировать, и пользователь не знает, что они записываются, могут быть серьезные юридические последствия. Надеюсь, это поможет!


UPDATE:

Это из документа о Speech Input:

Чтобы свести к минимуму вероятность того, что пользователи невольно позволят веб-страницам записывать речь без их ведома, реализации должны прервать сеанс активной речи, если веб-страница потеряла входной фокус в другое окно или на другую вкладку внутри того же пользовательского агента.

Вот проблемы из того же :

1) Разговорные пароли могут быть проблематичными с точки зрения безопасности, но пользователь должен решить, хотите ли они говорить свой пароль.

2) Речевой вход потенциально может использоваться для подслушивания пользователей. Вредоносные веб-страницы могут использовать трюки, например, скрывать элемент ввода или иным образом заставлять пользователя полагать, что он прекратил запись речи, продолжая это делать. Они могут также потенциально стилизовать элемент ввода, чтобы он отображался как нечто другое и обманывал пользователя, нажимая на них. Пример стилизации элемента ввода файла можно увидеть на http://www.quirksmode.org/dom/inputfile.html. Вышеупомянутые рекомендации направлены на снижение этого риска таких атак.

Кроме того, согласно этой статье из html5rocks.com:

В первый раз распознавание речи используется, Chrome должен попросить пользователя получить разрешение на использование микрофона, и в этом случае onstart только срабатывает, когда и если пользователь разрешает разрешение.

С учетом этого было бы очень сложно , если не почти невозможно, реализовать события onload без согласия пользователя, поскольку Google принял меры по защите от malicious webpages. Google также запретил пользователям имитировать события кликов.

Ответ 3

Попробовав кучу вещей и исследований, я обнаружил, что:

Вы не можете программно активировать речевой ввод. Это делается для предотвращения злоупотреблений. https://code.google.com/p/html5rocks/issues/detail?id=594

Что из Google.

Пробовал как ад, чтобы сделать работу jFiddle. Использовал кучу функций jquery, попробовал мишень для имитации щелчка, нескольких сторонних вещей - кажется, что у них он довольно хорошо защищен.

Ответ 5

Первое, что приходит на ум, - использовать jQuery. Вот несколько способов:

$(document).ready(function(){
  startMikeInput();
}

Это приведет к инициализации входа микрофона, когда страница будет загружена. Вам также нужно будет указать jQuery в тэге script. Может быть полезно также использовать внешний файл js.