trumbowyg
Version:
A lightweight WYSIWYG editor
11 lines • 2.94 kB
JavaScript
/* ===========================================================
* trumbowyg.speechrecognition.js v1.0
* Speech recognition plugin for Trumbowyg
* http://alex-d.github.com/Trumbowyg
* ===========================================================
* Authors :
* - Tobias Rohde
* - Alexandre Demode (Alex-D)
* Website : tobiasrohde.de
*/
!function(e){"use strict";const n={lang:"en-US"},o=window.webkitSpeechRecognition||window.SpeechRecognition;function i(){return void 0!==o}e.extend(!0,e.trumbowyg,{langs:{az:{speechRecognition:"Nitqin tanınması"},bg:{speechRecognition:"Разпознаване на реч"},by:{speechRecognition:"Распазнаванне маўлення"},ca:{speechRecognition:"Reconeixement de veu"},cs:{speechRecognition:"Rozpoznávání řeči"},da:{speechRecognition:"Talegenkendelse"},de:{speechRecognition:"Spracherkennung"},el:{speechRecognition:"Αναγνώριση ομιλίας"},en:{speechRecognition:"Speech recognition"},es:{speechRecognition:"Reconocimiento de voz"},et:{speechRecognition:"Kõnetuvastus"},fi:{speechRecognition:"Puheentunnistus"},fr:{speechRecognition:"Reconnaissance vocale"},hr:{speechRecognition:"Prepoznavanje govora"},hu:{speechRecognition:"Beszédfelismerés"},it:{speechRecognition:"Riconoscimento vocale"},lt:{speechRecognition:"Kalbos atpažinimas"},nb:{speechRecognition:"Talegjenkjenning"},nl:{speechRecognition:"Spraakherkenning"},pl:{speechRecognition:"Rozpoznawanie mowy"},pt:{speechRecognition:"Reconhecimento de voz"},ro:{speechRecognition:"Recunoașterea vorbirii"},rs:{speechRecognition:"Препознавање говора"},ru:{speechRecognition:"Распознавание речи"},sk:{speechRecognition:"Rozpoznávanie reči"},sq:{speechRecognition:"Njohja e të folurit"},sv:{speechRecognition:"Taligenkänning"},ua:{speechRecognition:"Розпізнавання мови"}},plugins:{speechRecognition:{shouldInit:i,init:function(t){t.o.plugins.speechRecognition=e.extend(!0,{},n,t.o.plugins.speechRecognition||{}),t.addBtnDef("speechrecognition",function(n){let t=null,c=!1,s=null;const r=new o;return r.continuous=!0,r.interimResults=!0,r.maxAlternatives=1,r.onstart=function(){c=!0,t.style.color="#e71d36"},r.onerror=function(){c=!1,t.style.removeProperty("color")},r.onend=function(){c=!1,t.style.removeProperty("color")},r.onresult=function(e){const o=[...e.results].map((e=>e[0].transcript+(e.isFinal?"<br>":""))).join("");s.html(o),n.range.setEndAfter(s[0]),n.range.collapse(),n.syncCode()},{isSupported:i,fn:function(){c?r.stop():(t=n.$btnPane.find("."+n.o.prefix+"speechrecognition-button svg")[0],n.$ed.focus(),setTimeout((()=>{n.saveRange(),n.range.startContainer===n.range.endContainer&&"P"===n.range.startContainer.nodeName&&""===n.range.startContainer.innerText.trim()?s=e(n.range.startContainer):(s=e("<p/>"),n.range.deleteContents(),n.range.insertNode(s[0])),r.lang=n.o.plugins.speechRecognition.lang,r.start()})))}}}(t))}}}})}(jQuery);