Голосовые команды (распознавание речи) и синтез речи с помощью Electron Framework

ОБНОВЛЕНИЕ 23-ОЕ ИЮНЯ 2016: Распознавание речи Google было отключено для Electron, поэтому эта функция больше не доступна. Подробнее о проблеме читайте здесь.

В Electron Framework используется встроенная структура хрома, поэтому большинство (не все) функций, доступных в Google Chrome, доступны для вас в приложении Electron.

В этой статье вы узнаете, как добавлять голосовые команды и синтезировать текст, используя Artyom.js. Artyom.js — полезная оболочка для распознавания речи и синтеза речи, которая позволяет легко добавлять голосовые команды и речевой текст с помощью нескольких строк кода.

Включить artyom.js

Добавьте artyom в ваш проект, выполнив следующую команду в командной строке node.js:

npm install artyom.js --save

Рекомендуется прочитай документацию посетите официальный репозиторий здесь.

Включите файл artyom.js в свой проект, используя тег script в заголовке вашего HTML-документа.

Синтез речи

Прискорбно, с Электронной рамкой вы не сможете выбрать голос, который хотите, вместо этого будет выбран голос компьютера по умолчанию. Это означает, что вы ограничены языком по умолчанию, т.е. если ваш компьютер на испанском, Вы будете уметь читать только испанскую жидкость. Если вы не хотите написать свой собственный модуль синтеза речи, читая документацию по API синтеза речи, и научитесь выбирать голос, который становится бесполезным, поскольку он может быть доступен только для компьютера, на котором вы работаете (не поддерживается).

Чтобы синтезировать текст, используйте функцию artyom.say:

artyom.say("I will read this text on your computer, great isn't?");

Замечания: Артём решает в Google Chrome ограничение 200 символов, однако в приложении Electron это ограничение не существует, так как удаленная служба не используется. Для синтеза речи используется локальный голос ОС.

Голосовые команды

Чтобы добавить голосовые команды в наше приложение Electron, мы будем использовать функцию artyom.addCommands. Каждая команда является литеральным объектом со словами, которые запускают команду в массиве, и параметром действия, который является функцией, которая запускается, когда голос совпадает с командой.

Следующая команда отвечает на привет, если пользователь говорит hello или же hi:

var adminName = "Carlos";
artyom.addCommands({
indexes: ["Hello","Hi"],
action: function(){
artyom.say("Hello, how are you today "+ adminName +"?");
}
});

Теперь, когда вы знаете, как добавлять команды, давайте начнем с простого примера.

пример

Добавьте 3 кнопки и прикрепите к ним каждую из следующих функций в событии onclick.

Один запускает Артём в непрерывном режиме, а другой — в одном командном приемнике.

Замечания: В Google Chrome для использования непрерывного режима требуется https-соединение, однако в приложении Electron оно работает без каких-либо неудобств.

Start artyom one command
Start artyom continuous assistant
Stop recognition
function StartArtyomOneCommand(){
console.log("One command");
if(artyom.isRecognizing()){
return alert("Stop artyom first !");
}
//Although the voice can't be changed,
// You need to set the language for the speech
// Recognition, see the documentation for more examples
return artyom.initialize({
lang:"en-GB",
debug:true,
continuous:false,
listen:true
});
}
function StartArtyomContinuous(){
console.log("Continuous commands");
if(artyom.isRecognizing()){
return alert("Stop artyom first !");
}
// You can create a permanent voice assistant
// if you want using the continuous mode !
return artyom.initialize({
lang:"en-GB",
debug:true,
continuous:false,
listen:true
});
}
function StopArtyom(){
artyom.fatality();
}

Теперь добавьте несколько команд и добавьте прослушиватель ошибок для artyom в событии window.onload:


'use strict';
window.onload = function(){
// Add the error listeners
artyom.when("ERROR",function(err){
console.error("An error ocurred : ", err.code);
});
console.log("Artyom is ready");
// Important, add the commands to process.
artyom.addCommands([
{
indexes:["Hello","Hi"],
action: function(i){
artyom.say("Hello, how are you today?");
}
},
{
indexes:["Say * please"],
smart:true,
action: function(i,wildcard,sentence){
artyom.say(wildcard);
}
},
{
indexes:["Text content *"],
smart:true,
action: function(i,wildcard,sentence){
document.getElementById("text-content").value = wildcard;
}
},
{
indexes:["write * in the console"],
smart:true,
action: function(i,wildcard,sentence){
console.log(wildcard);
}
}
]);
};

Наконец, просто создайте свое приложение, используя npm start и протестируйте команды, которые мы только что добавили. Синтез речи не требует демонстрации, вам просто нужно передать строку в качестве первого параметра artyom.say функция.

Электронные рамки голосовых команд

Вы можете увидеть предыдущий пример в официальные примеры кода нашего электронного мира в хранилище здесь.

Ссылка на основную публикацию
Adblock
detector