Об API webkitSpeechRecognition
Веб-речевой API, представленный в конце 2012 года, позволяет веб-разработчикам предоставлять функции речевого ввода и вывода текста в речь в веб-браузере. Как правило, эти функции недоступны при использовании стандартного программного обеспечения для распознавания речи или чтения с экрана. Этот API заботится о конфиденциальности пользователей. Прежде чем разрешить веб-сайту доступ к голосу через микрофон, пользователь должен явно предоставить разрешение.
Некоторые важные моменты, которые вам нужно знать:
- Он доступен только до даты (23.02.2016) только в Google Chrome.
- Локальные файлы (file: // protocol) не разрешены, файл должен быть каким-то образом размещен на сервере (или localhost).
Основной пример
Следующий код сделает основную поддержку для получения того, что говорит пользователь, вы можете использовать interim_transcript и final_transcript, чтобы показать пользователю распознанный текст.
var recognition = new webkitSpeechRecognition();
recognition.continuous = true;
recognition.interimResults = true;
recognition.lang = "en-GB";
recognition.onresult = function(event) {
var interim_transcript = '';
for (var i = event.resultIndex; i < event.results.length; ++i) {
if (event.results[i].isFinal) {
final_transcript += event.results[i][0].transcript;
} else {
interim_transcript += event.results[i][0].transcript;
}
}
console.log(interim_transcript,final_transcript);
};
}
У репозитория в github google есть очень полный пример (с множеством языковых кодов, предотвращением ошибок и т. Д.) Вы можете скачать демо из репозитория здесь.
Использование библиотеки
Artyom.js является надежной библиотекой-оболочкой для API webkitSpeechRecognition, она позволяет выполнять удивительные трюки, такие как голосовые команды, голосовая подсказка, синтез речи и многие другие функции. В этом случае нас будет интересовать функция artyom.newDictation. Эта функция обернет весь предыдущий код во что-то более простое, сначала вам нужно включить библиотеку в ваш проект, ваш HTML-файл должен выглядеть следующим образом:
Dictation example
// we will write the javascript here
Если вы уже связали библиотеку artyom в своем документе, тогда ваш javascript будет выглядеть примерно так:
var settings = {
continuous:true, // Don't stop never because i have https connection
onResult:function(text){
// text = the recognized text
console.log(text);
},
onStart:function(){
console.log("Dictation started by the user");
},
onEnd:function(){
alert("Dictation stopped by the user");
}
};
var UserDictation = artyom.newDictation(settings);
function startRecognition(){
UserDictation.start();
}
function stopRecognition(){
UserDictation.stop();
}
Вам нужно будет только выполнить инициализацию, и тогда волшебство произойдет в свойстве onResult объекта настроек. Хотя artyom делает вещи намного проще, вам нужно подумать, действительно ли вам нужно его использовать, если вы начинаете с этой темы, рекомендуется использовать простой код, чтобы вы понимали, как работает этот API, и если Вы все еще заинтересованы, вы можете использовать Артём позже.
Потенциал этого API-интерфейса действительно невероятный, но это позор, что только Google Chrome поддерживает его. Вы можете улучшить весь предыдущий код, например, определить, в каком браузере вы можете инициализировать webkitSpeechRecogniton.