https://github.com/zikwall/celebrimbor
:speech_balloon: Speech Recognition and Synthesis for your web application
https://github.com/zikwall/celebrimbor
js speech-recognition speech-synthesis speech-to-text
Last synced: 8 months ago
JSON representation
:speech_balloon: Speech Recognition and Synthesis for your web application
- Host: GitHub
- URL: https://github.com/zikwall/celebrimbor
- Owner: zikwall
- Created: 2018-10-13T06:18:38.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2018-10-14T13:49:58.000Z (over 7 years ago)
- Last Synced: 2025-01-05T14:24:50.509Z (over 1 year ago)
- Topics: js, speech-recognition, speech-synthesis, speech-to-text
- Language: JavaScript
- Homepage:
- Size: 20.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Celebrimbor
JavaScript библиотека, позволяющая распознавать и воспроизводить текст, а так же выполнять команды
## Использование
````html
let celebrimbor = new CelebrimborRecognition();
// вариант 1
let commands = {
'привет': () => {
alert('Привет!');
},
...
};
celebrimbor.addCommands(commands);
// вариант 2
celebrimbor.addCommands({
'обнови страницу': () => {
location.reload();
}
});
// вариант 3
celebrimbor.addCommands({
'напиши *log и еще *any': printLog
});
function printLog(log, any) {
console.log('Я пишу ' + log + ', а также ' + any);
}
celebrimbor.start();
````
### Активация говора
Celebrimbor умеет говорить!
````javascript
let speaker = celebrimbor.synthesis();
celebrimbor.addCommands({
'скажи *say': (say) => {
speaker.synthesis().say(say);
}
});
````
а так же отдельное использование
````javascript
let celebrimborSpeaker = new CelebrimborSynthesis();
````
### Активация UI
Активация графического интерфейса максимальна проста в использовании и составляет всего лишь в пару строк:
````javascript
let celebrimbor = new CelebrimborUI();
// происходит автоматическая инициализация CelebrimborRecognition
// ... добавление команд и т.д
celebrimbor.render();
````
### События
Celebrimbor поддерживает события для каждой сущности библиотеки и очень просты в использовании:
````javascript
let celebrimbor = new CelebrimborUI();
let speaker = celebrimbor.synthesis();
celebrimbor.addEvent(celebrimbor.getEvents().BEFORE_OFF, (event) => {
/**
* @see Celebrimbor.triggerEvent(), addEvent and CelebrimborUI.setStatusOff()
*/
console.log('Событие до сворачивания ' + event.detail.obj.timestamp);
});
celebrimbor.addEvent(celebrimbor.getEvents().AFTER_OFF, (event) => {
console.log('Событие после сворачивания');
});
celebrimbor.addEvent(celebrimbor.getEvents().AFTER_SET_STYLESHEET, (event) => {
speaker.say('Событие на завершение темизации графического интерфейса');
});
// или через глобальные свойства (poperties) объекта Celebrimbor
celebrimbor.addCommands({
'пауза': () => {
celebrimbor.pause();
}
});
celebrimbor.addEvent(celebrimbor.getProps().speech.events.BEFORE_PAUSE, (event) => {
speaker.say('Вы поcтавили паузу!');
});
````
### Управление скоростью и громкостью
Celebrimbor реализует простенькую возможность кастомизации Synthesis API, пример из документации:
````javascript
var pitch = document.querySelector('#pitch');
var pitchValue = document.querySelector('.pitch-value');
var rate = document.querySelector('#rate');
var rateValue = document.querySelector('.rate-value');
pitch.onchange = () => {
speaker.setVolume(pitch.value);
pitchValue.textContent = pitch.value;
}
rate.onchange = () => {
speaker.setSpeed(rate.value);
rateValue.textContent = rate.value;
}
````
### Дополнительные примеры API:
API еще не полное
````javascript
// помощник, выводит команды на UI интерфейс
celebrimbor.setSampleCommands(['heeey', 'privet']);
// думаю понятно
celebrimbor.setLanguage('ru-RU');
````