Войти через VK Войти через FB Войти через Google Войти через Яндекс
Поиск по сайту
Голосовой ввод. Иконка микрофона в input
Пока работает только в Google Chrome начиная с 11
Если <input type='text' /> задать атрибут x-webkit-speech то у поля ввода появится иконка с микрофоном. При нажатии на микрофон откроется окошко которое предложит вам произнести слово или фразу и после распознанный текст появится в поле ввода
По умолчанию он имеет следующие стили:input::-webkit-input-speech-button {
-webkit-appearance: -webkit-input-speech-button;
display: inline-block;
}
Чтобы изменить внешний вид кнопки можно использовать следующий CSS:
input::-webkit-input-speech-button {
-webkit-appearance: button;
background: url('voice_icon.png') no-repeat 0px 2px;
float: right;
width: 15px;
height: 16px
}
Кроме возможности изменения внешнего вида микрофона браузер предоставляет доступ к DOM-событию onwebkitspeechchange которое срабатывает сразу после того как пользователь воспользовался распознаванием речи.
Пример отсылки формы сразу после изменения значения поля:
document.getElementById('search_query').onwebkitspeechchange = function(evt){
document.getElementById('search_form').submit();
};
В параметре передаваемому функции обработчику onwebkitspeechchange приходит event объект самая интересная часть которого поле results с массивом предлагаемых вариантов распознавания.
Распознавание речи ведется исходя из языка браузера — но есть если у тега html указать атрибут lang=«de_DE» — то распознается немецкая речь.
Тоже самое произойдет если в документе указать
<meta http-equiv='Content-Language' content='de_DE' />Пример, работы голосового ввода с textarea
<script>
var mike = document.getElementById('mike');
mike.onfocus = mike.blur;
mike.onwebkitspeechchange = function(e) {
document.getElementById('txt').value = mike.value;
};
</script>
<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: 300px;
}
</style>
<textarea id="txt"></textarea>
<input x-webkit-speech id="mike"/>
Читать по теме:
.
Прокомментировать/Отблагодарить