{"id":19273654,"url":"https://github.com/zikwall/celebrimbor","last_synced_at":"2025-10-23T23:24:53.670Z","repository":{"id":104957997,"uuid":"152841828","full_name":"zikwall/celebrimbor","owner":"zikwall","description":":speech_balloon: Speech Recognition and Synthesis for your web application","archived":false,"fork":false,"pushed_at":"2018-10-14T13:49:58.000Z","size":21,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-05T14:24:50.509Z","etag":null,"topics":["js","speech-recognition","speech-synthesis","speech-to-text"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zikwall.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-10-13T06:18:38.000Z","updated_at":"2020-09-29T16:31:52.000Z","dependencies_parsed_at":null,"dependency_job_id":"b19fd44c-2a85-447c-9b00-db45ef9d3ae1","html_url":"https://github.com/zikwall/celebrimbor","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zikwall%2Fcelebrimbor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zikwall%2Fcelebrimbor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zikwall%2Fcelebrimbor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zikwall%2Fcelebrimbor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zikwall","download_url":"https://codeload.github.com/zikwall/celebrimbor/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240378870,"owners_count":19792039,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["js","speech-recognition","speech-synthesis","speech-to-text"],"created_at":"2024-11-09T20:43:44.770Z","updated_at":"2025-10-23T23:24:48.627Z","avatar_url":"https://github.com/zikwall.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Celebrimbor\n\nJavaScript библиотека, позволяющая распознавать и воспроизводить текст, а так же выполнять команды\n\n\n## Использование\n\n````html\n\u003cscript type=\"module\" src=\"../path/to/CelebrimborRecognition.js\"\u003e\u003c/script\u003e\n\u003cscript\u003e\n  let celebrimbor = new CelebrimborRecognition();\n  \n  // вариант 1\n  let commands = {\n    'привет': () =\u003e { \n        alert('Привет!'); \n    },\n    ...\n  };\n\n  celebrimbor.addCommands(commands);\n  \n  // вариант 2\n  celebrimbor.addCommands({\n     'обнови страницу': () =\u003e {\n          location.reload();\n      }\n  });\n  \n  // вариант 3\n  celebrimbor.addCommands({\n      'напиши *log и еще *any': printLog\n  });\n  \n  function printLog(log, any) {\n     console.log('Я пишу ' + log + ', а также ' + any);\n  }\n  \n  celebrimbor.start();\n\n\u003c/script\u003e\n````\n\n### Активация говора\nCelebrimbor умеет говорить!\n````javascript\nlet speaker = celebrimbor.synthesis();\n\ncelebrimbor.addCommands({\n    'скажи *say': (say) =\u003e {\n        speaker.synthesis().say(say);\n    }\n});\n````\n\nа так же отдельное использование\n\n````javascript\nlet celebrimborSpeaker = new CelebrimborSynthesis();\n````\n### Активация UI \nАктивация графического интерфейса максимальна проста в использовании и составляет всего лишь в пару строк: \n\n````javascript\nlet celebrimbor = new CelebrimborUI();\n// происходит автоматическая инициализация CelebrimborRecognition\n\n// ... добавление команд и т.д\n\ncelebrimbor.render();\n````\n\n### События\nCelebrimbor поддерживает события для каждой сущности библиотеки и очень просты в использовании:\n````javascript\n\nlet celebrimbor = new CelebrimborUI();\nlet speaker = celebrimbor.synthesis();\n\ncelebrimbor.addEvent(celebrimbor.getEvents().BEFORE_OFF, (event) =\u003e {\n   /**\n    * @see Celebrimbor.triggerEvent(), addEvent and CelebrimborUI.setStatusOff()\n    */\n   console.log('Событие до сворачивания ' + event.detail.obj.timestamp);\n});\n\ncelebrimbor.addEvent(celebrimbor.getEvents().AFTER_OFF, (event) =\u003e {\n   console.log('Событие после сворачивания');\n});\n\ncelebrimbor.addEvent(celebrimbor.getEvents().AFTER_SET_STYLESHEET, (event) =\u003e {\n   speaker.say('Событие на завершение темизации графического интерфейса');\n});\n\n// или через глобальные свойства (poperties) объекта Celebrimbor\n\ncelebrimbor.addCommands({\n    'пауза': () =\u003e {\n       celebrimbor.pause();\n    }\n});\n\ncelebrimbor.addEvent(celebrimbor.getProps().speech.events.BEFORE_PAUSE, (event) =\u003e {\n    speaker.say('Вы поcтавили паузу!');\n});\n````\n\n### Управление скоростью и громкостью\nCelebrimbor реализует простенькую возможность кастомизации Synthesis API, пример из документации: \n\n````javascript\nvar pitch = document.querySelector('#pitch');\nvar pitchValue = document.querySelector('.pitch-value');\nvar rate = document.querySelector('#rate');\nvar rateValue = document.querySelector('.rate-value');\n\npitch.onchange = () =\u003e {\n    speaker.setVolume(pitch.value);\n    pitchValue.textContent = pitch.value;\n}\n\nrate.onchange = () =\u003e {\n    speaker.setSpeed(rate.value);\n    rateValue.textContent = rate.value;\n}\n````\n\n### Дополнительные примеры API: \nAPI еще не полное\n````javascript\n// помощник, выводит команды на UI интерфейс\ncelebrimbor.setSampleCommands(['heeey', 'privet']);\n\n// думаю понятно\ncelebrimbor.setLanguage('ru-RU');\n````\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzikwall%2Fcelebrimbor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzikwall%2Fcelebrimbor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzikwall%2Fcelebrimbor/lists"}