diff --git a/.gitignore b/.gitignore index e068bd6..7dacd72 100644 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,7 @@ vosk kaldi .vscode index.html -clapack-wasm +OpenBLAS openfst emsdk test.js diff --git a/Examples/Vosklet.js b/Examples/Vosklet.js index 42c51bc..c0a5728 100644 --- a/Examples/Vosklet.js +++ b/Examples/Vosklet.js @@ -1 +1 @@ -var loadVosklet = (() => { var _scriptName = typeof document != 'undefined' ? document.currentScript?.src : undefined; return (function(moduleArg = {}) { var moduleRtn;function m(){p.buffer!=q.buffer&&u();return q}function x(){p.buffer!=q.buffer&&u();return aa}function ba(){p.buffer!=q.buffer&&u();return ca}function da(){p.buffer!=q.buffer&&u();return ha}function y(){p.buffer!=q.buffer&&u();return ia}function A(){p.buffer!=q.buffer&&u();return ja}function ka(){p.buffer!=q.buffer&&u();return la}var B=moduleArg,ma,na,oa=new Promise((a,b)=>{ma=a;na=b}),pa="object"==typeof window,qa="function"==typeof importScripts,ra="object"==typeof process&&"object"==typeof process.Pa&&"string"==typeof process.Pa.node&&"renderer"!=process.type,sa=B.$ww;if(pa){var C=[],ta=["status","partialResult","result"];let a=caches.open("Vosklet"),b=URL.createObjectURL(new Blob(["(",(()=>{registerProcessor("VoskletTransferer",class extends AudioWorkletProcessor{constructor(e){super();this.sa=0;this.za=e.processorOptions[0];this.wa=new Float32Array(this.za)}process(e){e[0][0]&&(this.wa.set(e[0][0],this.sa),this.sa+=128,this.sa>=this.za&&(this.sa=0,this.port.postMessage(this.wa,[this.wa.buffer]),this.wa=new Float32Array(this.za)));return!0}})}).toString(),")()"],{type:"text/javascript"}));class c extends EventTarget{constructor(){super();C.push(this)}delete(){this.ga.delete()}static async ra(e,f,g,h){let k=new c,l=new Promise((t,v)=>{k.addEventListener("status",w=>{w.detail?v(w.detail):(h&&(k.findWord=z=>k.ga.findWord(z)),t(k))},{once:!0})}),n=await caches.open("Vosklet"),r=(await n.keys(f,{ignoreSearch:!0}))[0];if("undefined"==typeof r||r.url.split("?")[1]!=g){e=await fetch(e,{cache:"no-store"});if(!e.ok)throw"Unable to fetch model, status: "+e.status;await n.put(f+"?"+g,e.clone())}else e=await n.match(r);f=await (new Response(e.body.pipeThrough(new DecompressionStream("gzip")))).arrayBuffer();g=D(f.byteLength);x().set(new Uint8Array(f),g);k.ga=new B.CommonModel(C.length-1,h,g,f.byteLength);return l}}class d extends EventTarget{constructor(){super();this.acceptWaveform=e=>{let f=D(4*e.length);ka().set(e,f/4);this.ga.acceptWaveform(f,e.length)};C.push(this);return new Proxy(this,{get(e,f){if(void 0!=e[f]||void 0!=e.ga[f]){var g=e[f];if(g)return g.bind?g.bind(e):g;g=e.ga[f];return g.bind?g.bind(e.ga):g}}})}async delete(e=!1){let f=new Promise(g=>this.addEventListener("status",()=>{this.ga.delete();g()},{once:!0}));this.ga.safeDelete(e);return f}static async ra(e,f,g,h,k){let l=new d,n=new Promise((r,t)=>{l.addEventListener("status",v=>{v.detail?t(v.detail):r(l)},{once:!0})});switch(g){case 1:l.ga=new B.Recognizer(C.length-1,f,e);break;case 2:l.ga=new B.Recognizer(C.length-1,f,e,k);break;default:l.ga=new B.Recognizer(C.length-1,f,e,h,0)}return n}}B={getModelCache:()=>a,cleanUp:async()=>{for(let e of C)await e.delete();URL.revokeObjectURL(b)},createTransferer:async(e,f)=>{await e.audioWorklet.addModule(b);return new AudioWorkletNode(e,"VoskletTransferer",{channelCountMode:"explicit",numberOfInputs:1,numberOfOutputs:0,channelCount:1,processorOptions:[f]})},createModel:(e,f,g)=>c.ra(e,f,g,!0),createSpkModel:(e,f,g)=>c.ra(e,f,g,!1),createRecognizer:(e,f)=>d.ra(e.ga,f,1),createRecognizerWithGrm:(e,f,g)=>d.ra(e.ga,f,3,g,null),createRecognizerWithSpkModel:(e,f,g)=>d.ra(e.ga,f,2,null,g.ga)}}var ua=Object.assign({},B),F="",va,wa;if(pa||qa)qa?F=self.location.href:"undefined"!=typeof document&&document.currentScript&&(F=document.currentScript.src),_scriptName&&(F=_scriptName),F.startsWith("blob:")?F="":F=F.substr(0,F.replace(/[?#].*/,"").lastIndexOf("/")+1),qa&&(wa=a=>{var b=new XMLHttpRequest;b.open("GET",a,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)}),va=a=>fetch(a,{credentials:"same-origin"}).then(b=>b.ok?b.arrayBuffer():Promise.reject(Error(b.status+" : "+b.url)));var xa=console.log.bind(console),G=console.error.bind(console);Object.assign(B,ua);ua=null;var p,ya,za=!1,Aa,q,aa,ca,ha,ia,ja,la,Ba,Ca,Da;function u(){var a=p.buffer;B.HEAP8=q=new Int8Array(a);B.HEAP16=ca=new Int16Array(a);B.HEAPU8=aa=new Uint8Array(a);B.HEAPU16=ha=new Uint16Array(a);B.HEAP32=ia=new Int32Array(a);B.HEAPU32=ja=new Uint32Array(a);B.HEAPF32=la=new Float32Array(a);B.HEAPF64=Da=new Float64Array(a);B.HEAP64=Ba=new BigInt64Array(a);B.HEAPU64=Ca=new BigUint64Array(a)}if(B.wasmMemory)p=B.wasmMemory;else if(p=new WebAssembly.Memory({initial:5040,maximum:32768,shared:!0}),!(p.buffer instanceof SharedArrayBuffer))throw G("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),ra&&G("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)"),Error("bad memory");u();var Ea=[],Fa=[],Ga=[];function Ha(){if(sa){let a=B;Ia(a.sb,a.sz);removeEventListener("message",Ja);Ka=Ka.forEach(La);addEventListener("message",La)}else for(;0a.startsWith("data:application/octet-stream;base64,"),Pa;function Qa(a){return va(a).then(b=>new Uint8Array(b),()=>{if(wa)var b=wa(a);else throw"both async and sync fetching of the wasm failed";return b})}function Ra(a,b,c){return Qa(a).then(d=>WebAssembly.instantiate(d,b)).then(c,d=>{G(`failed to asynchronously prepare wasm: ${d}`);Na(d)})}function Sa(a,b){var c=Pa;return"function"!=typeof WebAssembly.instantiateStreaming||Oa(c)||"function"!=typeof fetch?Ra(c,a,b):fetch(c,{credentials:"same-origin"}).then(d=>WebAssembly.instantiateStreaming(d,a).then(b,function(e){G(`wasm streaming compile failed: ${e}`);G("falling back to ArrayBuffer instantiation");return Ra(c,a,b)}))}function Ta(a,b,c){pa?C[a].dispatchEvent(new CustomEvent(ta[b],{detail:0==c?null:J(c)})):self.postMessage([a,b,c])}function Ua(a){this.name="ExitStatus";this.message=`Program terminated with exit(${a})`;this.status=a}var Ka=[],Va=[],Wa,Xa=a=>{var b=Va[a];b||(a>=Va.length&&(Va.length=a+1),Va[a]=b=Wa.get(a));return b},La=a=>{a=a.data;let b=a._wsc;b&&Xa(b)(...a.x)},Ja=a=>{Ka.push(a)},$a=new TextDecoder,J=(a,b)=>{if(!a)return"";b=a+b;for(var c=a;!(c>=b)&&x()[c];)++c;return $a.decode(x().slice(a,c))};class ab{constructor(a){this.ea=a-24}}var bb=0,cb=0,db=a=>{if(null===a)return"null";var b=typeof a;return"object"===b||"array"===b||"function"===b?a.toString():""+a},eb,K=a=>{for(var b="";x()[a];)b+=eb[x()[a++]];return b},L={},M={},fb={},N,gb=a=>{throw new N(a);},O,Q=(a,b,c)=>{function d(h){h=c(h);if(h.length!==a.length)throw new O("Mismatched type converter count");for(var k=0;kfb[h]=b);var e=Array(b.length),f=[],g=0;b.forEach((h,k)=>{M.hasOwnProperty(h)?e[k]=M[h]:(f.push(h),L.hasOwnProperty(h)||(L[h]=[]),L[h].push(()=>{e[k]=M[h];++g;g===f.length&&d(e)}))});0===f.length&&d(e)};function hb(a,b,c={}){var d=b.name;if(!a)throw new N(`type "${d}" must have a positive integer typeid pointer`);if(M.hasOwnProperty(a)){if(c.Ja)return;throw new N(`Cannot register type '${d}' twice`);}M[a]=b;delete fb[a];L.hasOwnProperty(a)&&(b=L[a],delete L[a],b.forEach(e=>e()))}function P(a,b,c={}){return hb(a,b,c)}var ib=(a,b,c)=>{switch(b){case 1:return c?d=>m()[d]:d=>x()[d];case 2:return c?d=>ba()[d>>1]:d=>da()[d>>1];case 4:return c?d=>y()[d>>2]:d=>A()[d>>2];case 8:return c?d=>Ba[d>>3]:d=>Ca[d>>3];default:throw new TypeError(`invalid integer width (${b}): ${a}`);}},jb=a=>{throw new N(a.ca.fa.da.name+" instance already deleted");},kb=!1,lb=()=>{},mb=(a,b,c)=>{if(b===c)return a;if(void 0===c.ja)return null;a=mb(a,b,c.ja);return null===a?null:c.Fa(a)},nb={},R=[],ob=()=>{for(;R.length;){var a=R.pop();a.ca.pa=!1;a["delete"]()}},S,T={},pb=(a,b)=>{if(void 0===b)throw new N("ptr should not be undefined");for(;a.ja;)b=a.ua(b),a=a.ja;return T[b]},qb=(a,b)=>{if(!b.fa||!b.ea)throw new O("makeClassHandle requires ptr and ptrType");if(!!b.la!==!!b.ha)throw new O("Both smartPtrType and smartPtr must be specified");b.count={value:1};return U(Object.create(a,{ca:{value:b,writable:!0}}))},U=a=>{if("undefined"===typeof FinalizationRegistry)return U=b=>b,a;kb=new FinalizationRegistry(b=>{b=b.ca;--b.count.value;0===b.count.value&&(b.ha?b.la.na(b.ha):b.fa.da.na(b.ea))});U=b=>{var c=b.ca;c.ha&&kb.register(b,{ca:c},b);return b};lb=b=>{kb.unregister(b)};return U(a)};function rb(){}var sb=(a,b)=>Object.defineProperty(b,"name",{value:a}),tb=(a,b,c)=>{if(void 0===a[b].ia){var d=a[b];a[b]=function(...e){if(!a[b].ia.hasOwnProperty(e.length))throw new N(`Function '${c}' called with an invalid number of arguments (${e.length}) - expects one of (${a[b].ia})!`);return a[b].ia[e.length].apply(this,e)};a[b].ia=[];a[b].ia[d.va]=d}},ub=(a,b,c)=>{if(B.hasOwnProperty(a)){if(void 0===c||void 0!==B[a].ia&&void 0!==B[a].ia[c])throw new N(`Cannot register public name '${a}' twice`);tb(B,a,a);if(B.hasOwnProperty(c))throw new N(`Cannot register multiple overloads of a function with the same number of arguments (${c})!`);B[a].ia[c]=b}else B[a]=b,void 0!==c&&(B[a].Sa=c)},vb=a=>{if(void 0===a)return"_unknown";a=a.replace(/[^a-zA-Z0-9_]/g,"$");var b=a.charCodeAt(0);return 48<=b&&57>=b?`_${a}`:a};function wb(a,b,c,d,e,f,g,h){this.name=a;this.constructor=b;this.qa=c;this.na=d;this.ja=e;this.Ha=f;this.ua=g;this.Fa=h;this.La=[]}var xb=(a,b,c)=>{for(;b!==c;){if(!b.ua)throw new N(`Expected null or instance of ${c.name}, got an instance of ${b.name}`);a=b.ua(a);b=b.ja}return a};function yb(a,b){if(null===b){if(this.Aa)throw new N(`null is not a valid ${this.name}`);return 0}if(!b.ca)throw new N(`Cannot pass "${db(b)}" as a ${this.name}`);if(!b.ca.ea)throw new N(`Cannot pass deleted object as a pointer of type ${this.name}`);return xb(b.ca.ea,b.ca.fa.da,this.da)}function zb(a,b){if(null===b){if(this.Aa)throw new N(`null is not a valid ${this.name}`);if(this.ya){var c=this.Ma();null!==a&&a.push(this.na,c);return c}return 0}if(!b||!b.ca)throw new N(`Cannot pass "${db(b)}" as a ${this.name}`);if(!b.ca.ea)throw new N(`Cannot pass deleted object as a pointer of type ${this.name}`);if(!this.xa&&b.ca.fa.xa)throw new N(`Cannot convert argument of type ${b.ca.la?b.ca.la.name:b.ca.fa.name} to parameter type ${this.name}`);c=xb(b.ca.ea,b.ca.fa.da,this.da);if(this.ya){if(void 0===b.ca.ha)throw new N("Passing raw pointer to smart pointer is illegal");switch(this.Oa){case 0:if(b.ca.la===this)c=b.ca.ha;else throw new N(`Cannot convert argument of type ${b.ca.la?b.ca.la.name:b.ca.fa.name} to parameter type ${this.name}`);break;case 1:c=b.ca.ha;break;case 2:if(b.ca.la===this)c=b.ca.ha;else{var d=b.clone();c=this.Na(c,Ab(()=>d["delete"]()));null!==a&&a.push(this.na,c)}break;default:throw new N("Unsupporting sharing policy");}}return c}function Bb(a,b){if(null===b){if(this.Aa)throw new N(`null is not a valid ${this.name}`);return 0}if(!b.ca)throw new N(`Cannot pass "${db(b)}" as a ${this.name}`);if(!b.ca.ea)throw new N(`Cannot pass deleted object as a pointer of type ${this.name}`);if(b.ca.fa.xa)throw new N(`Cannot convert argument of type ${b.ca.fa.name} to parameter type ${this.name}`);return xb(b.ca.ea,b.ca.fa.da,this.da)}function Cb(a){return this.fromWireType(A()[a>>2])}function Db(a,b,c,d,e,f,g,h,k,l,n){this.name=a;this.da=b;this.Aa=c;this.xa=d;this.ya=e;this.Ka=f;this.Oa=g;this.Da=h;this.Ma=k;this.Na=l;this.na=n;e||void 0!==b.ja?this.toWireType=zb:(this.toWireType=d?yb:Bb,this.ka=null)}var Eb=(a,b,c)=>{if(!B.hasOwnProperty(a))throw new O("Replacing nonexistent public symbol");void 0!==B[a].ia&&void 0!==c?B[a].ia[c]=b:(B[a]=b,B[a].va=c)},V=(a,b)=>{a=K(a);var c=Xa(b);if("function"!=typeof c)throw new N(`unknown function pointer with signature ${a}: ${b}`);return c},Fb,Hb=a=>{a=Gb(a);var b=K(a);W(a);return b},Ib=(a,b)=>{function c(f){e[f]||M[f]||(fb[f]?fb[f].forEach(c):(d.push(f),e[f]=!0))}var d=[],e={};b.forEach(c);throw new Fb(`${a}: `+d.map(Hb).join([", "]));},Jb=(a,b)=>{for(var c=[],d=0;d>2]);return c},Kb=a=>{for(;a.length;){var b=a.pop();a.pop()(b)}};function Lb(a){for(var b=1;bg)throw new N("argTypes array size mismatch! Must at least get return value and 'this' types!");var h=null!==b[1]&&null!==c,k=Lb(b);c="void"!==b[0].name;d=[a,gb,d,e,Kb,b[0],b[1]];for(e=0;e{a=a.trim();const b=a.indexOf("(");return-1!==b?a.substr(0,b):a},Qb=[],X=[],Ab=a=>{switch(a){case void 0:return 2;case null:return 4;case !0:return 6;case !1:return 8;default:const b=Qb.pop()||X.length;X[b]=a;X[b+1]=1;return b}},Rb={name:"emscripten::val",fromWireType:a=>{if(!a)throw new N("Cannot use deleted val. handle = "+a);var b=X[a];9Ab(b),ma:8,readValueFromPointer:Cb,ka:null},Sb=(a,b,c)=>{switch(b){case 1:return c?function(d){return this.fromWireType(m()[d])}:function(d){return this.fromWireType(x()[d])};case 2:return c?function(d){return this.fromWireType(ba()[d>>1])}:function(d){return this.fromWireType(da()[d>>1])};case 4:return c?function(d){return this.fromWireType(y()[d>>2])}:function(d){return this.fromWireType(A()[d>>2])};default:throw new TypeError(`invalid integer width (${b}): ${a}`);}},Tb=a=>{var b=M[a];if(void 0===b)throw a=`${"enum"} has unknown type ${Hb(a)}`,new N(a);return b},Ub=(a,b)=>{switch(b){case 4:return function(c){return this.fromWireType(ka()[c>>2])};case 8:return function(c){var d=this.fromWireType;p.buffer!=q.buffer&&u();return d.call(this,Da[c>>3])};default:throw new TypeError(`invalid float width (${b}): ${a}`);}},Y=(a,b,c,d)=>{if(!(0=g){var h=a.charCodeAt(++f);g=65536+((g&1023)<<10)|h&1023}if(127>=g){if(c>=d)break;b[c++]=g}else{if(2047>=g){if(c+1>=d)break;b[c++]=192|g>>6}else{if(65535>=g){if(c+2>=d)break;b[c++]=224|g>>12}else{if(c+3>=d)break;b[c++]=240|g>>18;b[c++]=128|g>>12&63}b[c++]=128|g>>6&63}b[c++]=128|g&63}}b[c]=0;return c-e},Vb=(a,b)=>{Y(a,x(),b,17)},Wb=a=>{for(var b=0,c=0;c=d?b++:2047>=d?b+=2:55296<=d&&57343>=d?(b+=4,++c):b+=3}return b},Xb=new TextDecoder("utf-16le"),Yb=(a,b)=>{var c=a>>1;for(b=c+b/2;!(c>=b)&&da()[c];)++c;c<<=1;return Xb.decode(x().slice(a,c))},Zb=(a,b,c)=>{c??=2147483647;if(2>c)return 0;c-=2;var d=b;c=c<2*a.length?c/2:a.length;for(var e=0;e>1]=f;b+=2}ba()[b>>1]=0;return b-d},$b=a=>2*a.length,ac=(a,b)=>{for(var c=0,d="";!(c>=b/4);){var e=y()[a+4*c>>2];if(0==e)break;++c;65536<=e?(e-=65536,d+=String.fromCharCode(55296|e>>10,56320|e&1023)):d+=String.fromCharCode(e)}return d},bc=(a,b,c)=>{c??=2147483647;if(4>c)return 0;var d=b;c=d+c-4;for(var e=0;e=f){var g=a.charCodeAt(++e);f=65536+((f&1023)<<10)|g&1023}y()[b>>2]=f;b+=4;if(b+4>c)break}y()[b>>2]=0;return b-d},cc=a=>{for(var b=0,c=0;c=d&&++c;b+=4}return b},dc={},ec=1,fc=URL.createObjectURL(new Blob(["onmessage=function(d){onmessage=null;d=d.data;d[`instantiateWasm`]=(i,r)=>{var n=new WebAssembly.Instance(d[`wasm`],i);return r(n,d[`wasm`]);};importScripts(d.js);loadVosklet(d);d.wasm=d.mem=d.js=0;}"],{type:"application/javascript"})),gc={},hc=a=>{if(!(a instanceof Ua||"unwind"==a))throw a;},ic=0,jc=a=>{Aa=a;0{if(!za)try{if(a(),!(0{if(!pc){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:"./this.program"},b;for(b in oc)void 0===oc[b]?delete a[b]:a[b]=oc[b];var c=[];for(b in a)c.push(`${b}=${a[b]}`);pc=c}return pc},pc,rc=()=>{if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues)return a=>(a.set(crypto.getRandomValues(new Uint8Array(a.byteLength))),a);Na("initRandomDevice")},sc=a=>(sc=rc())(a),tc=Array(256),uc=0;256>uc;++uc)tc[uc]=String.fromCharCode(uc);eb=tc;N=B.BindingError=class extends Error{constructor(a){super(a);this.name="BindingError"}};O=B.InternalError=class extends Error{constructor(a){super(a);this.name="InternalError"}};Object.assign(rb.prototype,{isAliasOf:function(a){if(!(this instanceof rb&&a instanceof rb))return!1;var b=this.ca.fa.da,c=this.ca.ea;a.ca=a.ca;var d=a.ca.fa.da;for(a=a.ca.ea;b.ja;)c=b.ua(c),b=b.ja;for(;d.ja;)a=d.ua(a),d=d.ja;return b===d&&c===a},clone:function(){this.ca.ea||jb(this);if(this.ca.ta)return this.ca.count.value+=1,this;var a=U,b=Object,c=b.create,d=Object.getPrototypeOf(this),e=this.ca;a=a(c.call(b,d,{ca:{value:{count:e.count,pa:e.pa,ta:e.ta,ea:e.ea,fa:e.fa,ha:e.ha,la:e.la}}}));a.ca.count.value+=1;a.ca.pa=!1;return a},["delete"](){this.ca.ea||jb(this);if(this.ca.pa&&!this.ca.ta)throw new N("Object already scheduled for deletion");lb(this);var a=this.ca;--a.count.value;0===a.count.value&&(a.ha?a.la.na(a.ha):a.fa.da.na(a.ea));this.ca.ta||(this.ca.ha=void 0,this.ca.ea=void 0)},isDeleted:function(){return!this.ca.ea},deleteLater:function(){this.ca.ea||jb(this);if(this.ca.pa&&!this.ca.ta)throw new N("Object already scheduled for deletion");R.push(this);1===R.length&&S&&S(ob);this.ca.pa=!0;return this}});B.getInheritedInstanceCount=()=>Object.keys(T).length;B.getLiveInheritedInstances=()=>{var a=[],b;for(b in T)T.hasOwnProperty(b)&&a.push(T[b]);return a};B.flushPendingDeletes=ob;B.setDelayFunction=a=>{S=a;R.length&&S&&S(ob)};Object.assign(Db.prototype,{Ia(a){this.Da&&(a=this.Da(a));return a},Ca(a){this.na?.(a)},ma:8,readValueFromPointer:Cb,fromWireType:function(a){function b(){return this.ya?qb(this.da.qa,{fa:this.Ka,ea:c,la:this,ha:a}):qb(this.da.qa,{fa:this,ea:a})}var c=this.Ia(a);if(!c)return this.Ca(a),null;var d=pb(this.da,c);if(void 0!==d){if(0===d.ca.count.value)return d.ca.ea=c,d.ca.ha=a,d.clone();d=d.clone();this.Ca(a);return d}d=this.da.Ha(c);d=nb[d];if(!d)return b.call(this);d=this.xa?d.Ea:d.pointerType;var e=mb(c,this.da,d.da);return null===e?b.call(this):this.ya?qb(d.da.qa,{fa:d,ea:e,la:this,ha:a}):qb(d.da.qa,{fa:d,ea:e})}});Fb=B.UnboundTypeError=((a,b)=>{var c=sb(b,function(d){this.name=b;this.message=d;d=Error(d).stack;void 0!==d&&(this.stack=this.toString()+"\n"+d.replace(/^Error(:[^\n]*)?\n/,""))});c.prototype=Object.create(a.prototype);c.prototype.constructor=c;c.prototype.toString=function(){return void 0===this.message?this.name:`${this.name}: ${this.message}`};return c})(Error,"UnboundTypeError");X.push(0,1,void 0,1,null,1,!0,1,!1,1);B.count_emval_handles=()=>X.length/2-5-Qb.length;sa&&(dc[0]=this,addEventListener("message",Ja));var wc={b:(a,b,c,d)=>{Na(`Assertion failed: ${J(a)}, at: `+[b?J(b):"unknown filename",c,d?J(d):"unknown function"])},s:(a,b)=>Xa(a)(b),c:(a,b,c)=>{var d=new ab(a);A()[d.ea+16>>2]=0;A()[d.ea+4>>2]=b;A()[d.ea+8>>2]=c;bb=a;cb++;throw bb;},O:()=>{Na("")},q:(a,b,c)=>{b=K(b);P(a,{name:b,fromWireType:d=>d,toWireType:function(d,e){if("bigint"!=typeof e&&"number"!=typeof e)throw new TypeError(`Cannot convert "${db(e)}" to ${this.name}`);"number"==typeof e&&(e=BigInt(e));return e},ma:8,readValueFromPointer:ib(b,c,-1==b.indexOf("u")),ka:null})},R:(a,b,c,d)=>{b=K(b);P(a,{name:b,fromWireType:function(e){return!!e},toWireType:function(e,f){return f?c:d},ma:8,readValueFromPointer:function(e){return this.fromWireType(x()[e])},ka:null})},o:(a,b,c,d,e,f,g,h,k,l,n,r,t)=>{n=K(n);f=V(e,f);h&&=V(g,h);l&&=V(k,l);t=V(r,t);var v=vb(n);ub(v,function(){Ib(`Cannot construct ${n} due to unbound types`,[d])});Q([a,b,c],d?[d]:[],w=>{w=w[0];if(d){var z=w.da;var ea=z.qa}else ea=rb.prototype;w=sb(n,function(...Ya){if(Object.getPrototypeOf(this)!==Za)throw new N("Use 'new' to construct "+n);if(void 0===E.oa)throw new N(n+" has no accessible constructor");var Pb=E.oa[Ya.length];if(void 0===Pb)throw new N(`Tried to invoke ctor of ${n} with invalid number of parameters (${Ya.length}) - expected (${Object.keys(E.oa).toString()}) parameters instead!`);return Pb.apply(this,Ya)});var Za=Object.create(ea,{constructor:{value:w}});w.prototype=Za;var E=new wb(n,w,Za,t,z,f,h,l);if(E.ja){var fa;(fa=E.ja).Ba??(fa.Ba=[]);E.ja.Ba.push(E)}z=new Db(n,E,!0,!1,!1);fa=new Db(n+"*",E,!1,!1,!1);ea=new Db(n+" const*",E,!1,!0,!1);nb[a]={pointerType:fa,Ea:ea};Eb(v,w);return[z,fa,ea]})},j:(a,b,c,d,e,f)=>{var g=Jb(b,c);e=V(d,e);Q([],[a],h=>{h=h[0];var k=`constructor ${h.name}`;void 0===h.da.oa&&(h.da.oa=[]);if(void 0!==h.da.oa[b-1])throw new N(`Cannot register multiple constructors with identical number of parameters (${b-1}) for class '${h.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);h.da.oa[b-1]=()=>{Ib(`Cannot construct ${h.name} due to unbound types`,g)};Q([],g,l=>{l.splice(1,0,null);h.da.oa[b-1]=Nb(k,l,null,e,f);return[]});return[]})},h:(a,b,c,d,e,f,g,h,k)=>{var l=Jb(c,d);b=K(b);b=Ob(b);f=V(e,f);Q([],[a],n=>{function r(){Ib(`Cannot call ${t} due to unbound types`,l)}n=n[0];var t=`${n.name}.${b}`;b.startsWith("@@")&&(b=Symbol[b.substring(2)]);h&&n.da.La.push(b);var v=n.da.qa,w=v[b];void 0===w||void 0===w.ia&&w.className!==n.name&&w.va===c-2?(r.va=c-2,r.className=n.name,v[b]=r):(tb(v,b,t),v[b].ia[c-2]=r);Q([],l,z=>{z=Nb(t,z,n,f,g,k);void 0===v[b].ia?(z.va=c-2,v[b]=z):v[b].ia[c-2]=z;return[]});return[]})},Q:a=>P(a,Rb),J:(a,b,c,d)=>{function e(){}b=K(b);e.values={};P(a,{name:b,constructor:e,fromWireType:function(f){return this.constructor.values[f]},toWireType:(f,g)=>g.value,ma:8,readValueFromPointer:Sb(b,c,d),ka:null});ub(b,e)},k:(a,b,c)=>{var d=Tb(a);b=K(b);a=d.constructor;d=Object.create(d.constructor.prototype,{value:{value:c},constructor:{value:sb(`${d.name}_${b}`,function(){})}});a.values[c]=d;a[b]=d},p:(a,b,c)=>{b=K(b);P(a,{name:b,fromWireType:d=>d,toWireType:(d,e)=>e,ma:8,readValueFromPointer:Ub(b,c),ka:null})},P:(a,b,c,d,e,f,g)=>{var h=Jb(b,c);a=K(a);a=Ob(a);e=V(d,e);ub(a,function(){Ib(`Cannot call ${a} due to unbound types`,h)},b-1);Q([],h,k=>{Eb(a,Nb(a,[k[0],null].concat(k.slice(1)),null,e,f,g),b-1);return[]})},i:(a,b,c,d,e)=>{b=K(b);-1===e&&(e=4294967295);e=h=>h;if(0===d){var f=32-8*c;e=h=>h<>>f}var g=b.includes("unsigned")?function(h,k){return k>>>0}:function(h,k){return k};P(a,{name:b,fromWireType:e,toWireType:g,ma:8,readValueFromPointer:ib(b,c,0!==d),ka:null})},e:(a,b,c)=>{function d(f){var g=A()[f>>2];f=A()[f+4>>2];return new e(m().buffer,f,g)}var e=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][b];c=K(c);P(a,{name:c,fromWireType:d,ma:8,readValueFromPointer:d},{Ja:!0})},r:(a,b)=>{b=K(b);var c="std::string"===b;P(a,{name:b,fromWireType:function(d){var e=A()[d>>2],f=d+4;if(c)for(var g=f,h=0;h<=e;++h){var k=f+h;if(h==e||0==x()[k]){g=J(g,k-g);if(void 0===l)var l=g;else l+=String.fromCharCode(0),l+=g;g=k+1}}else{l=Array(e);for(h=0;h>2]=g;if(c&&f)g+=1,Y(e,x(),k,g);else if(f)for(f=0;f{c=K(c);if(2===b){var d=Yb;var e=Zb;var f=$b;var g=h=>da()[h>>1]}else 4===b&&(d=ac,e=bc,f=cc,g=h=>A()[h>>2]);P(a,{name:c,fromWireType:h=>{for(var k=A()[h>>2],l,n=h+4,r=0;r<=k;++r){var t=h+4+r*b;if(r==k||0==g(t))n=d(n,t-n),void 0===l?l=n:(l+=String.fromCharCode(0),l+=n),n=t+b}W(h);return l},toWireType:(h,k)=>{if("string"!=typeof k)throw new N(`Cannot pass non-string to C++ string type ${c}`);var l=f(k),n=D(4+l+b);A()[n>>2]=l/b;e(k,n+4,l+b);null!==h&&h.push(W,n);return n},ma:8,readValueFromPointer:Cb,ka(h){W(h)}})},S:(a,b)=>{b=K(b);P(a,{Ra:!0,name:b,ma:0,fromWireType:()=>{},toWireType:()=>{}})},G:(a,b)=>{let c=dc[ec]=new Worker(fc);c.postMessage({$ww:ec,wasm:ya,js:B.mainScriptUrlOrBlob||_scriptName,wasmMemory:p,sb:a,sz:b});c.onmessage=La;return ec++},N:()=>1,u:()=>{ic=0},v:(a,b)=>{gc[a]&&(clearTimeout(gc[a].id),delete gc[a]);if(!b)return 0;var c=setTimeout(()=>{delete gc[a];kc(()=>vc(a,performance.now()))},b);gc[a]={id:c,Va:b};return 0},I:(a,b,c,d)=>{var e=(new Date).getFullYear(),f=(new Date(e,0,1)).getTimezoneOffset();e=(new Date(e,6,1)).getTimezoneOffset();var g=Math.max(f,e);A()[a>>2]=60*g;y()[b>>2]=Number(f!=e);b=h=>{var k=Math.abs(h);return`UTC${0<=h?"-":"+"}${String(Math.floor(k/60)).padStart(2,"0")}${String(k%60).padStart(2,"0")}`};a=b(f);b=b(e);ex().set(mc[a].Ga,b),A:()=>lc.length,B:()=>mc.length,y:(a,b)=>{a=lc[a].Qa;var c=Wb(a)+1;Y(a,x(),b,c)},w:a=>mc[a].mode,D:a=>mc[a].Ga.length,z:(a,b)=>{a=lc[a].Ta;var c=Wb(a)+1;Y(a,x(),b,c)},x:(a,b)=>{a=mc[a].Ua;var c=Wb(a)+1;Y(a,x(),b,c)},F:()=>{a:{if(!nc.length){var a=null;"undefined"!=typeof window&&"function"==typeof window.prompt&&(a=window.prompt("Input: "),null!==a&&(a+="\n"));if(!a){var b=null;break a}b=Array(Wb(a)+1);a=Y(a,b,0,b.length);b.length=a;nc=b}b=nc.shift()}return"number"===typeof b?b:-1},T:a=>{console.error(J(a))},V:a=>{console.log(J(a))},U:a=>{console.warn(J(a))},f:()=>Date.now(),l:a=>G(J(a)),m:()=>performance.now(),E:a=>xa(J(a)),K:a=>{var b=x().length;a>>>=0;if(a<=b||2147483648=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,a+100663296);a:{d=(Math.min(2147483648,65536*Math.ceil(Math.max(a,d)/65536))-p.buffer.byteLength+65535)/65536;try{p.grow(d);u();var e=1;break a}catch(f){}e=void 0}if(e)return!0}return!1},L:(a,b)=>{var c=0;qc().forEach((d,e)=>{var f=b+c;e=A()[a+4*e>>2]=f;for(f=0;f{var c=qc();A()[a>>2]=c.length;var d=0;c.forEach(e=>d+=e.length+1);A()[b>>2]=d;return 0},d:a=>{Aa=a;jc(a)},g:Ta,H:(a,b)=>{sc(x().subarray(a,a+b));return 0},a:p,t:jc,W:function(a,b){for(let c of Object.values(dc))c.postMessage({_wsc:a,x:[b]}),c.onmessage=d=>Ta(...d.data)}},Z=function(){function a(c,d){Z=c.exports;Wa=Z._;Fa.unshift(Z.X);ya=d;H--;0==H&&(null!==Ma&&(clearInterval(Ma),Ma=null),I&&(c=I,I=null,c()));return Z}var b={a:wc};H++;if(B.instantiateWasm)try{return B.instantiateWasm(b,a)}catch(c){G(`Module.instantiateWasm callback failed with error: ${c}`),na(c)}Pa??=Oa("Vosklet.wasm")?"Vosklet.wasm":F+"Vosklet.wasm";Sa(b,function(c){a(c.instance,c.module)}).catch(na);return{}}(),W=a=>(W=Z.Y)(a),D=a=>(D=Z.Z)(a),Gb=a=>(Gb=Z.$)(a),vc=(a,b)=>(vc=Z.aa)(a,b),Ia=(a,b)=>(Ia=Z.ba)(a,b),xc;I=function yc(){xc||zc();xc||(I=yc)};function zc(){if(!(0 loadVosklet); \ No newline at end of file +var loadVosklet = (() => { var _scriptName = typeof document != 'undefined' ? document.currentScript?.src : undefined; return (function(moduleArg = {}) { var moduleRtn;function m(){p.buffer!=q.buffer&&u();return q}function x(){p.buffer!=q.buffer&&u();return aa}function ba(){p.buffer!=q.buffer&&u();return ca}function da(){p.buffer!=q.buffer&&u();return ha}function y(){p.buffer!=q.buffer&&u();return ia}function A(){p.buffer!=q.buffer&&u();return ja}function ka(){p.buffer!=q.buffer&&u();return la}var B=moduleArg,ma,na,oa=new Promise((a,b)=>{ma=a;na=b}),pa="object"==typeof window,qa="function"==typeof importScripts,ra="object"==typeof process&&"object"==typeof process.Na&&"string"==typeof process.Na.node&&"renderer"!=process.type,sa=B.$ww;if(pa){var C=[],ta=["status","partialResult","result"];let a=caches.open("Vosklet"),b=URL.createObjectURL(new Blob(["(",(()=>{registerProcessor("VoskletTransferer",class extends AudioWorkletProcessor{constructor(e){super();this.qa=0;this.xa=e.processorOptions[0];this.ua=new Float32Array(this.xa)}process(e){e[0][0]&&(this.ua.set(e[0][0],this.qa),this.qa+=128,this.qa>=this.xa&&(this.qa=0,this.port.postMessage(this.ua,[this.ua.buffer]),this.ua=new Float32Array(this.xa)));return!0}})}).toString(),")()"],{type:"text/javascript"}));class c extends EventTarget{constructor(){super();C.push(this)}delete(){this.ea.delete()}static async pa(e,f,g,h){let k=new c,l=new Promise((t,v)=>{k.addEventListener("status",w=>{w.detail?v(w.detail):(h&&(k.findWord=z=>k.ea.findWord(z)),t(k))},{once:!0})}),n=await caches.open("Vosklet"),r=(await n.keys(f,{ignoreSearch:!0}))[0];if("undefined"==typeof r||r.url.split("?")[1]!=g){e=await fetch(e,{cache:"no-store"});if(!e.ok)throw"Unable to fetch model, status: "+e.status;await n.put(f+"?"+g,e.clone())}else e=await n.match(r);f=await (new Response(e.body.pipeThrough(new DecompressionStream("gzip")))).arrayBuffer();g=D(f.byteLength);x().set(new Uint8Array(f),g);k.ea=new B.CommonModel(C.length-1,h,g,f.byteLength);return l}}class d extends EventTarget{constructor(){super();this.acceptWaveform=e=>{let f=D(4*e.length);ka().set(e,f/4);this.ea.acceptWaveform(f,e.length)};C.push(this);return new Proxy(this,{get(e,f){if(void 0!=e[f]||void 0!=e.ea[f]){var g=e[f];if(g)return g.bind?g.bind(e):g;g=e.ea[f];return g.bind?g.bind(e.ea):g}}})}async delete(e=!1){let f=new Promise(g=>this.addEventListener("status",()=>{this.ea.delete();g()},{once:!0}));this.ea.safeDelete(e);return f}static async pa(e,f,g,h,k){let l=new d,n=new Promise((r,t)=>{l.addEventListener("status",v=>{v.detail?t(v.detail):r(l)},{once:!0})});switch(g){case 1:l.ea=new B.Recognizer(C.length-1,f,e);break;case 2:l.ea=new B.Recognizer(C.length-1,f,e,k);break;default:l.ea=new B.Recognizer(C.length-1,f,e,h,0)}return n}}B={getModelCache:()=>a,cleanUp:async()=>{for(let e of C)await e.delete();URL.revokeObjectURL(b)},createTransferer:async(e,f)=>{await e.audioWorklet.addModule(b);return new AudioWorkletNode(e,"VoskletTransferer",{channelCountMode:"explicit",numberOfInputs:1,numberOfOutputs:0,channelCount:1,processorOptions:[f]})},createModel:(e,f,g)=>c.pa(e,f,g,!0),createSpkModel:(e,f,g)=>c.pa(e,f,g,!1),createRecognizer:(e,f)=>d.pa(e.ea,f,1),createRecognizerWithGrm:(e,f,g)=>d.pa(e.ea,f,3,g,null),createRecognizerWithSpkModel:(e,f,g)=>d.pa(e.ea,f,2,null,g.ea)}}var ua=Object.assign({},B),F="",va,wa;if(pa||qa)qa?F=self.location.href:"undefined"!=typeof document&&document.currentScript&&(F=document.currentScript.src),_scriptName&&(F=_scriptName),F.startsWith("blob:")?F="":F=F.substr(0,F.replace(/[?#].*/,"").lastIndexOf("/")+1),qa&&(wa=a=>{var b=new XMLHttpRequest;b.open("GET",a,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)}),va=a=>fetch(a,{credentials:"same-origin"}).then(b=>b.ok?b.arrayBuffer():Promise.reject(Error(b.status+" : "+b.url)));var xa=console.log.bind(console),G=console.error.bind(console);Object.assign(B,ua);ua=null;var p,ya,za=!1,Aa,q,aa,ca,ha,ia,ja,la,Ba,Ca,Da;function u(){var a=p.buffer;B.HEAP8=q=new Int8Array(a);B.HEAP16=ca=new Int16Array(a);B.HEAPU8=aa=new Uint8Array(a);B.HEAPU16=ha=new Uint16Array(a);B.HEAP32=ia=new Int32Array(a);B.HEAPU32=ja=new Uint32Array(a);B.HEAPF32=la=new Float32Array(a);B.HEAPF64=Da=new Float64Array(a);B.HEAP64=Ba=new BigInt64Array(a);B.HEAPU64=Ca=new BigUint64Array(a)}if(B.wasmMemory)p=B.wasmMemory;else if(p=new WebAssembly.Memory({initial:5040,maximum:32768,shared:!0}),!(p.buffer instanceof SharedArrayBuffer))throw G("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),ra&&G("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)"),Error("bad memory");u();var Ea=[],Fa=[],Ga=[];function Ha(){if(sa){let a=B;Ia(a.sb,a.sz);removeEventListener("message",Ja);Ka=Ka.forEach(La);addEventListener("message",La)}else for(;0a.startsWith("data:application/octet-stream;base64,"),Pa;function Qa(a){return va(a).then(b=>new Uint8Array(b),()=>{if(wa)var b=wa(a);else throw"both async and sync fetching of the wasm failed";return b})}function Ra(a,b,c){return Qa(a).then(d=>WebAssembly.instantiate(d,b)).then(c,d=>{G(`failed to asynchronously prepare wasm: ${d}`);Na(d)})}function Sa(a,b){var c=Pa;return"function"!=typeof WebAssembly.instantiateStreaming||Oa(c)||"function"!=typeof fetch?Ra(c,a,b):fetch(c,{credentials:"same-origin"}).then(d=>WebAssembly.instantiateStreaming(d,a).then(b,function(e){G(`wasm streaming compile failed: ${e}`);G("falling back to ArrayBuffer instantiation");return Ra(c,a,b)}))}function Ta(a,b,c){pa?C[a].dispatchEvent(new CustomEvent(ta[b],{detail:0==c?null:J(c)})):self.postMessage([a,b,c])}function Ua(a){this.name="ExitStatus";this.message=`Program terminated with exit(${a})`;this.status=a}var Ka=[],Va=[],Wa,Za=a=>{var b=Va[a];b||(a>=Va.length&&(Va.length=a+1),Va[a]=b=Wa.get(a));return b},La=a=>{a=a.data;let b=a._wsc;b&&Za(b)(...a.x)},Ja=a=>{Ka.push(a)},$a=new TextDecoder,J=(a,b)=>{if(!a)return"";b=a+b;for(var c=a;!(c>=b)&&x()[c];)++c;return $a.decode(x().slice(a,c))};class ab{constructor(a){this.ca=a-24}}var bb=0,cb=0,db=a=>{if(null===a)return"null";var b=typeof a;return"object"===b||"array"===b||"function"===b?a.toString():""+a},eb,K=a=>{for(var b="";x()[a];)b+=eb[x()[a++]];return b},L={},M={},fb={},N,gb=a=>{throw new N(a);},O,Q=(a,b,c)=>{function d(h){h=c(h);if(h.length!==a.length)throw new O("Mismatched type converter count");for(var k=0;kfb[h]=b);var e=Array(b.length),f=[],g=0;b.forEach((h,k)=>{M.hasOwnProperty(h)?e[k]=M[h]:(f.push(h),L.hasOwnProperty(h)||(L[h]=[]),L[h].push(()=>{e[k]=M[h];++g;g===f.length&&d(e)}))});0===f.length&&d(e)};function hb(a,b,c={}){var d=b.name;if(!a)throw new N(`type "${d}" must have a positive integer typeid pointer`);if(M.hasOwnProperty(a)){if(c.Ha)return;throw new N(`Cannot register type '${d}' twice`);}M[a]=b;delete fb[a];L.hasOwnProperty(a)&&(b=L[a],delete L[a],b.forEach(e=>e()))}function P(a,b,c={}){return hb(a,b,c)}var ib=(a,b,c)=>{switch(b){case 1:return c?d=>m()[d]:d=>x()[d];case 2:return c?d=>ba()[d>>1]:d=>da()[d>>1];case 4:return c?d=>y()[d>>2]:d=>A()[d>>2];case 8:return c?d=>Ba[d>>3]:d=>Ca[d>>3];default:throw new TypeError(`invalid integer width (${b}): ${a}`);}},jb=a=>{throw new N(a.aa.da.ba.name+" instance already deleted");},kb=!1,lb=()=>{},mb=(a,b,c)=>{if(b===c)return a;if(void 0===c.ha)return null;a=mb(a,b,c.ha);return null===a?null:c.Da(a)},nb={},R=[],ob=()=>{for(;R.length;){var a=R.pop();a.aa.na=!1;a["delete"]()}},S,T={},pb=(a,b)=>{if(void 0===b)throw new N("ptr should not be undefined");for(;a.ha;)b=a.sa(b),a=a.ha;return T[b]},qb=(a,b)=>{if(!b.da||!b.ca)throw new O("makeClassHandle requires ptr and ptrType");if(!!b.ja!==!!b.fa)throw new O("Both smartPtrType and smartPtr must be specified");b.count={value:1};return U(Object.create(a,{aa:{value:b,writable:!0}}))},U=a=>{if("undefined"===typeof FinalizationRegistry)return U=b=>b,a;kb=new FinalizationRegistry(b=>{b=b.aa;--b.count.value;0===b.count.value&&(b.fa?b.ja.la(b.fa):b.da.ba.la(b.ca))});U=b=>{var c=b.aa;c.fa&&kb.register(b,{aa:c},b);return b};lb=b=>{kb.unregister(b)};return U(a)};function rb(){}var sb=(a,b)=>Object.defineProperty(b,"name",{value:a}),tb=(a,b,c)=>{if(void 0===a[b].ga){var d=a[b];a[b]=function(...e){if(!a[b].ga.hasOwnProperty(e.length))throw new N(`Function '${c}' called with an invalid number of arguments (${e.length}) - expects one of (${a[b].ga})!`);return a[b].ga[e.length].apply(this,e)};a[b].ga=[];a[b].ga[d.ta]=d}},ub=(a,b,c)=>{if(B.hasOwnProperty(a)){if(void 0===c||void 0!==B[a].ga&&void 0!==B[a].ga[c])throw new N(`Cannot register public name '${a}' twice`);tb(B,a,a);if(B.hasOwnProperty(c))throw new N(`Cannot register multiple overloads of a function with the same number of arguments (${c})!`);B[a].ga[c]=b}else B[a]=b,void 0!==c&&(B[a].Qa=c)},vb=a=>{if(void 0===a)return"_unknown";a=a.replace(/[^a-zA-Z0-9_]/g,"$");var b=a.charCodeAt(0);return 48<=b&&57>=b?`_${a}`:a};function wb(a,b,c,d,e,f,g,h){this.name=a;this.constructor=b;this.oa=c;this.la=d;this.ha=e;this.Fa=f;this.sa=g;this.Da=h;this.Ja=[]}var xb=(a,b,c)=>{for(;b!==c;){if(!b.sa)throw new N(`Expected null or instance of ${c.name}, got an instance of ${b.name}`);a=b.sa(a);b=b.ha}return a};function yb(a,b){if(null===b){if(this.ya)throw new N(`null is not a valid ${this.name}`);return 0}if(!b.aa)throw new N(`Cannot pass "${db(b)}" as a ${this.name}`);if(!b.aa.ca)throw new N(`Cannot pass deleted object as a pointer of type ${this.name}`);return xb(b.aa.ca,b.aa.da.ba,this.ba)}function zb(a,b){if(null===b){if(this.ya)throw new N(`null is not a valid ${this.name}`);if(this.wa){var c=this.Ka();null!==a&&a.push(this.la,c);return c}return 0}if(!b||!b.aa)throw new N(`Cannot pass "${db(b)}" as a ${this.name}`);if(!b.aa.ca)throw new N(`Cannot pass deleted object as a pointer of type ${this.name}`);if(!this.va&&b.aa.da.va)throw new N(`Cannot convert argument of type ${b.aa.ja?b.aa.ja.name:b.aa.da.name} to parameter type ${this.name}`);c=xb(b.aa.ca,b.aa.da.ba,this.ba);if(this.wa){if(void 0===b.aa.fa)throw new N("Passing raw pointer to smart pointer is illegal");switch(this.Ma){case 0:if(b.aa.ja===this)c=b.aa.fa;else throw new N(`Cannot convert argument of type ${b.aa.ja?b.aa.ja.name:b.aa.da.name} to parameter type ${this.name}`);break;case 1:c=b.aa.fa;break;case 2:if(b.aa.ja===this)c=b.aa.fa;else{var d=b.clone();c=this.La(c,Ab(()=>d["delete"]()));null!==a&&a.push(this.la,c)}break;default:throw new N("Unsupporting sharing policy");}}return c}function Bb(a,b){if(null===b){if(this.ya)throw new N(`null is not a valid ${this.name}`);return 0}if(!b.aa)throw new N(`Cannot pass "${db(b)}" as a ${this.name}`);if(!b.aa.ca)throw new N(`Cannot pass deleted object as a pointer of type ${this.name}`);if(b.aa.da.va)throw new N(`Cannot convert argument of type ${b.aa.da.name} to parameter type ${this.name}`);return xb(b.aa.ca,b.aa.da.ba,this.ba)}function Cb(a){return this.fromWireType(A()[a>>2])}function Db(a,b,c,d,e,f,g,h,k,l,n){this.name=a;this.ba=b;this.ya=c;this.va=d;this.wa=e;this.Ia=f;this.Ma=g;this.Ba=h;this.Ka=k;this.La=l;this.la=n;e||void 0!==b.ha?this.toWireType=zb:(this.toWireType=d?yb:Bb,this.ia=null)}var Eb=(a,b,c)=>{if(!B.hasOwnProperty(a))throw new O("Replacing nonexistent public symbol");void 0!==B[a].ga&&void 0!==c?B[a].ga[c]=b:(B[a]=b,B[a].ta=c)},V=(a,b)=>{a=K(a);var c=Za(b);if("function"!=typeof c)throw new N(`unknown function pointer with signature ${a}: ${b}`);return c},Fb,Hb=a=>{a=Gb(a);var b=K(a);W(a);return b},Ib=(a,b)=>{function c(f){e[f]||M[f]||(fb[f]?fb[f].forEach(c):(d.push(f),e[f]=!0))}var d=[],e={};b.forEach(c);throw new Fb(`${a}: `+d.map(Hb).join([", "]));},Jb=(a,b)=>{for(var c=[],d=0;d>2]);return c},Kb=a=>{for(;a.length;){var b=a.pop();a.pop()(b)}};function Lb(a){for(var b=1;bg)throw new N("argTypes array size mismatch! Must at least get return value and 'this' types!");var h=null!==b[1]&&null!==c,k=Lb(b);c="void"!==b[0].name;d=[a,gb,d,e,Kb,b[0],b[1]];for(e=0;e{a=a.trim();const b=a.indexOf("(");return-1!==b?a.substr(0,b):a},Qb=[],X=[],Ab=a=>{switch(a){case void 0:return 2;case null:return 4;case !0:return 6;case !1:return 8;default:const b=Qb.pop()||X.length;X[b]=a;X[b+1]=1;return b}},Rb={name:"emscripten::val",fromWireType:a=>{if(!a)throw new N("Cannot use deleted val. handle = "+a);var b=X[a];9Ab(b),ka:8,readValueFromPointer:Cb,ia:null},Sb=(a,b,c)=>{switch(b){case 1:return c?function(d){return this.fromWireType(m()[d])}:function(d){return this.fromWireType(x()[d])};case 2:return c?function(d){return this.fromWireType(ba()[d>>1])}:function(d){return this.fromWireType(da()[d>>1])};case 4:return c?function(d){return this.fromWireType(y()[d>>2])}:function(d){return this.fromWireType(A()[d>>2])};default:throw new TypeError(`invalid integer width (${b}): ${a}`);}},Tb=a=>{var b=M[a];if(void 0===b)throw a=`${"enum"} has unknown type ${Hb(a)}`,new N(a);return b},Ub=(a,b)=>{switch(b){case 4:return function(c){return this.fromWireType(ka()[c>>2])};case 8:return function(c){var d=this.fromWireType;p.buffer!=q.buffer&&u();return d.call(this,Da[c>>3])};default:throw new TypeError(`invalid float width (${b}): ${a}`);}},Y=(a,b,c,d)=>{if(!(0=g){var h=a.charCodeAt(++f);g=65536+((g&1023)<<10)|h&1023}if(127>=g){if(c>=d)break;b[c++]=g}else{if(2047>=g){if(c+1>=d)break;b[c++]=192|g>>6}else{if(65535>=g){if(c+2>=d)break;b[c++]=224|g>>12}else{if(c+3>=d)break;b[c++]=240|g>>18;b[c++]=128|g>>12&63}b[c++]=128|g>>6&63}b[c++]=128|g&63}}b[c]=0;return c-e},Vb=(a,b)=>{Y(a,x(),b,17)},Wb=a=>{for(var b=0,c=0;c=d?b++:2047>=d?b+=2:55296<=d&&57343>=d?(b+=4,++c):b+=3}return b},Xb=new TextDecoder("utf-16le"),Yb=(a,b)=>{var c=a>>1;for(b=c+b/2;!(c>=b)&&da()[c];)++c;c<<=1;return Xb.decode(x().slice(a,c))},Zb=(a,b,c)=>{c??=2147483647;if(2>c)return 0;c-=2;var d=b;c=c<2*a.length?c/2:a.length;for(var e=0;e>1]=f;b+=2}ba()[b>>1]=0;return b-d},$b=a=>2*a.length,ac=(a,b)=>{for(var c=0,d="";!(c>=b/4);){var e=y()[a+4*c>>2];if(0==e)break;++c;65536<=e?(e-=65536,d+=String.fromCharCode(55296|e>>10,56320|e&1023)):d+=String.fromCharCode(e)}return d},bc=(a,b,c)=>{c??=2147483647;if(4>c)return 0;var d=b;c=d+c-4;for(var e=0;e=f){var g=a.charCodeAt(++e);f=65536+((f&1023)<<10)|g&1023}y()[b>>2]=f;b+=4;if(b+4>c)break}y()[b>>2]=0;return b-d},cc=a=>{for(var b=0,c=0;c=d&&++c;b+=4}return b},dc={},ec=1,fc=URL.createObjectURL(new Blob(["onmessage=function(d){onmessage=null;d=d.data;d[`instantiateWasm`]=(i,r)=>{var n=new WebAssembly.Instance(d[`wasm`],i);return r(n,d[`wasm`]);};importScripts(d.js);loadVosklet(d);d.wasm=d.mem=d.js=0;}"],{type:"application/javascript"})),gc={},hc=a=>{if(!(a instanceof Ua||"unwind"==a))throw a;},ic=0,jc=a=>{Aa=a;0{if(!za)try{if(a(),!(0{if(!pc){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:"./this.program"},b;for(b in oc)void 0===oc[b]?delete a[b]:a[b]=oc[b];var c=[];for(b in a)c.push(`${b}=${a[b]}`);pc=c}return pc},pc,rc=()=>{if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues)return a=>(a.set(crypto.getRandomValues(new Uint8Array(a.byteLength))),a);Na("initRandomDevice")},sc=a=>(sc=rc())(a),tc=Array(256),uc=0;256>uc;++uc)tc[uc]=String.fromCharCode(uc);eb=tc;N=B.BindingError=class extends Error{constructor(a){super(a);this.name="BindingError"}};O=B.InternalError=class extends Error{constructor(a){super(a);this.name="InternalError"}};Object.assign(rb.prototype,{isAliasOf:function(a){if(!(this instanceof rb&&a instanceof rb))return!1;var b=this.aa.da.ba,c=this.aa.ca;a.aa=a.aa;var d=a.aa.da.ba;for(a=a.aa.ca;b.ha;)c=b.sa(c),b=b.ha;for(;d.ha;)a=d.sa(a),d=d.ha;return b===d&&c===a},clone:function(){this.aa.ca||jb(this);if(this.aa.ra)return this.aa.count.value+=1,this;var a=U,b=Object,c=b.create,d=Object.getPrototypeOf(this),e=this.aa;a=a(c.call(b,d,{aa:{value:{count:e.count,na:e.na,ra:e.ra,ca:e.ca,da:e.da,fa:e.fa,ja:e.ja}}}));a.aa.count.value+=1;a.aa.na=!1;return a},["delete"](){this.aa.ca||jb(this);if(this.aa.na&&!this.aa.ra)throw new N("Object already scheduled for deletion");lb(this);var a=this.aa;--a.count.value;0===a.count.value&&(a.fa?a.ja.la(a.fa):a.da.ba.la(a.ca));this.aa.ra||(this.aa.fa=void 0,this.aa.ca=void 0)},isDeleted:function(){return!this.aa.ca},deleteLater:function(){this.aa.ca||jb(this);if(this.aa.na&&!this.aa.ra)throw new N("Object already scheduled for deletion");R.push(this);1===R.length&&S&&S(ob);this.aa.na=!0;return this}});B.getInheritedInstanceCount=()=>Object.keys(T).length;B.getLiveInheritedInstances=()=>{var a=[],b;for(b in T)T.hasOwnProperty(b)&&a.push(T[b]);return a};B.flushPendingDeletes=ob;B.setDelayFunction=a=>{S=a;R.length&&S&&S(ob)};Object.assign(Db.prototype,{Ga(a){this.Ba&&(a=this.Ba(a));return a},Aa(a){this.la?.(a)},ka:8,readValueFromPointer:Cb,fromWireType:function(a){function b(){return this.wa?qb(this.ba.oa,{da:this.Ia,ca:c,ja:this,fa:a}):qb(this.ba.oa,{da:this,ca:a})}var c=this.Ga(a);if(!c)return this.Aa(a),null;var d=pb(this.ba,c);if(void 0!==d){if(0===d.aa.count.value)return d.aa.ca=c,d.aa.fa=a,d.clone();d=d.clone();this.Aa(a);return d}d=this.ba.Fa(c);d=nb[d];if(!d)return b.call(this);d=this.va?d.Ca:d.pointerType;var e=mb(c,this.ba,d.ba);return null===e?b.call(this):this.wa?qb(d.ba.oa,{da:d,ca:e,ja:this,fa:a}):qb(d.ba.oa,{da:d,ca:e})}});Fb=B.UnboundTypeError=((a,b)=>{var c=sb(b,function(d){this.name=b;this.message=d;d=Error(d).stack;void 0!==d&&(this.stack=this.toString()+"\n"+d.replace(/^Error(:[^\n]*)?\n/,""))});c.prototype=Object.create(a.prototype);c.prototype.constructor=c;c.prototype.toString=function(){return void 0===this.message?this.name:`${this.name}: ${this.message}`};return c})(Error,"UnboundTypeError");X.push(0,1,void 0,1,null,1,!0,1,!1,1);B.count_emval_handles=()=>X.length/2-5-Qb.length;sa&&(dc[0]=this,addEventListener("message",Ja));var wc={b:(a,b,c,d)=>{Na(`Assertion failed: ${J(a)}, at: `+[b?J(b):"unknown filename",c,d?J(d):"unknown function"])},c:(a,b,c)=>{var d=new ab(a);A()[d.ca+16>>2]=0;A()[d.ca+4>>2]=b;A()[d.ca+8>>2]=c;bb=a;cb++;throw bb;},M:()=>{Na("")},q:(a,b,c)=>{b=K(b);P(a,{name:b,fromWireType:d=>d,toWireType:function(d,e){if("bigint"!=typeof e&&"number"!=typeof e)throw new TypeError(`Cannot convert "${db(e)}" to ${this.name}`);"number"==typeof e&&(e=BigInt(e));return e},ka:8,readValueFromPointer:ib(b,c,-1==b.indexOf("u")),ia:null})},P:(a,b,c,d)=>{b=K(b);P(a,{name:b,fromWireType:function(e){return!!e},toWireType:function(e,f){return f?c:d},ka:8,readValueFromPointer:function(e){return this.fromWireType(x()[e])},ia:null})},o:(a,b,c,d,e,f,g,h,k,l,n,r,t)=>{n=K(n);f=V(e,f);h&&=V(g,h);l&&=V(k,l);t=V(r,t);var v=vb(n);ub(v,function(){Ib(`Cannot construct ${n} due to unbound types`,[d])});Q([a,b,c],d?[d]:[],w=>{w=w[0];if(d){var z=w.ba;var ea=z.oa}else ea=rb.prototype;w=sb(n,function(...Xa){if(Object.getPrototypeOf(this)!==Ya)throw new N("Use 'new' to construct "+n);if(void 0===E.ma)throw new N(n+" has no accessible constructor");var Pb=E.ma[Xa.length];if(void 0===Pb)throw new N(`Tried to invoke ctor of ${n} with invalid number of parameters (${Xa.length}) - expected (${Object.keys(E.ma).toString()}) parameters instead!`);return Pb.apply(this,Xa)});var Ya=Object.create(ea,{constructor:{value:w}});w.prototype=Ya;var E=new wb(n,w,Ya,t,z,f,h,l);if(E.ha){var fa;(fa=E.ha).za??(fa.za=[]);E.ha.za.push(E)}z=new Db(n,E,!0,!1,!1);fa=new Db(n+"*",E,!1,!1,!1);ea=new Db(n+" const*",E,!1,!0,!1);nb[a]={pointerType:fa,Ca:ea};Eb(v,w);return[z,fa,ea]})},j:(a,b,c,d,e,f)=>{var g=Jb(b,c);e=V(d,e);Q([],[a],h=>{h=h[0];var k=`constructor ${h.name}`;void 0===h.ba.ma&&(h.ba.ma=[]);if(void 0!==h.ba.ma[b-1])throw new N(`Cannot register multiple constructors with identical number of parameters (${b-1}) for class '${h.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);h.ba.ma[b-1]=()=>{Ib(`Cannot construct ${h.name} due to unbound types`,g)};Q([],g,l=>{l.splice(1,0,null);h.ba.ma[b-1]=Nb(k,l,null,e,f);return[]});return[]})},h:(a,b,c,d,e,f,g,h,k)=>{var l=Jb(c,d);b=K(b);b=Ob(b);f=V(e,f);Q([],[a],n=>{function r(){Ib(`Cannot call ${t} due to unbound types`,l)}n=n[0];var t=`${n.name}.${b}`;b.startsWith("@@")&&(b=Symbol[b.substring(2)]);h&&n.ba.Ja.push(b);var v=n.ba.oa,w=v[b];void 0===w||void 0===w.ga&&w.className!==n.name&&w.ta===c-2?(r.ta=c-2,r.className=n.name,v[b]=r):(tb(v,b,t),v[b].ga[c-2]=r);Q([],l,z=>{z=Nb(t,z,n,f,g,k);void 0===v[b].ga?(z.ta=c-2,v[b]=z):v[b].ga[c-2]=z;return[]});return[]})},O:a=>P(a,Rb),H:(a,b,c,d)=>{function e(){}b=K(b);e.values={};P(a,{name:b,constructor:e,fromWireType:function(f){return this.constructor.values[f]},toWireType:(f,g)=>g.value,ka:8,readValueFromPointer:Sb(b,c,d),ia:null});ub(b,e)},k:(a,b,c)=>{var d=Tb(a);b=K(b);a=d.constructor;d=Object.create(d.constructor.prototype,{value:{value:c},constructor:{value:sb(`${d.name}_${b}`,function(){})}});a.values[c]=d;a[b]=d},p:(a,b,c)=>{b=K(b);P(a,{name:b,fromWireType:d=>d,toWireType:(d,e)=>e,ka:8,readValueFromPointer:Ub(b,c),ia:null})},N:(a,b,c,d,e,f,g)=>{var h=Jb(b,c);a=K(a);a=Ob(a);e=V(d,e);ub(a,function(){Ib(`Cannot call ${a} due to unbound types`,h)},b-1);Q([],h,k=>{Eb(a,Nb(a,[k[0],null].concat(k.slice(1)),null,e,f,g),b-1);return[]})},i:(a,b,c,d,e)=>{b=K(b);-1===e&&(e=4294967295);e=h=>h;if(0===d){var f=32-8*c;e=h=>h<>>f}var g=b.includes("unsigned")?function(h,k){return k>>>0}:function(h,k){return k};P(a,{name:b,fromWireType:e,toWireType:g,ka:8,readValueFromPointer:ib(b,c,0!==d),ia:null})},d:(a,b,c)=>{function d(f){var g=A()[f>>2];f=A()[f+4>>2];return new e(m().buffer,f,g)}var e=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][b];c=K(c);P(a,{name:c,fromWireType:d,ka:8,readValueFromPointer:d},{Ha:!0})},r:(a,b)=>{b=K(b);var c="std::string"===b;P(a,{name:b,fromWireType:function(d){var e=A()[d>>2],f=d+4;if(c)for(var g=f,h=0;h<=e;++h){var k=f+h;if(h==e||0==x()[k]){g=J(g,k-g);if(void 0===l)var l=g;else l+=String.fromCharCode(0),l+=g;g=k+1}}else{l=Array(e);for(h=0;h>2]=g;if(c&&f)g+=1,Y(e,x(),k,g);else if(f)for(f=0;f{c=K(c);if(2===b){var d=Yb;var e=Zb;var f=$b;var g=h=>da()[h>>1]}else 4===b&&(d=ac,e=bc,f=cc,g=h=>A()[h>>2]);P(a,{name:c,fromWireType:h=>{for(var k=A()[h>>2],l,n=h+4,r=0;r<=k;++r){var t=h+4+r*b;if(r==k||0==g(t))n=d(n,t-n),void 0===l?l=n:(l+=String.fromCharCode(0),l+=n),n=t+b}W(h);return l},toWireType:(h,k)=>{if("string"!=typeof k)throw new N(`Cannot pass non-string to C++ string type ${c}`);var l=f(k),n=D(4+l+b);A()[n>>2]=l/b;e(k,n+4,l+b);null!==h&&h.push(W,n);return n},ka:8,readValueFromPointer:Cb,ia(h){W(h)}})},Q:(a,b)=>{b=K(b);P(a,{Pa:!0,name:b,ka:0,fromWireType:()=>{},toWireType:()=>{}})},F:(a,b)=>{let c=dc[ec]=new Worker(fc);c.postMessage({$ww:ec,wasm:ya,js:B.mainScriptUrlOrBlob||_scriptName,wasmMemory:p,sb:a,sz:b});c.onmessage=La;return ec++},t:()=>{ic=0},u:(a,b)=>{gc[a]&&(clearTimeout(gc[a].id),delete gc[a]);if(!b)return 0;var c=setTimeout(()=>{delete gc[a];kc(()=>vc(a,performance.now()))},b);gc[a]={id:c,Ta:b};return 0},I:(a,b,c,d)=>{var e=(new Date).getFullYear(),f=(new Date(e,0,1)).getTimezoneOffset();e=(new Date(e,6,1)).getTimezoneOffset();var g=Math.max(f,e);A()[a>>2]=60*g;y()[b>>2]=Number(f!=e);b=h=>{var k=Math.abs(h);return`UTC${0<=h?"-":"+"}${String(Math.floor(k/60)).padStart(2,"0")}${String(k%60).padStart(2,"0")}`};a=b(f);b=b(e);ex().set(mc[a].Ea,b),z:()=>lc.length,A:()=>mc.length,x:(a,b)=>{a=lc[a].Oa;var c=Wb(a)+1;Y(a,x(),b,c)},v:a=>mc[a].mode,C:a=>mc[a].Ea.length,y:(a,b)=>{a=lc[a].Ra;var c=Wb(a)+1;Y(a,x(),b,c)},w:(a,b)=>{a=mc[a].Sa;var c=Wb(a)+1;Y(a,x(),b,c)},E:()=>{a:{if(!nc.length){var a=null;"undefined"!=typeof window&&"function"==typeof window.prompt&&(a=window.prompt("Input: "),null!==a&&(a+="\n"));if(!a){var b=null;break a}b=Array(Wb(a)+1);a=Y(a,b,0,b.length);b.length=a;nc=b}b=nc.shift()}return"number"===typeof b?b:-1},R:a=>{console.error(J(a))},T:a=>{console.log(J(a))},S:a=>{console.warn(J(a))},f:()=>Date.now(),l:a=>G(J(a)),m:()=>performance.now(),D:a=>xa(J(a)),J:a=>{var b=x().length;a>>>=0;if(a<=b||2147483648=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,a+100663296);a:{d=(Math.min(2147483648,65536*Math.ceil(Math.max(a,d)/65536))-p.buffer.byteLength+65535)/65536;try{p.grow(d);u();var e=1;break a}catch(f){}e=void 0}if(e)return!0}return!1},K:(a,b)=>{var c=0;qc().forEach((d,e)=>{var f=b+c;e=A()[a+4*e>>2]=f;for(f=0;f{var c=qc();A()[a>>2]=c.length;var d=0;c.forEach(e=>d+=e.length+1);A()[b>>2]=d;return 0},e:a=>{Aa=a;jc(a)},g:Ta,G:(a,b)=>{sc(x().subarray(a,a+b));return 0},a:p,s:jc,U:function(a,b){for(let c of Object.values(dc))c.postMessage({_wsc:a,x:[b]}),c.onmessage=d=>Ta(...d.data)}},Z=function(){function a(c,d){Z=c.exports;Wa=Z.Z;Fa.unshift(Z.V);ya=d;H--;0==H&&(null!==Ma&&(clearInterval(Ma),Ma=null),I&&(c=I,I=null,c()));return Z}var b={a:wc};H++;if(B.instantiateWasm)try{return B.instantiateWasm(b,a)}catch(c){G(`Module.instantiateWasm callback failed with error: ${c}`),na(c)}Pa??=Oa("Vosklet.wasm")?"Vosklet.wasm":F+"Vosklet.wasm";Sa(b,function(c){a(c.instance,c.module)}).catch(na);return{}}(),W=a=>(W=Z.W)(a),D=a=>(D=Z.X)(a),Gb=a=>(Gb=Z.Y)(a),vc=(a,b)=>(vc=Z._)(a,b),Ia=(a,b)=>(Ia=Z.$)(a,b),xc;I=function yc(){xc||zc();xc||(I=yc)};function zc(){if(!(0 loadVosklet); \ No newline at end of file diff --git a/Examples/Vosklet.wasm b/Examples/Vosklet.wasm index eaf0033..29d5f33 100755 Binary files a/Examples/Vosklet.wasm and b/Examples/Vosklet.wasm differ diff --git a/README.md b/README.md index 22ab5c4..7c25f39 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # Overview -- A lightweight, up to date speech recognizer in the browser with total brotlied (used by JSDelivr) size of **under a megabyte** (609 KB) +- A lightweight, up to date speech recognizer in the browser with total brotlied (used by JSDelivr) size of **under a megabyte** (616 KB) - Live Demo (ASR in 20 languages): https://msqr1-github-io.pages.dev/Vosklet - Inspired by [vosk-browser](https://github.com/ccoreilly/vosk-browser) @@ -12,6 +12,7 @@ - Include model cache path management - Include model cache ID management (for updates) - Wraps all Vosk's functionaly +- Faster than vosk-browser # Basic usage (microphone recognition in English) - Using JsDelivr CDN diff --git a/Vosklet.js b/Vosklet.js index d7e547e..59a5e20 100644 --- a/Vosklet.js +++ b/Vosklet.js @@ -1 +1 @@ -var loadVosklet = (() => { var _scriptName = typeof document != 'undefined' ? document.currentScript?.src : undefined; return (function(moduleArg = {}) { var moduleRtn;function m(){p.buffer!=q.buffer&&u();return q}function x(){p.buffer!=q.buffer&&u();return aa}function ba(){p.buffer!=q.buffer&&u();return ca}function da(){p.buffer!=q.buffer&&u();return ha}function y(){p.buffer!=q.buffer&&u();return ia}function A(){p.buffer!=q.buffer&&u();return ja}function ka(){p.buffer!=q.buffer&&u();return la}var B=moduleArg,ma,na,oa=new Promise((a,b)=>{ma=a;na=b}),pa="object"==typeof window,qa="function"==typeof importScripts,ra="object"==typeof process&&"object"==typeof process.Pa&&"string"==typeof process.Pa.node&&"renderer"!=process.type,sa=B.$ww;if(pa){var C=[],ta=["status","partialResult","result"];let a=caches.open("Vosklet"),b=URL.createObjectURL(new Blob(["(",(()=>{registerProcessor("VoskletTransferer",class extends AudioWorkletProcessor{constructor(e){super();this.sa=0;this.za=e.processorOptions[0];this.wa=new Float32Array(this.za)}process(e){e[0][0]&&(this.wa.set(e[0][0],this.sa),this.sa+=128,this.sa>=this.za&&(this.sa=0,this.port.postMessage(this.wa,[this.wa.buffer]),this.wa=new Float32Array(this.za)));return!0}})}).toString(),")()"],{type:"text/javascript"}));class c extends EventTarget{constructor(){super();C.push(this)}delete(){this.ga.delete()}static async ra(e,f,g,h){let k=new c,l=new Promise((t,v)=>{k.addEventListener("status",w=>{w.detail?v(w.detail):(h&&(k.findWord=z=>k.ga.findWord(z)),t(k))},{once:!0})}),n=await caches.open("Vosklet"),r=(await n.keys(f,{ignoreSearch:!0}))[0];if("undefined"==typeof r||r.url.split("?")[1]!=g){e=await fetch(e,{cache:"no-store"});if(!e.ok)throw"Unable to fetch model, status: "+e.status;await n.put(f+"?"+g,new Response(e.clone().body.pipeThrough(new CompressionStream("gzip"))))}else e=await n.match(r);f=await (new Response(e.body.pipeThrough(new DecompressionStream("gzip")))).arrayBuffer();g=D(f.byteLength);x().set(new Uint8Array(f),g);k.ga=new B.CommonModel(C.length-1,h,g,f.byteLength);return l}}class d extends EventTarget{constructor(){super();this.acceptWaveform=e=>{let f=D(4*e.length);ka().set(e,f/4);this.ga.acceptWaveform(f,e.length)};C.push(this);return new Proxy(this,{get(e,f){if(void 0!=e[f]||void 0!=e.ga[f]){var g=e[f];if(g)return g.bind?g.bind(e):g;g=e.ga[f];return g.bind?g.bind(e.ga):g}}})}async delete(e=!1){let f=new Promise(g=>this.addEventListener("status",()=>{this.ga.delete();g()},{once:!0}));this.ga.safeDelete(e);return f}static async ra(e,f,g,h,k){let l=new d,n=new Promise((r,t)=>{l.addEventListener("status",v=>{v.detail?t(v.detail):r(l)},{once:!0})});switch(g){case 1:l.ga=new B.Recognizer(C.length-1,f,e);break;case 2:l.ga=new B.Recognizer(C.length-1,f,e,k);break;default:l.ga=new B.Recognizer(C.length-1,f,e,h,0)}return n}}B={getModelCache:()=>a,cleanUp:async()=>{for(let e of C)await e.delete();URL.revokeObjectURL(b)},createTransferer:async(e,f)=>{await e.audioWorklet.addModule(b);return new AudioWorkletNode(e,"VoskletTransferer",{channelCountMode:"explicit",numberOfInputs:1,numberOfOutputs:0,channelCount:1,processorOptions:[f]})},createModel:(e,f,g)=>c.ra(e,f,g,!0),createSpkModel:(e,f,g)=>c.ra(e,f,g,!1),createRecognizer:(e,f)=>d.ra(e.ga,f,1),createRecognizerWithGrm:(e,f,g)=>d.ra(e.ga,f,3,g,null),createRecognizerWithSpkModel:(e,f,g)=>d.ra(e.ga,f,2,null,g.ga)}}var ua=Object.assign({},B),F="",va,wa;if(pa||qa)qa?F=self.location.href:"undefined"!=typeof document&&document.currentScript&&(F=document.currentScript.src),_scriptName&&(F=_scriptName),F.startsWith("blob:")?F="":F=F.substr(0,F.replace(/[?#].*/,"").lastIndexOf("/")+1),qa&&(wa=a=>{var b=new XMLHttpRequest;b.open("GET",a,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)}),va=a=>fetch(a,{credentials:"same-origin"}).then(b=>b.ok?b.arrayBuffer():Promise.reject(Error(b.status+" : "+b.url)));var xa=console.log.bind(console),G=console.error.bind(console);Object.assign(B,ua);ua=null;var p,ya,za=!1,Aa,q,aa,ca,ha,ia,ja,la,Ba,Ca,Da;function u(){var a=p.buffer;B.HEAP8=q=new Int8Array(a);B.HEAP16=ca=new Int16Array(a);B.HEAPU8=aa=new Uint8Array(a);B.HEAPU16=ha=new Uint16Array(a);B.HEAP32=ia=new Int32Array(a);B.HEAPU32=ja=new Uint32Array(a);B.HEAPF32=la=new Float32Array(a);B.HEAPF64=Da=new Float64Array(a);B.HEAP64=Ba=new BigInt64Array(a);B.HEAPU64=Ca=new BigUint64Array(a)}if(B.wasmMemory)p=B.wasmMemory;else if(p=new WebAssembly.Memory({initial:5040,maximum:32768,shared:!0}),!(p.buffer instanceof SharedArrayBuffer))throw G("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),ra&&G("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)"),Error("bad memory");u();var Ea=[],Fa=[],Ga=[];function Ha(){if(sa){let a=B;Ia(a.sb,a.sz);removeEventListener("message",Ja);Ka=Ka.forEach(La);addEventListener("message",La)}else for(;0a.startsWith("data:application/octet-stream;base64,"),Pa;function Qa(a){return va(a).then(b=>new Uint8Array(b),()=>{if(wa)var b=wa(a);else throw"both async and sync fetching of the wasm failed";return b})}function Ra(a,b,c){return Qa(a).then(d=>WebAssembly.instantiate(d,b)).then(c,d=>{G(`failed to asynchronously prepare wasm: ${d}`);Na(d)})}function Sa(a,b){var c=Pa;return"function"!=typeof WebAssembly.instantiateStreaming||Oa(c)||"function"!=typeof fetch?Ra(c,a,b):fetch(c,{credentials:"same-origin"}).then(d=>WebAssembly.instantiateStreaming(d,a).then(b,function(e){G(`wasm streaming compile failed: ${e}`);G("falling back to ArrayBuffer instantiation");return Ra(c,a,b)}))}function Ta(a,b,c){pa?C[a].dispatchEvent(new CustomEvent(ta[b],{detail:0==c?null:J(c)})):self.postMessage([a,b,c])}function Ua(a){this.name="ExitStatus";this.message=`Program terminated with exit(${a})`;this.status=a}var Ka=[],Va=[],Wa,Xa=a=>{var b=Va[a];b||(a>=Va.length&&(Va.length=a+1),Va[a]=b=Wa.get(a));return b},La=a=>{a=a.data;let b=a._wsc;b&&Xa(b)(...a.x)},Ja=a=>{Ka.push(a)},$a=new TextDecoder,J=(a,b)=>{if(!a)return"";b=a+b;for(var c=a;!(c>=b)&&x()[c];)++c;return $a.decode(x().slice(a,c))};class ab{constructor(a){this.ea=a-24}}var bb=0,cb=0,db=a=>{if(null===a)return"null";var b=typeof a;return"object"===b||"array"===b||"function"===b?a.toString():""+a},eb,K=a=>{for(var b="";x()[a];)b+=eb[x()[a++]];return b},L={},M={},fb={},N,gb=a=>{throw new N(a);},O,Q=(a,b,c)=>{function d(h){h=c(h);if(h.length!==a.length)throw new O("Mismatched type converter count");for(var k=0;kfb[h]=b);var e=Array(b.length),f=[],g=0;b.forEach((h,k)=>{M.hasOwnProperty(h)?e[k]=M[h]:(f.push(h),L.hasOwnProperty(h)||(L[h]=[]),L[h].push(()=>{e[k]=M[h];++g;g===f.length&&d(e)}))});0===f.length&&d(e)};function hb(a,b,c={}){var d=b.name;if(!a)throw new N(`type "${d}" must have a positive integer typeid pointer`);if(M.hasOwnProperty(a)){if(c.Ja)return;throw new N(`Cannot register type '${d}' twice`);}M[a]=b;delete fb[a];L.hasOwnProperty(a)&&(b=L[a],delete L[a],b.forEach(e=>e()))}function P(a,b,c={}){return hb(a,b,c)}var ib=(a,b,c)=>{switch(b){case 1:return c?d=>m()[d]:d=>x()[d];case 2:return c?d=>ba()[d>>1]:d=>da()[d>>1];case 4:return c?d=>y()[d>>2]:d=>A()[d>>2];case 8:return c?d=>Ba[d>>3]:d=>Ca[d>>3];default:throw new TypeError(`invalid integer width (${b}): ${a}`);}},jb=a=>{throw new N(a.ca.fa.da.name+" instance already deleted");},kb=!1,lb=()=>{},mb=(a,b,c)=>{if(b===c)return a;if(void 0===c.ja)return null;a=mb(a,b,c.ja);return null===a?null:c.Fa(a)},nb={},R=[],ob=()=>{for(;R.length;){var a=R.pop();a.ca.pa=!1;a["delete"]()}},S,T={},pb=(a,b)=>{if(void 0===b)throw new N("ptr should not be undefined");for(;a.ja;)b=a.ua(b),a=a.ja;return T[b]},qb=(a,b)=>{if(!b.fa||!b.ea)throw new O("makeClassHandle requires ptr and ptrType");if(!!b.la!==!!b.ha)throw new O("Both smartPtrType and smartPtr must be specified");b.count={value:1};return U(Object.create(a,{ca:{value:b,writable:!0}}))},U=a=>{if("undefined"===typeof FinalizationRegistry)return U=b=>b,a;kb=new FinalizationRegistry(b=>{b=b.ca;--b.count.value;0===b.count.value&&(b.ha?b.la.na(b.ha):b.fa.da.na(b.ea))});U=b=>{var c=b.ca;c.ha&&kb.register(b,{ca:c},b);return b};lb=b=>{kb.unregister(b)};return U(a)};function rb(){}var sb=(a,b)=>Object.defineProperty(b,"name",{value:a}),tb=(a,b,c)=>{if(void 0===a[b].ia){var d=a[b];a[b]=function(...e){if(!a[b].ia.hasOwnProperty(e.length))throw new N(`Function '${c}' called with an invalid number of arguments (${e.length}) - expects one of (${a[b].ia})!`);return a[b].ia[e.length].apply(this,e)};a[b].ia=[];a[b].ia[d.va]=d}},ub=(a,b,c)=>{if(B.hasOwnProperty(a)){if(void 0===c||void 0!==B[a].ia&&void 0!==B[a].ia[c])throw new N(`Cannot register public name '${a}' twice`);tb(B,a,a);if(B.hasOwnProperty(c))throw new N(`Cannot register multiple overloads of a function with the same number of arguments (${c})!`);B[a].ia[c]=b}else B[a]=b,void 0!==c&&(B[a].Sa=c)},vb=a=>{if(void 0===a)return"_unknown";a=a.replace(/[^a-zA-Z0-9_]/g,"$");var b=a.charCodeAt(0);return 48<=b&&57>=b?`_${a}`:a};function wb(a,b,c,d,e,f,g,h){this.name=a;this.constructor=b;this.qa=c;this.na=d;this.ja=e;this.Ha=f;this.ua=g;this.Fa=h;this.La=[]}var xb=(a,b,c)=>{for(;b!==c;){if(!b.ua)throw new N(`Expected null or instance of ${c.name}, got an instance of ${b.name}`);a=b.ua(a);b=b.ja}return a};function yb(a,b){if(null===b){if(this.Aa)throw new N(`null is not a valid ${this.name}`);return 0}if(!b.ca)throw new N(`Cannot pass "${db(b)}" as a ${this.name}`);if(!b.ca.ea)throw new N(`Cannot pass deleted object as a pointer of type ${this.name}`);return xb(b.ca.ea,b.ca.fa.da,this.da)}function zb(a,b){if(null===b){if(this.Aa)throw new N(`null is not a valid ${this.name}`);if(this.ya){var c=this.Ma();null!==a&&a.push(this.na,c);return c}return 0}if(!b||!b.ca)throw new N(`Cannot pass "${db(b)}" as a ${this.name}`);if(!b.ca.ea)throw new N(`Cannot pass deleted object as a pointer of type ${this.name}`);if(!this.xa&&b.ca.fa.xa)throw new N(`Cannot convert argument of type ${b.ca.la?b.ca.la.name:b.ca.fa.name} to parameter type ${this.name}`);c=xb(b.ca.ea,b.ca.fa.da,this.da);if(this.ya){if(void 0===b.ca.ha)throw new N("Passing raw pointer to smart pointer is illegal");switch(this.Oa){case 0:if(b.ca.la===this)c=b.ca.ha;else throw new N(`Cannot convert argument of type ${b.ca.la?b.ca.la.name:b.ca.fa.name} to parameter type ${this.name}`);break;case 1:c=b.ca.ha;break;case 2:if(b.ca.la===this)c=b.ca.ha;else{var d=b.clone();c=this.Na(c,Ab(()=>d["delete"]()));null!==a&&a.push(this.na,c)}break;default:throw new N("Unsupporting sharing policy");}}return c}function Bb(a,b){if(null===b){if(this.Aa)throw new N(`null is not a valid ${this.name}`);return 0}if(!b.ca)throw new N(`Cannot pass "${db(b)}" as a ${this.name}`);if(!b.ca.ea)throw new N(`Cannot pass deleted object as a pointer of type ${this.name}`);if(b.ca.fa.xa)throw new N(`Cannot convert argument of type ${b.ca.fa.name} to parameter type ${this.name}`);return xb(b.ca.ea,b.ca.fa.da,this.da)}function Cb(a){return this.fromWireType(A()[a>>2])}function Db(a,b,c,d,e,f,g,h,k,l,n){this.name=a;this.da=b;this.Aa=c;this.xa=d;this.ya=e;this.Ka=f;this.Oa=g;this.Da=h;this.Ma=k;this.Na=l;this.na=n;e||void 0!==b.ja?this.toWireType=zb:(this.toWireType=d?yb:Bb,this.ka=null)}var Eb=(a,b,c)=>{if(!B.hasOwnProperty(a))throw new O("Replacing nonexistent public symbol");void 0!==B[a].ia&&void 0!==c?B[a].ia[c]=b:(B[a]=b,B[a].va=c)},V=(a,b)=>{a=K(a);var c=Xa(b);if("function"!=typeof c)throw new N(`unknown function pointer with signature ${a}: ${b}`);return c},Fb,Hb=a=>{a=Gb(a);var b=K(a);W(a);return b},Ib=(a,b)=>{function c(f){e[f]||M[f]||(fb[f]?fb[f].forEach(c):(d.push(f),e[f]=!0))}var d=[],e={};b.forEach(c);throw new Fb(`${a}: `+d.map(Hb).join([", "]));},Jb=(a,b)=>{for(var c=[],d=0;d>2]);return c},Kb=a=>{for(;a.length;){var b=a.pop();a.pop()(b)}};function Lb(a){for(var b=1;bg)throw new N("argTypes array size mismatch! Must at least get return value and 'this' types!");var h=null!==b[1]&&null!==c,k=Lb(b);c="void"!==b[0].name;d=[a,gb,d,e,Kb,b[0],b[1]];for(e=0;e{a=a.trim();const b=a.indexOf("(");return-1!==b?a.substr(0,b):a},Qb=[],X=[],Ab=a=>{switch(a){case void 0:return 2;case null:return 4;case !0:return 6;case !1:return 8;default:const b=Qb.pop()||X.length;X[b]=a;X[b+1]=1;return b}},Rb={name:"emscripten::val",fromWireType:a=>{if(!a)throw new N("Cannot use deleted val. handle = "+a);var b=X[a];9Ab(b),ma:8,readValueFromPointer:Cb,ka:null},Sb=(a,b,c)=>{switch(b){case 1:return c?function(d){return this.fromWireType(m()[d])}:function(d){return this.fromWireType(x()[d])};case 2:return c?function(d){return this.fromWireType(ba()[d>>1])}:function(d){return this.fromWireType(da()[d>>1])};case 4:return c?function(d){return this.fromWireType(y()[d>>2])}:function(d){return this.fromWireType(A()[d>>2])};default:throw new TypeError(`invalid integer width (${b}): ${a}`);}},Tb=a=>{var b=M[a];if(void 0===b)throw a=`${"enum"} has unknown type ${Hb(a)}`,new N(a);return b},Ub=(a,b)=>{switch(b){case 4:return function(c){return this.fromWireType(ka()[c>>2])};case 8:return function(c){var d=this.fromWireType;p.buffer!=q.buffer&&u();return d.call(this,Da[c>>3])};default:throw new TypeError(`invalid float width (${b}): ${a}`);}},Y=(a,b,c,d)=>{if(!(0=g){var h=a.charCodeAt(++f);g=65536+((g&1023)<<10)|h&1023}if(127>=g){if(c>=d)break;b[c++]=g}else{if(2047>=g){if(c+1>=d)break;b[c++]=192|g>>6}else{if(65535>=g){if(c+2>=d)break;b[c++]=224|g>>12}else{if(c+3>=d)break;b[c++]=240|g>>18;b[c++]=128|g>>12&63}b[c++]=128|g>>6&63}b[c++]=128|g&63}}b[c]=0;return c-e},Vb=(a,b)=>{Y(a,x(),b,17)},Wb=a=>{for(var b=0,c=0;c=d?b++:2047>=d?b+=2:55296<=d&&57343>=d?(b+=4,++c):b+=3}return b},Xb=new TextDecoder("utf-16le"),Yb=(a,b)=>{var c=a>>1;for(b=c+b/2;!(c>=b)&&da()[c];)++c;c<<=1;return Xb.decode(x().slice(a,c))},Zb=(a,b,c)=>{c??=2147483647;if(2>c)return 0;c-=2;var d=b;c=c<2*a.length?c/2:a.length;for(var e=0;e>1]=f;b+=2}ba()[b>>1]=0;return b-d},$b=a=>2*a.length,ac=(a,b)=>{for(var c=0,d="";!(c>=b/4);){var e=y()[a+4*c>>2];if(0==e)break;++c;65536<=e?(e-=65536,d+=String.fromCharCode(55296|e>>10,56320|e&1023)):d+=String.fromCharCode(e)}return d},bc=(a,b,c)=>{c??=2147483647;if(4>c)return 0;var d=b;c=d+c-4;for(var e=0;e=f){var g=a.charCodeAt(++e);f=65536+((f&1023)<<10)|g&1023}y()[b>>2]=f;b+=4;if(b+4>c)break}y()[b>>2]=0;return b-d},cc=a=>{for(var b=0,c=0;c=d&&++c;b+=4}return b},dc={},ec=1,fc=URL.createObjectURL(new Blob(["onmessage=function(d){onmessage=null;d=d.data;d[`instantiateWasm`]=(i,r)=>{var n=new WebAssembly.Instance(d[`wasm`],i);return r(n,d[`wasm`]);};importScripts(d.js);loadVosklet(d);d.wasm=d.mem=d.js=0;}"],{type:"application/javascript"})),gc={},hc=a=>{if(!(a instanceof Ua||"unwind"==a))throw a;},ic=0,jc=a=>{Aa=a;0{if(!za)try{if(a(),!(0{if(!pc){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:"./this.program"},b;for(b in oc)void 0===oc[b]?delete a[b]:a[b]=oc[b];var c=[];for(b in a)c.push(`${b}=${a[b]}`);pc=c}return pc},pc,rc=()=>{if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues)return a=>(a.set(crypto.getRandomValues(new Uint8Array(a.byteLength))),a);Na("initRandomDevice")},sc=a=>(sc=rc())(a),tc=Array(256),uc=0;256>uc;++uc)tc[uc]=String.fromCharCode(uc);eb=tc;N=B.BindingError=class extends Error{constructor(a){super(a);this.name="BindingError"}};O=B.InternalError=class extends Error{constructor(a){super(a);this.name="InternalError"}};Object.assign(rb.prototype,{isAliasOf:function(a){if(!(this instanceof rb&&a instanceof rb))return!1;var b=this.ca.fa.da,c=this.ca.ea;a.ca=a.ca;var d=a.ca.fa.da;for(a=a.ca.ea;b.ja;)c=b.ua(c),b=b.ja;for(;d.ja;)a=d.ua(a),d=d.ja;return b===d&&c===a},clone:function(){this.ca.ea||jb(this);if(this.ca.ta)return this.ca.count.value+=1,this;var a=U,b=Object,c=b.create,d=Object.getPrototypeOf(this),e=this.ca;a=a(c.call(b,d,{ca:{value:{count:e.count,pa:e.pa,ta:e.ta,ea:e.ea,fa:e.fa,ha:e.ha,la:e.la}}}));a.ca.count.value+=1;a.ca.pa=!1;return a},["delete"](){this.ca.ea||jb(this);if(this.ca.pa&&!this.ca.ta)throw new N("Object already scheduled for deletion");lb(this);var a=this.ca;--a.count.value;0===a.count.value&&(a.ha?a.la.na(a.ha):a.fa.da.na(a.ea));this.ca.ta||(this.ca.ha=void 0,this.ca.ea=void 0)},isDeleted:function(){return!this.ca.ea},deleteLater:function(){this.ca.ea||jb(this);if(this.ca.pa&&!this.ca.ta)throw new N("Object already scheduled for deletion");R.push(this);1===R.length&&S&&S(ob);this.ca.pa=!0;return this}});B.getInheritedInstanceCount=()=>Object.keys(T).length;B.getLiveInheritedInstances=()=>{var a=[],b;for(b in T)T.hasOwnProperty(b)&&a.push(T[b]);return a};B.flushPendingDeletes=ob;B.setDelayFunction=a=>{S=a;R.length&&S&&S(ob)};Object.assign(Db.prototype,{Ia(a){this.Da&&(a=this.Da(a));return a},Ca(a){this.na?.(a)},ma:8,readValueFromPointer:Cb,fromWireType:function(a){function b(){return this.ya?qb(this.da.qa,{fa:this.Ka,ea:c,la:this,ha:a}):qb(this.da.qa,{fa:this,ea:a})}var c=this.Ia(a);if(!c)return this.Ca(a),null;var d=pb(this.da,c);if(void 0!==d){if(0===d.ca.count.value)return d.ca.ea=c,d.ca.ha=a,d.clone();d=d.clone();this.Ca(a);return d}d=this.da.Ha(c);d=nb[d];if(!d)return b.call(this);d=this.xa?d.Ea:d.pointerType;var e=mb(c,this.da,d.da);return null===e?b.call(this):this.ya?qb(d.da.qa,{fa:d,ea:e,la:this,ha:a}):qb(d.da.qa,{fa:d,ea:e})}});Fb=B.UnboundTypeError=((a,b)=>{var c=sb(b,function(d){this.name=b;this.message=d;d=Error(d).stack;void 0!==d&&(this.stack=this.toString()+"\n"+d.replace(/^Error(:[^\n]*)?\n/,""))});c.prototype=Object.create(a.prototype);c.prototype.constructor=c;c.prototype.toString=function(){return void 0===this.message?this.name:`${this.name}: ${this.message}`};return c})(Error,"UnboundTypeError");X.push(0,1,void 0,1,null,1,!0,1,!1,1);B.count_emval_handles=()=>X.length/2-5-Qb.length;sa&&(dc[0]=this,addEventListener("message",Ja));var wc={b:(a,b,c,d)=>{Na(`Assertion failed: ${J(a)}, at: `+[b?J(b):"unknown filename",c,d?J(d):"unknown function"])},s:(a,b)=>Xa(a)(b),c:(a,b,c)=>{var d=new ab(a);A()[d.ea+16>>2]=0;A()[d.ea+4>>2]=b;A()[d.ea+8>>2]=c;bb=a;cb++;throw bb;},O:()=>{Na("")},q:(a,b,c)=>{b=K(b);P(a,{name:b,fromWireType:d=>d,toWireType:function(d,e){if("bigint"!=typeof e&&"number"!=typeof e)throw new TypeError(`Cannot convert "${db(e)}" to ${this.name}`);"number"==typeof e&&(e=BigInt(e));return e},ma:8,readValueFromPointer:ib(b,c,-1==b.indexOf("u")),ka:null})},R:(a,b,c,d)=>{b=K(b);P(a,{name:b,fromWireType:function(e){return!!e},toWireType:function(e,f){return f?c:d},ma:8,readValueFromPointer:function(e){return this.fromWireType(x()[e])},ka:null})},o:(a,b,c,d,e,f,g,h,k,l,n,r,t)=>{n=K(n);f=V(e,f);h&&=V(g,h);l&&=V(k,l);t=V(r,t);var v=vb(n);ub(v,function(){Ib(`Cannot construct ${n} due to unbound types`,[d])});Q([a,b,c],d?[d]:[],w=>{w=w[0];if(d){var z=w.da;var ea=z.qa}else ea=rb.prototype;w=sb(n,function(...Ya){if(Object.getPrototypeOf(this)!==Za)throw new N("Use 'new' to construct "+n);if(void 0===E.oa)throw new N(n+" has no accessible constructor");var Pb=E.oa[Ya.length];if(void 0===Pb)throw new N(`Tried to invoke ctor of ${n} with invalid number of parameters (${Ya.length}) - expected (${Object.keys(E.oa).toString()}) parameters instead!`);return Pb.apply(this,Ya)});var Za=Object.create(ea,{constructor:{value:w}});w.prototype=Za;var E=new wb(n,w,Za,t,z,f,h,l);if(E.ja){var fa;(fa=E.ja).Ba??(fa.Ba=[]);E.ja.Ba.push(E)}z=new Db(n,E,!0,!1,!1);fa=new Db(n+"*",E,!1,!1,!1);ea=new Db(n+" const*",E,!1,!0,!1);nb[a]={pointerType:fa,Ea:ea};Eb(v,w);return[z,fa,ea]})},j:(a,b,c,d,e,f)=>{var g=Jb(b,c);e=V(d,e);Q([],[a],h=>{h=h[0];var k=`constructor ${h.name}`;void 0===h.da.oa&&(h.da.oa=[]);if(void 0!==h.da.oa[b-1])throw new N(`Cannot register multiple constructors with identical number of parameters (${b-1}) for class '${h.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);h.da.oa[b-1]=()=>{Ib(`Cannot construct ${h.name} due to unbound types`,g)};Q([],g,l=>{l.splice(1,0,null);h.da.oa[b-1]=Nb(k,l,null,e,f);return[]});return[]})},h:(a,b,c,d,e,f,g,h,k)=>{var l=Jb(c,d);b=K(b);b=Ob(b);f=V(e,f);Q([],[a],n=>{function r(){Ib(`Cannot call ${t} due to unbound types`,l)}n=n[0];var t=`${n.name}.${b}`;b.startsWith("@@")&&(b=Symbol[b.substring(2)]);h&&n.da.La.push(b);var v=n.da.qa,w=v[b];void 0===w||void 0===w.ia&&w.className!==n.name&&w.va===c-2?(r.va=c-2,r.className=n.name,v[b]=r):(tb(v,b,t),v[b].ia[c-2]=r);Q([],l,z=>{z=Nb(t,z,n,f,g,k);void 0===v[b].ia?(z.va=c-2,v[b]=z):v[b].ia[c-2]=z;return[]});return[]})},Q:a=>P(a,Rb),J:(a,b,c,d)=>{function e(){}b=K(b);e.values={};P(a,{name:b,constructor:e,fromWireType:function(f){return this.constructor.values[f]},toWireType:(f,g)=>g.value,ma:8,readValueFromPointer:Sb(b,c,d),ka:null});ub(b,e)},k:(a,b,c)=>{var d=Tb(a);b=K(b);a=d.constructor;d=Object.create(d.constructor.prototype,{value:{value:c},constructor:{value:sb(`${d.name}_${b}`,function(){})}});a.values[c]=d;a[b]=d},p:(a,b,c)=>{b=K(b);P(a,{name:b,fromWireType:d=>d,toWireType:(d,e)=>e,ma:8,readValueFromPointer:Ub(b,c),ka:null})},P:(a,b,c,d,e,f,g)=>{var h=Jb(b,c);a=K(a);a=Ob(a);e=V(d,e);ub(a,function(){Ib(`Cannot call ${a} due to unbound types`,h)},b-1);Q([],h,k=>{Eb(a,Nb(a,[k[0],null].concat(k.slice(1)),null,e,f,g),b-1);return[]})},i:(a,b,c,d,e)=>{b=K(b);-1===e&&(e=4294967295);e=h=>h;if(0===d){var f=32-8*c;e=h=>h<>>f}var g=b.includes("unsigned")?function(h,k){return k>>>0}:function(h,k){return k};P(a,{name:b,fromWireType:e,toWireType:g,ma:8,readValueFromPointer:ib(b,c,0!==d),ka:null})},e:(a,b,c)=>{function d(f){var g=A()[f>>2];f=A()[f+4>>2];return new e(m().buffer,f,g)}var e=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][b];c=K(c);P(a,{name:c,fromWireType:d,ma:8,readValueFromPointer:d},{Ja:!0})},r:(a,b)=>{b=K(b);var c="std::string"===b;P(a,{name:b,fromWireType:function(d){var e=A()[d>>2],f=d+4;if(c)for(var g=f,h=0;h<=e;++h){var k=f+h;if(h==e||0==x()[k]){g=J(g,k-g);if(void 0===l)var l=g;else l+=String.fromCharCode(0),l+=g;g=k+1}}else{l=Array(e);for(h=0;h>2]=g;if(c&&f)g+=1,Y(e,x(),k,g);else if(f)for(f=0;f{c=K(c);if(2===b){var d=Yb;var e=Zb;var f=$b;var g=h=>da()[h>>1]}else 4===b&&(d=ac,e=bc,f=cc,g=h=>A()[h>>2]);P(a,{name:c,fromWireType:h=>{for(var k=A()[h>>2],l,n=h+4,r=0;r<=k;++r){var t=h+4+r*b;if(r==k||0==g(t))n=d(n,t-n),void 0===l?l=n:(l+=String.fromCharCode(0),l+=n),n=t+b}W(h);return l},toWireType:(h,k)=>{if("string"!=typeof k)throw new N(`Cannot pass non-string to C++ string type ${c}`);var l=f(k),n=D(4+l+b);A()[n>>2]=l/b;e(k,n+4,l+b);null!==h&&h.push(W,n);return n},ma:8,readValueFromPointer:Cb,ka(h){W(h)}})},S:(a,b)=>{b=K(b);P(a,{Ra:!0,name:b,ma:0,fromWireType:()=>{},toWireType:()=>{}})},G:(a,b)=>{let c=dc[ec]=new Worker(fc);c.postMessage({$ww:ec,wasm:ya,js:B.mainScriptUrlOrBlob||_scriptName,wasmMemory:p,sb:a,sz:b});c.onmessage=La;return ec++},N:()=>1,u:()=>{ic=0},v:(a,b)=>{gc[a]&&(clearTimeout(gc[a].id),delete gc[a]);if(!b)return 0;var c=setTimeout(()=>{delete gc[a];kc(()=>vc(a,performance.now()))},b);gc[a]={id:c,Va:b};return 0},I:(a,b,c,d)=>{var e=(new Date).getFullYear(),f=(new Date(e,0,1)).getTimezoneOffset();e=(new Date(e,6,1)).getTimezoneOffset();var g=Math.max(f,e);A()[a>>2]=60*g;y()[b>>2]=Number(f!=e);b=h=>{var k=Math.abs(h);return`UTC${0<=h?"-":"+"}${String(Math.floor(k/60)).padStart(2,"0")}${String(k%60).padStart(2,"0")}`};a=b(f);b=b(e);ex().set(mc[a].Ga,b),A:()=>lc.length,B:()=>mc.length,y:(a,b)=>{a=lc[a].Qa;var c=Wb(a)+1;Y(a,x(),b,c)},w:a=>mc[a].mode,D:a=>mc[a].Ga.length,z:(a,b)=>{a=lc[a].Ta;var c=Wb(a)+1;Y(a,x(),b,c)},x:(a,b)=>{a=mc[a].Ua;var c=Wb(a)+1;Y(a,x(),b,c)},F:()=>{a:{if(!nc.length){var a=null;"undefined"!=typeof window&&"function"==typeof window.prompt&&(a=window.prompt("Input: "),null!==a&&(a+="\n"));if(!a){var b=null;break a}b=Array(Wb(a)+1);a=Y(a,b,0,b.length);b.length=a;nc=b}b=nc.shift()}return"number"===typeof b?b:-1},T:a=>{console.error(J(a))},V:a=>{console.log(J(a))},U:a=>{console.warn(J(a))},f:()=>Date.now(),l:a=>G(J(a)),m:()=>performance.now(),E:a=>xa(J(a)),K:a=>{var b=x().length;a>>>=0;if(a<=b||2147483648=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,a+100663296);a:{d=(Math.min(2147483648,65536*Math.ceil(Math.max(a,d)/65536))-p.buffer.byteLength+65535)/65536;try{p.grow(d);u();var e=1;break a}catch(f){}e=void 0}if(e)return!0}return!1},L:(a,b)=>{var c=0;qc().forEach((d,e)=>{var f=b+c;e=A()[a+4*e>>2]=f;for(f=0;f{var c=qc();A()[a>>2]=c.length;var d=0;c.forEach(e=>d+=e.length+1);A()[b>>2]=d;return 0},d:a=>{Aa=a;jc(a)},g:Ta,H:(a,b)=>{sc(x().subarray(a,a+b));return 0},a:p,t:jc,W:function(a,b){for(let c of Object.values(dc))c.postMessage({_wsc:a,x:[b]}),c.onmessage=d=>Ta(...d.data)}},Z=function(){function a(c,d){Z=c.exports;Wa=Z._;Fa.unshift(Z.X);ya=d;H--;0==H&&(null!==Ma&&(clearInterval(Ma),Ma=null),I&&(c=I,I=null,c()));return Z}var b={a:wc};H++;if(B.instantiateWasm)try{return B.instantiateWasm(b,a)}catch(c){G(`Module.instantiateWasm callback failed with error: ${c}`),na(c)}Pa??=Oa("Vosklet.wasm")?"Vosklet.wasm":F+"Vosklet.wasm";Sa(b,function(c){a(c.instance,c.module)}).catch(na);return{}}(),W=a=>(W=Z.Y)(a),D=a=>(D=Z.Z)(a),Gb=a=>(Gb=Z.$)(a),vc=(a,b)=>(vc=Z.aa)(a,b),Ia=(a,b)=>(Ia=Z.ba)(a,b),xc;I=function yc(){xc||zc();xc||(I=yc)};function zc(){if(!(0 loadVosklet); \ No newline at end of file +var loadVosklet = (() => { var _scriptName = typeof document != 'undefined' ? document.currentScript?.src : undefined; return (function(moduleArg = {}) { var moduleRtn;function m(){p.buffer!=q.buffer&&u();return q}function x(){p.buffer!=q.buffer&&u();return aa}function ba(){p.buffer!=q.buffer&&u();return ca}function da(){p.buffer!=q.buffer&&u();return ha}function y(){p.buffer!=q.buffer&&u();return ia}function A(){p.buffer!=q.buffer&&u();return ja}function ka(){p.buffer!=q.buffer&&u();return la}var B=moduleArg,ma,na,oa=new Promise((a,b)=>{ma=a;na=b}),pa="object"==typeof window,qa="function"==typeof importScripts,ra="object"==typeof process&&"object"==typeof process.Na&&"string"==typeof process.Na.node&&"renderer"!=process.type,sa=B.$ww;if(pa){var C=[],ta=["status","partialResult","result"];let a=caches.open("Vosklet"),b=URL.createObjectURL(new Blob(["(",(()=>{registerProcessor("VoskletTransferer",class extends AudioWorkletProcessor{constructor(e){super();this.qa=0;this.xa=e.processorOptions[0];this.ua=new Float32Array(this.xa)}process(e){e[0][0]&&(this.ua.set(e[0][0],this.qa),this.qa+=128,this.qa>=this.xa&&(this.qa=0,this.port.postMessage(this.ua,[this.ua.buffer]),this.ua=new Float32Array(this.xa)));return!0}})}).toString(),")()"],{type:"text/javascript"}));class c extends EventTarget{constructor(){super();C.push(this)}delete(){this.ea.delete()}static async pa(e,f,g,h){let k=new c,l=new Promise((t,v)=>{k.addEventListener("status",w=>{w.detail?v(w.detail):(h&&(k.findWord=z=>k.ea.findWord(z)),t(k))},{once:!0})}),n=await caches.open("Vosklet"),r=(await n.keys(f,{ignoreSearch:!0}))[0];if("undefined"==typeof r||r.url.split("?")[1]!=g){e=await fetch(e,{cache:"no-store"});if(!e.ok)throw"Unable to fetch model, status: "+e.status;await n.put(f+"?"+g,new Response(e.clone().body.pipeThrough(new CompressionStream("gzip"))))}else e=await n.match(r);f=await (new Response(e.body.pipeThrough(new DecompressionStream("gzip")))).arrayBuffer();g=D(f.byteLength);x().set(new Uint8Array(f),g);k.ea=new B.CommonModel(C.length-1,h,g,f.byteLength);return l}}class d extends EventTarget{constructor(){super();this.acceptWaveform=e=>{let f=D(4*e.length);ka().set(e,f/4);this.ea.acceptWaveform(f,e.length)};C.push(this);return new Proxy(this,{get(e,f){if(void 0!=e[f]||void 0!=e.ea[f]){var g=e[f];if(g)return g.bind?g.bind(e):g;g=e.ea[f];return g.bind?g.bind(e.ea):g}}})}async delete(e=!1){let f=new Promise(g=>this.addEventListener("status",()=>{this.ea.delete();g()},{once:!0}));this.ea.safeDelete(e);return f}static async pa(e,f,g,h,k){let l=new d,n=new Promise((r,t)=>{l.addEventListener("status",v=>{v.detail?t(v.detail):r(l)},{once:!0})});switch(g){case 1:l.ea=new B.Recognizer(C.length-1,f,e);break;case 2:l.ea=new B.Recognizer(C.length-1,f,e,k);break;default:l.ea=new B.Recognizer(C.length-1,f,e,h,0)}return n}}B={getModelCache:()=>a,cleanUp:async()=>{for(let e of C)await e.delete();URL.revokeObjectURL(b)},createTransferer:async(e,f)=>{await e.audioWorklet.addModule(b);return new AudioWorkletNode(e,"VoskletTransferer",{channelCountMode:"explicit",numberOfInputs:1,numberOfOutputs:0,channelCount:1,processorOptions:[f]})},createModel:(e,f,g)=>c.pa(e,f,g,!0),createSpkModel:(e,f,g)=>c.pa(e,f,g,!1),createRecognizer:(e,f)=>d.pa(e.ea,f,1),createRecognizerWithGrm:(e,f,g)=>d.pa(e.ea,f,3,g,null),createRecognizerWithSpkModel:(e,f,g)=>d.pa(e.ea,f,2,null,g.ea)}}var ua=Object.assign({},B),F="",va,wa;if(pa||qa)qa?F=self.location.href:"undefined"!=typeof document&&document.currentScript&&(F=document.currentScript.src),_scriptName&&(F=_scriptName),F.startsWith("blob:")?F="":F=F.substr(0,F.replace(/[?#].*/,"").lastIndexOf("/")+1),qa&&(wa=a=>{var b=new XMLHttpRequest;b.open("GET",a,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)}),va=a=>fetch(a,{credentials:"same-origin"}).then(b=>b.ok?b.arrayBuffer():Promise.reject(Error(b.status+" : "+b.url)));var xa=console.log.bind(console),G=console.error.bind(console);Object.assign(B,ua);ua=null;var p,ya,za=!1,Aa,q,aa,ca,ha,ia,ja,la,Ba,Ca,Da;function u(){var a=p.buffer;B.HEAP8=q=new Int8Array(a);B.HEAP16=ca=new Int16Array(a);B.HEAPU8=aa=new Uint8Array(a);B.HEAPU16=ha=new Uint16Array(a);B.HEAP32=ia=new Int32Array(a);B.HEAPU32=ja=new Uint32Array(a);B.HEAPF32=la=new Float32Array(a);B.HEAPF64=Da=new Float64Array(a);B.HEAP64=Ba=new BigInt64Array(a);B.HEAPU64=Ca=new BigUint64Array(a)}if(B.wasmMemory)p=B.wasmMemory;else if(p=new WebAssembly.Memory({initial:5040,maximum:32768,shared:!0}),!(p.buffer instanceof SharedArrayBuffer))throw G("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),ra&&G("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)"),Error("bad memory");u();var Ea=[],Fa=[],Ga=[];function Ha(){if(sa){let a=B;Ia(a.sb,a.sz);removeEventListener("message",Ja);Ka=Ka.forEach(La);addEventListener("message",La)}else for(;0a.startsWith("data:application/octet-stream;base64,"),Pa;function Qa(a){return va(a).then(b=>new Uint8Array(b),()=>{if(wa)var b=wa(a);else throw"both async and sync fetching of the wasm failed";return b})}function Ra(a,b,c){return Qa(a).then(d=>WebAssembly.instantiate(d,b)).then(c,d=>{G(`failed to asynchronously prepare wasm: ${d}`);Na(d)})}function Sa(a,b){var c=Pa;return"function"!=typeof WebAssembly.instantiateStreaming||Oa(c)||"function"!=typeof fetch?Ra(c,a,b):fetch(c,{credentials:"same-origin"}).then(d=>WebAssembly.instantiateStreaming(d,a).then(b,function(e){G(`wasm streaming compile failed: ${e}`);G("falling back to ArrayBuffer instantiation");return Ra(c,a,b)}))}function Ta(a,b,c){pa?C[a].dispatchEvent(new CustomEvent(ta[b],{detail:0==c?null:J(c)})):self.postMessage([a,b,c])}function Ua(a){this.name="ExitStatus";this.message=`Program terminated with exit(${a})`;this.status=a}var Ka=[],Va=[],Wa,Za=a=>{var b=Va[a];b||(a>=Va.length&&(Va.length=a+1),Va[a]=b=Wa.get(a));return b},La=a=>{a=a.data;let b=a._wsc;b&&Za(b)(...a.x)},Ja=a=>{Ka.push(a)},$a=new TextDecoder,J=(a,b)=>{if(!a)return"";b=a+b;for(var c=a;!(c>=b)&&x()[c];)++c;return $a.decode(x().slice(a,c))};class ab{constructor(a){this.ca=a-24}}var bb=0,cb=0,db=a=>{if(null===a)return"null";var b=typeof a;return"object"===b||"array"===b||"function"===b?a.toString():""+a},eb,K=a=>{for(var b="";x()[a];)b+=eb[x()[a++]];return b},L={},M={},fb={},N,gb=a=>{throw new N(a);},O,Q=(a,b,c)=>{function d(h){h=c(h);if(h.length!==a.length)throw new O("Mismatched type converter count");for(var k=0;kfb[h]=b);var e=Array(b.length),f=[],g=0;b.forEach((h,k)=>{M.hasOwnProperty(h)?e[k]=M[h]:(f.push(h),L.hasOwnProperty(h)||(L[h]=[]),L[h].push(()=>{e[k]=M[h];++g;g===f.length&&d(e)}))});0===f.length&&d(e)};function hb(a,b,c={}){var d=b.name;if(!a)throw new N(`type "${d}" must have a positive integer typeid pointer`);if(M.hasOwnProperty(a)){if(c.Ha)return;throw new N(`Cannot register type '${d}' twice`);}M[a]=b;delete fb[a];L.hasOwnProperty(a)&&(b=L[a],delete L[a],b.forEach(e=>e()))}function P(a,b,c={}){return hb(a,b,c)}var ib=(a,b,c)=>{switch(b){case 1:return c?d=>m()[d]:d=>x()[d];case 2:return c?d=>ba()[d>>1]:d=>da()[d>>1];case 4:return c?d=>y()[d>>2]:d=>A()[d>>2];case 8:return c?d=>Ba[d>>3]:d=>Ca[d>>3];default:throw new TypeError(`invalid integer width (${b}): ${a}`);}},jb=a=>{throw new N(a.aa.da.ba.name+" instance already deleted");},kb=!1,lb=()=>{},mb=(a,b,c)=>{if(b===c)return a;if(void 0===c.ha)return null;a=mb(a,b,c.ha);return null===a?null:c.Da(a)},nb={},R=[],ob=()=>{for(;R.length;){var a=R.pop();a.aa.na=!1;a["delete"]()}},S,T={},pb=(a,b)=>{if(void 0===b)throw new N("ptr should not be undefined");for(;a.ha;)b=a.sa(b),a=a.ha;return T[b]},qb=(a,b)=>{if(!b.da||!b.ca)throw new O("makeClassHandle requires ptr and ptrType");if(!!b.ja!==!!b.fa)throw new O("Both smartPtrType and smartPtr must be specified");b.count={value:1};return U(Object.create(a,{aa:{value:b,writable:!0}}))},U=a=>{if("undefined"===typeof FinalizationRegistry)return U=b=>b,a;kb=new FinalizationRegistry(b=>{b=b.aa;--b.count.value;0===b.count.value&&(b.fa?b.ja.la(b.fa):b.da.ba.la(b.ca))});U=b=>{var c=b.aa;c.fa&&kb.register(b,{aa:c},b);return b};lb=b=>{kb.unregister(b)};return U(a)};function rb(){}var sb=(a,b)=>Object.defineProperty(b,"name",{value:a}),tb=(a,b,c)=>{if(void 0===a[b].ga){var d=a[b];a[b]=function(...e){if(!a[b].ga.hasOwnProperty(e.length))throw new N(`Function '${c}' called with an invalid number of arguments (${e.length}) - expects one of (${a[b].ga})!`);return a[b].ga[e.length].apply(this,e)};a[b].ga=[];a[b].ga[d.ta]=d}},ub=(a,b,c)=>{if(B.hasOwnProperty(a)){if(void 0===c||void 0!==B[a].ga&&void 0!==B[a].ga[c])throw new N(`Cannot register public name '${a}' twice`);tb(B,a,a);if(B.hasOwnProperty(c))throw new N(`Cannot register multiple overloads of a function with the same number of arguments (${c})!`);B[a].ga[c]=b}else B[a]=b,void 0!==c&&(B[a].Qa=c)},vb=a=>{if(void 0===a)return"_unknown";a=a.replace(/[^a-zA-Z0-9_]/g,"$");var b=a.charCodeAt(0);return 48<=b&&57>=b?`_${a}`:a};function wb(a,b,c,d,e,f,g,h){this.name=a;this.constructor=b;this.oa=c;this.la=d;this.ha=e;this.Fa=f;this.sa=g;this.Da=h;this.Ja=[]}var xb=(a,b,c)=>{for(;b!==c;){if(!b.sa)throw new N(`Expected null or instance of ${c.name}, got an instance of ${b.name}`);a=b.sa(a);b=b.ha}return a};function yb(a,b){if(null===b){if(this.ya)throw new N(`null is not a valid ${this.name}`);return 0}if(!b.aa)throw new N(`Cannot pass "${db(b)}" as a ${this.name}`);if(!b.aa.ca)throw new N(`Cannot pass deleted object as a pointer of type ${this.name}`);return xb(b.aa.ca,b.aa.da.ba,this.ba)}function zb(a,b){if(null===b){if(this.ya)throw new N(`null is not a valid ${this.name}`);if(this.wa){var c=this.Ka();null!==a&&a.push(this.la,c);return c}return 0}if(!b||!b.aa)throw new N(`Cannot pass "${db(b)}" as a ${this.name}`);if(!b.aa.ca)throw new N(`Cannot pass deleted object as a pointer of type ${this.name}`);if(!this.va&&b.aa.da.va)throw new N(`Cannot convert argument of type ${b.aa.ja?b.aa.ja.name:b.aa.da.name} to parameter type ${this.name}`);c=xb(b.aa.ca,b.aa.da.ba,this.ba);if(this.wa){if(void 0===b.aa.fa)throw new N("Passing raw pointer to smart pointer is illegal");switch(this.Ma){case 0:if(b.aa.ja===this)c=b.aa.fa;else throw new N(`Cannot convert argument of type ${b.aa.ja?b.aa.ja.name:b.aa.da.name} to parameter type ${this.name}`);break;case 1:c=b.aa.fa;break;case 2:if(b.aa.ja===this)c=b.aa.fa;else{var d=b.clone();c=this.La(c,Ab(()=>d["delete"]()));null!==a&&a.push(this.la,c)}break;default:throw new N("Unsupporting sharing policy");}}return c}function Bb(a,b){if(null===b){if(this.ya)throw new N(`null is not a valid ${this.name}`);return 0}if(!b.aa)throw new N(`Cannot pass "${db(b)}" as a ${this.name}`);if(!b.aa.ca)throw new N(`Cannot pass deleted object as a pointer of type ${this.name}`);if(b.aa.da.va)throw new N(`Cannot convert argument of type ${b.aa.da.name} to parameter type ${this.name}`);return xb(b.aa.ca,b.aa.da.ba,this.ba)}function Cb(a){return this.fromWireType(A()[a>>2])}function Db(a,b,c,d,e,f,g,h,k,l,n){this.name=a;this.ba=b;this.ya=c;this.va=d;this.wa=e;this.Ia=f;this.Ma=g;this.Ba=h;this.Ka=k;this.La=l;this.la=n;e||void 0!==b.ha?this.toWireType=zb:(this.toWireType=d?yb:Bb,this.ia=null)}var Eb=(a,b,c)=>{if(!B.hasOwnProperty(a))throw new O("Replacing nonexistent public symbol");void 0!==B[a].ga&&void 0!==c?B[a].ga[c]=b:(B[a]=b,B[a].ta=c)},V=(a,b)=>{a=K(a);var c=Za(b);if("function"!=typeof c)throw new N(`unknown function pointer with signature ${a}: ${b}`);return c},Fb,Hb=a=>{a=Gb(a);var b=K(a);W(a);return b},Ib=(a,b)=>{function c(f){e[f]||M[f]||(fb[f]?fb[f].forEach(c):(d.push(f),e[f]=!0))}var d=[],e={};b.forEach(c);throw new Fb(`${a}: `+d.map(Hb).join([", "]));},Jb=(a,b)=>{for(var c=[],d=0;d>2]);return c},Kb=a=>{for(;a.length;){var b=a.pop();a.pop()(b)}};function Lb(a){for(var b=1;bg)throw new N("argTypes array size mismatch! Must at least get return value and 'this' types!");var h=null!==b[1]&&null!==c,k=Lb(b);c="void"!==b[0].name;d=[a,gb,d,e,Kb,b[0],b[1]];for(e=0;e{a=a.trim();const b=a.indexOf("(");return-1!==b?a.substr(0,b):a},Qb=[],X=[],Ab=a=>{switch(a){case void 0:return 2;case null:return 4;case !0:return 6;case !1:return 8;default:const b=Qb.pop()||X.length;X[b]=a;X[b+1]=1;return b}},Rb={name:"emscripten::val",fromWireType:a=>{if(!a)throw new N("Cannot use deleted val. handle = "+a);var b=X[a];9Ab(b),ka:8,readValueFromPointer:Cb,ia:null},Sb=(a,b,c)=>{switch(b){case 1:return c?function(d){return this.fromWireType(m()[d])}:function(d){return this.fromWireType(x()[d])};case 2:return c?function(d){return this.fromWireType(ba()[d>>1])}:function(d){return this.fromWireType(da()[d>>1])};case 4:return c?function(d){return this.fromWireType(y()[d>>2])}:function(d){return this.fromWireType(A()[d>>2])};default:throw new TypeError(`invalid integer width (${b}): ${a}`);}},Tb=a=>{var b=M[a];if(void 0===b)throw a=`${"enum"} has unknown type ${Hb(a)}`,new N(a);return b},Ub=(a,b)=>{switch(b){case 4:return function(c){return this.fromWireType(ka()[c>>2])};case 8:return function(c){var d=this.fromWireType;p.buffer!=q.buffer&&u();return d.call(this,Da[c>>3])};default:throw new TypeError(`invalid float width (${b}): ${a}`);}},Y=(a,b,c,d)=>{if(!(0=g){var h=a.charCodeAt(++f);g=65536+((g&1023)<<10)|h&1023}if(127>=g){if(c>=d)break;b[c++]=g}else{if(2047>=g){if(c+1>=d)break;b[c++]=192|g>>6}else{if(65535>=g){if(c+2>=d)break;b[c++]=224|g>>12}else{if(c+3>=d)break;b[c++]=240|g>>18;b[c++]=128|g>>12&63}b[c++]=128|g>>6&63}b[c++]=128|g&63}}b[c]=0;return c-e},Vb=(a,b)=>{Y(a,x(),b,17)},Wb=a=>{for(var b=0,c=0;c=d?b++:2047>=d?b+=2:55296<=d&&57343>=d?(b+=4,++c):b+=3}return b},Xb=new TextDecoder("utf-16le"),Yb=(a,b)=>{var c=a>>1;for(b=c+b/2;!(c>=b)&&da()[c];)++c;c<<=1;return Xb.decode(x().slice(a,c))},Zb=(a,b,c)=>{c??=2147483647;if(2>c)return 0;c-=2;var d=b;c=c<2*a.length?c/2:a.length;for(var e=0;e>1]=f;b+=2}ba()[b>>1]=0;return b-d},$b=a=>2*a.length,ac=(a,b)=>{for(var c=0,d="";!(c>=b/4);){var e=y()[a+4*c>>2];if(0==e)break;++c;65536<=e?(e-=65536,d+=String.fromCharCode(55296|e>>10,56320|e&1023)):d+=String.fromCharCode(e)}return d},bc=(a,b,c)=>{c??=2147483647;if(4>c)return 0;var d=b;c=d+c-4;for(var e=0;e=f){var g=a.charCodeAt(++e);f=65536+((f&1023)<<10)|g&1023}y()[b>>2]=f;b+=4;if(b+4>c)break}y()[b>>2]=0;return b-d},cc=a=>{for(var b=0,c=0;c=d&&++c;b+=4}return b},dc={},ec=1,fc=URL.createObjectURL(new Blob(["onmessage=function(d){onmessage=null;d=d.data;d[`instantiateWasm`]=(i,r)=>{var n=new WebAssembly.Instance(d[`wasm`],i);return r(n,d[`wasm`]);};importScripts(d.js);loadVosklet(d);d.wasm=d.mem=d.js=0;}"],{type:"application/javascript"})),gc={},hc=a=>{if(!(a instanceof Ua||"unwind"==a))throw a;},ic=0,jc=a=>{Aa=a;0{if(!za)try{if(a(),!(0{if(!pc){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:"./this.program"},b;for(b in oc)void 0===oc[b]?delete a[b]:a[b]=oc[b];var c=[];for(b in a)c.push(`${b}=${a[b]}`);pc=c}return pc},pc,rc=()=>{if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues)return a=>(a.set(crypto.getRandomValues(new Uint8Array(a.byteLength))),a);Na("initRandomDevice")},sc=a=>(sc=rc())(a),tc=Array(256),uc=0;256>uc;++uc)tc[uc]=String.fromCharCode(uc);eb=tc;N=B.BindingError=class extends Error{constructor(a){super(a);this.name="BindingError"}};O=B.InternalError=class extends Error{constructor(a){super(a);this.name="InternalError"}};Object.assign(rb.prototype,{isAliasOf:function(a){if(!(this instanceof rb&&a instanceof rb))return!1;var b=this.aa.da.ba,c=this.aa.ca;a.aa=a.aa;var d=a.aa.da.ba;for(a=a.aa.ca;b.ha;)c=b.sa(c),b=b.ha;for(;d.ha;)a=d.sa(a),d=d.ha;return b===d&&c===a},clone:function(){this.aa.ca||jb(this);if(this.aa.ra)return this.aa.count.value+=1,this;var a=U,b=Object,c=b.create,d=Object.getPrototypeOf(this),e=this.aa;a=a(c.call(b,d,{aa:{value:{count:e.count,na:e.na,ra:e.ra,ca:e.ca,da:e.da,fa:e.fa,ja:e.ja}}}));a.aa.count.value+=1;a.aa.na=!1;return a},["delete"](){this.aa.ca||jb(this);if(this.aa.na&&!this.aa.ra)throw new N("Object already scheduled for deletion");lb(this);var a=this.aa;--a.count.value;0===a.count.value&&(a.fa?a.ja.la(a.fa):a.da.ba.la(a.ca));this.aa.ra||(this.aa.fa=void 0,this.aa.ca=void 0)},isDeleted:function(){return!this.aa.ca},deleteLater:function(){this.aa.ca||jb(this);if(this.aa.na&&!this.aa.ra)throw new N("Object already scheduled for deletion");R.push(this);1===R.length&&S&&S(ob);this.aa.na=!0;return this}});B.getInheritedInstanceCount=()=>Object.keys(T).length;B.getLiveInheritedInstances=()=>{var a=[],b;for(b in T)T.hasOwnProperty(b)&&a.push(T[b]);return a};B.flushPendingDeletes=ob;B.setDelayFunction=a=>{S=a;R.length&&S&&S(ob)};Object.assign(Db.prototype,{Ga(a){this.Ba&&(a=this.Ba(a));return a},Aa(a){this.la?.(a)},ka:8,readValueFromPointer:Cb,fromWireType:function(a){function b(){return this.wa?qb(this.ba.oa,{da:this.Ia,ca:c,ja:this,fa:a}):qb(this.ba.oa,{da:this,ca:a})}var c=this.Ga(a);if(!c)return this.Aa(a),null;var d=pb(this.ba,c);if(void 0!==d){if(0===d.aa.count.value)return d.aa.ca=c,d.aa.fa=a,d.clone();d=d.clone();this.Aa(a);return d}d=this.ba.Fa(c);d=nb[d];if(!d)return b.call(this);d=this.va?d.Ca:d.pointerType;var e=mb(c,this.ba,d.ba);return null===e?b.call(this):this.wa?qb(d.ba.oa,{da:d,ca:e,ja:this,fa:a}):qb(d.ba.oa,{da:d,ca:e})}});Fb=B.UnboundTypeError=((a,b)=>{var c=sb(b,function(d){this.name=b;this.message=d;d=Error(d).stack;void 0!==d&&(this.stack=this.toString()+"\n"+d.replace(/^Error(:[^\n]*)?\n/,""))});c.prototype=Object.create(a.prototype);c.prototype.constructor=c;c.prototype.toString=function(){return void 0===this.message?this.name:`${this.name}: ${this.message}`};return c})(Error,"UnboundTypeError");X.push(0,1,void 0,1,null,1,!0,1,!1,1);B.count_emval_handles=()=>X.length/2-5-Qb.length;sa&&(dc[0]=this,addEventListener("message",Ja));var wc={b:(a,b,c,d)=>{Na(`Assertion failed: ${J(a)}, at: `+[b?J(b):"unknown filename",c,d?J(d):"unknown function"])},c:(a,b,c)=>{var d=new ab(a);A()[d.ca+16>>2]=0;A()[d.ca+4>>2]=b;A()[d.ca+8>>2]=c;bb=a;cb++;throw bb;},M:()=>{Na("")},q:(a,b,c)=>{b=K(b);P(a,{name:b,fromWireType:d=>d,toWireType:function(d,e){if("bigint"!=typeof e&&"number"!=typeof e)throw new TypeError(`Cannot convert "${db(e)}" to ${this.name}`);"number"==typeof e&&(e=BigInt(e));return e},ka:8,readValueFromPointer:ib(b,c,-1==b.indexOf("u")),ia:null})},P:(a,b,c,d)=>{b=K(b);P(a,{name:b,fromWireType:function(e){return!!e},toWireType:function(e,f){return f?c:d},ka:8,readValueFromPointer:function(e){return this.fromWireType(x()[e])},ia:null})},o:(a,b,c,d,e,f,g,h,k,l,n,r,t)=>{n=K(n);f=V(e,f);h&&=V(g,h);l&&=V(k,l);t=V(r,t);var v=vb(n);ub(v,function(){Ib(`Cannot construct ${n} due to unbound types`,[d])});Q([a,b,c],d?[d]:[],w=>{w=w[0];if(d){var z=w.ba;var ea=z.oa}else ea=rb.prototype;w=sb(n,function(...Xa){if(Object.getPrototypeOf(this)!==Ya)throw new N("Use 'new' to construct "+n);if(void 0===E.ma)throw new N(n+" has no accessible constructor");var Pb=E.ma[Xa.length];if(void 0===Pb)throw new N(`Tried to invoke ctor of ${n} with invalid number of parameters (${Xa.length}) - expected (${Object.keys(E.ma).toString()}) parameters instead!`);return Pb.apply(this,Xa)});var Ya=Object.create(ea,{constructor:{value:w}});w.prototype=Ya;var E=new wb(n,w,Ya,t,z,f,h,l);if(E.ha){var fa;(fa=E.ha).za??(fa.za=[]);E.ha.za.push(E)}z=new Db(n,E,!0,!1,!1);fa=new Db(n+"*",E,!1,!1,!1);ea=new Db(n+" const*",E,!1,!0,!1);nb[a]={pointerType:fa,Ca:ea};Eb(v,w);return[z,fa,ea]})},j:(a,b,c,d,e,f)=>{var g=Jb(b,c);e=V(d,e);Q([],[a],h=>{h=h[0];var k=`constructor ${h.name}`;void 0===h.ba.ma&&(h.ba.ma=[]);if(void 0!==h.ba.ma[b-1])throw new N(`Cannot register multiple constructors with identical number of parameters (${b-1}) for class '${h.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);h.ba.ma[b-1]=()=>{Ib(`Cannot construct ${h.name} due to unbound types`,g)};Q([],g,l=>{l.splice(1,0,null);h.ba.ma[b-1]=Nb(k,l,null,e,f);return[]});return[]})},h:(a,b,c,d,e,f,g,h,k)=>{var l=Jb(c,d);b=K(b);b=Ob(b);f=V(e,f);Q([],[a],n=>{function r(){Ib(`Cannot call ${t} due to unbound types`,l)}n=n[0];var t=`${n.name}.${b}`;b.startsWith("@@")&&(b=Symbol[b.substring(2)]);h&&n.ba.Ja.push(b);var v=n.ba.oa,w=v[b];void 0===w||void 0===w.ga&&w.className!==n.name&&w.ta===c-2?(r.ta=c-2,r.className=n.name,v[b]=r):(tb(v,b,t),v[b].ga[c-2]=r);Q([],l,z=>{z=Nb(t,z,n,f,g,k);void 0===v[b].ga?(z.ta=c-2,v[b]=z):v[b].ga[c-2]=z;return[]});return[]})},O:a=>P(a,Rb),H:(a,b,c,d)=>{function e(){}b=K(b);e.values={};P(a,{name:b,constructor:e,fromWireType:function(f){return this.constructor.values[f]},toWireType:(f,g)=>g.value,ka:8,readValueFromPointer:Sb(b,c,d),ia:null});ub(b,e)},k:(a,b,c)=>{var d=Tb(a);b=K(b);a=d.constructor;d=Object.create(d.constructor.prototype,{value:{value:c},constructor:{value:sb(`${d.name}_${b}`,function(){})}});a.values[c]=d;a[b]=d},p:(a,b,c)=>{b=K(b);P(a,{name:b,fromWireType:d=>d,toWireType:(d,e)=>e,ka:8,readValueFromPointer:Ub(b,c),ia:null})},N:(a,b,c,d,e,f,g)=>{var h=Jb(b,c);a=K(a);a=Ob(a);e=V(d,e);ub(a,function(){Ib(`Cannot call ${a} due to unbound types`,h)},b-1);Q([],h,k=>{Eb(a,Nb(a,[k[0],null].concat(k.slice(1)),null,e,f,g),b-1);return[]})},i:(a,b,c,d,e)=>{b=K(b);-1===e&&(e=4294967295);e=h=>h;if(0===d){var f=32-8*c;e=h=>h<>>f}var g=b.includes("unsigned")?function(h,k){return k>>>0}:function(h,k){return k};P(a,{name:b,fromWireType:e,toWireType:g,ka:8,readValueFromPointer:ib(b,c,0!==d),ia:null})},d:(a,b,c)=>{function d(f){var g=A()[f>>2];f=A()[f+4>>2];return new e(m().buffer,f,g)}var e=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][b];c=K(c);P(a,{name:c,fromWireType:d,ka:8,readValueFromPointer:d},{Ha:!0})},r:(a,b)=>{b=K(b);var c="std::string"===b;P(a,{name:b,fromWireType:function(d){var e=A()[d>>2],f=d+4;if(c)for(var g=f,h=0;h<=e;++h){var k=f+h;if(h==e||0==x()[k]){g=J(g,k-g);if(void 0===l)var l=g;else l+=String.fromCharCode(0),l+=g;g=k+1}}else{l=Array(e);for(h=0;h>2]=g;if(c&&f)g+=1,Y(e,x(),k,g);else if(f)for(f=0;f{c=K(c);if(2===b){var d=Yb;var e=Zb;var f=$b;var g=h=>da()[h>>1]}else 4===b&&(d=ac,e=bc,f=cc,g=h=>A()[h>>2]);P(a,{name:c,fromWireType:h=>{for(var k=A()[h>>2],l,n=h+4,r=0;r<=k;++r){var t=h+4+r*b;if(r==k||0==g(t))n=d(n,t-n),void 0===l?l=n:(l+=String.fromCharCode(0),l+=n),n=t+b}W(h);return l},toWireType:(h,k)=>{if("string"!=typeof k)throw new N(`Cannot pass non-string to C++ string type ${c}`);var l=f(k),n=D(4+l+b);A()[n>>2]=l/b;e(k,n+4,l+b);null!==h&&h.push(W,n);return n},ka:8,readValueFromPointer:Cb,ia(h){W(h)}})},Q:(a,b)=>{b=K(b);P(a,{Pa:!0,name:b,ka:0,fromWireType:()=>{},toWireType:()=>{}})},F:(a,b)=>{let c=dc[ec]=new Worker(fc);c.postMessage({$ww:ec,wasm:ya,js:B.mainScriptUrlOrBlob||_scriptName,wasmMemory:p,sb:a,sz:b});c.onmessage=La;return ec++},t:()=>{ic=0},u:(a,b)=>{gc[a]&&(clearTimeout(gc[a].id),delete gc[a]);if(!b)return 0;var c=setTimeout(()=>{delete gc[a];kc(()=>vc(a,performance.now()))},b);gc[a]={id:c,Ta:b};return 0},I:(a,b,c,d)=>{var e=(new Date).getFullYear(),f=(new Date(e,0,1)).getTimezoneOffset();e=(new Date(e,6,1)).getTimezoneOffset();var g=Math.max(f,e);A()[a>>2]=60*g;y()[b>>2]=Number(f!=e);b=h=>{var k=Math.abs(h);return`UTC${0<=h?"-":"+"}${String(Math.floor(k/60)).padStart(2,"0")}${String(k%60).padStart(2,"0")}`};a=b(f);b=b(e);ex().set(mc[a].Ea,b),z:()=>lc.length,A:()=>mc.length,x:(a,b)=>{a=lc[a].Oa;var c=Wb(a)+1;Y(a,x(),b,c)},v:a=>mc[a].mode,C:a=>mc[a].Ea.length,y:(a,b)=>{a=lc[a].Ra;var c=Wb(a)+1;Y(a,x(),b,c)},w:(a,b)=>{a=mc[a].Sa;var c=Wb(a)+1;Y(a,x(),b,c)},E:()=>{a:{if(!nc.length){var a=null;"undefined"!=typeof window&&"function"==typeof window.prompt&&(a=window.prompt("Input: "),null!==a&&(a+="\n"));if(!a){var b=null;break a}b=Array(Wb(a)+1);a=Y(a,b,0,b.length);b.length=a;nc=b}b=nc.shift()}return"number"===typeof b?b:-1},R:a=>{console.error(J(a))},T:a=>{console.log(J(a))},S:a=>{console.warn(J(a))},f:()=>Date.now(),l:a=>G(J(a)),m:()=>performance.now(),D:a=>xa(J(a)),J:a=>{var b=x().length;a>>>=0;if(a<=b||2147483648=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,a+100663296);a:{d=(Math.min(2147483648,65536*Math.ceil(Math.max(a,d)/65536))-p.buffer.byteLength+65535)/65536;try{p.grow(d);u();var e=1;break a}catch(f){}e=void 0}if(e)return!0}return!1},K:(a,b)=>{var c=0;qc().forEach((d,e)=>{var f=b+c;e=A()[a+4*e>>2]=f;for(f=0;f{var c=qc();A()[a>>2]=c.length;var d=0;c.forEach(e=>d+=e.length+1);A()[b>>2]=d;return 0},e:a=>{Aa=a;jc(a)},g:Ta,G:(a,b)=>{sc(x().subarray(a,a+b));return 0},a:p,s:jc,U:function(a,b){for(let c of Object.values(dc))c.postMessage({_wsc:a,x:[b]}),c.onmessage=d=>Ta(...d.data)}},Z=function(){function a(c,d){Z=c.exports;Wa=Z.Z;Fa.unshift(Z.V);ya=d;H--;0==H&&(null!==Ma&&(clearInterval(Ma),Ma=null),I&&(c=I,I=null,c()));return Z}var b={a:wc};H++;if(B.instantiateWasm)try{return B.instantiateWasm(b,a)}catch(c){G(`Module.instantiateWasm callback failed with error: ${c}`),na(c)}Pa??=Oa("Vosklet.wasm")?"Vosklet.wasm":F+"Vosklet.wasm";Sa(b,function(c){a(c.instance,c.module)}).catch(na);return{}}(),W=a=>(W=Z.W)(a),D=a=>(D=Z.X)(a),Gb=a=>(Gb=Z.Y)(a),vc=(a,b)=>(vc=Z._)(a,b),Ia=(a,b)=>(Ia=Z.$)(a,b),xc;I=function yc(){xc||zc();xc||(I=yc)};function zc(){if(!(0 loadVosklet); \ No newline at end of file diff --git a/Vosklet.wasm b/Vosklet.wasm index eaf0033..29d5f33 100755 Binary files a/Vosklet.wasm and b/Vosklet.wasm differ diff --git a/src/Clapack-wasm.patch b/src/Clapack-wasm.patch deleted file mode 100644 index 71e5679..0000000 --- a/src/Clapack-wasm.patch +++ /dev/null @@ -1,77 +0,0 @@ -diff --git a/CBLAS/Makefile.in.WASM b/CBLAS/Makefile.in.WASM -index bf7eda6..5fedaf6 100644 ---- a/CBLAS/Makefile.in.WASM -+++ b/CBLAS/Makefile.in.WASM -@@ -36,7 +36,7 @@ LOADER = $(CC) - # Flags for Compilers - #----------------------------------------------------------------------------- - --CFLAGS = -DADD_ -O3 -+CFLAGS = -DADD_ -O3 -flto -msimd128 -matomics -mbulk-memory -mreference-types -mnontrapping-fptoint -mextended-const -msign-ext -mmutable-globals - - #----------------------------------------------------------------------------- - # Archive programs and flags -diff --git a/CLAPACK-3.2.1/make.inc.WASM b/CLAPACK-3.2.1/make.inc.WASM -index 80037d0..a964b2d 100644 ---- a/CLAPACK-3.2.1/make.inc.WASM -+++ b/CLAPACK-3.2.1/make.inc.WASM -@@ -23,7 +23,7 @@ PLAT = - # This is used to compile C libary - # if no wrapping of the blas library is needed, uncomment next line - CC = emcc # -DNO_BLAS_WRAP --CFLAGS = -I$(TOPDIR)/INCLUDE -I$(TOPDIR)/../libf2c -O3 -+CFLAGS = -I$(TOPDIR)/INCLUDE -I$(TOPDIR)/../libf2c -O3 -fno-rtti -fno-exceptions -flto -msimd128 -matomics -mbulk-memory -mreference-types -mnontrapping-fptoint -mextended-const -msign-ext -mmutable-globals - LOADER = $(CC) - LOADOPTS = - NOOPT = -O0 -I$(TOPDIR)/INCLUDE -I$(TOPDIR)/../libf2c -diff --git a/f2c_BLAS-3.8.0/make.inc.WASM b/f2c_BLAS-3.8.0/make.inc.WASM -index e071614..4647c2b 100644 ---- a/f2c_BLAS-3.8.0/make.inc.WASM -+++ b/f2c_BLAS-3.8.0/make.inc.WASM -@@ -16,7 +16,7 @@ PLAT = - # desired load options for your machine. - # - CC = emcc --CFLAGS = -I../libf2c -O3 -+CFLAGS = -I../libf2c -O3 -fno-rtti -fno-exceptions -flto -msimd128 -matomics -mbulk-memory -mreference-types -mnontrapping-fptoint -mextended-const -msign-ext -mmutable-globals - DRVOPTS = $(OPTS) - NOOPT = - LOADER = emcc -diff --git a/libf2c/makefile.WASM b/libf2c/makefile.WASM -index 6221401..d93b87f 100644 ---- a/libf2c/makefile.WASM -+++ b/libf2c/makefile.WASM -@@ -15,7 +15,7 @@ - .SUFFIXES: .c .o - CC = emcc - SHELL = /bin/sh --CFLAGS = -DNON_UNIX_STDIO -O3 -+CFLAGS = -DNON_UNIX_STDIO -O3 -fno-rtti -fno-exceptions -flto -msimd128 -matomics -mbulk-memory -mreference-types -mnontrapping-fptoint -mextended-const -msign-ext -mmutable-globals - - LD = wasm-ld - RANLIB = emranlib -@@ -24,7 +24,7 @@ AR = emar - # compile, then strip unnecessary symbols - .c.o: - $(CC) -c -DSkip_f2c_Undefs $(CFLAGS) $*.c -- $(LD) --relocatable -o $*.xxx $*.o -+ $(LD) --no-entry -r -o $*.xxx $*.o - mv $*.xxx $*.o - ## Under Solaris (and other systems that do not understand ld -x), - ## omit -x in the ld line above. -diff --git a/libf2c/main.c b/libf2c/main.c -index d95fdc9..ac82f68 100644 ---- a/libf2c/main.c -+++ b/libf2c/main.c -@@ -105,9 +105,9 @@ char **xargv; - - int - #ifdef KR_headers --main(argc, argv) int argc; char **argv; -+m(argc, argv) int argc; char **argv; - #else --main(int argc, char **argv) -+m(int argc, char **argv) - #endif - { - xargc = argc; diff --git a/src/Kaldi.patch b/src/Kaldi.patch index 408a97c..150b12f 100644 --- a/src/Kaldi.patch +++ b/src/Kaldi.patch @@ -1,33 +1,25 @@ -diff --git a/src/matrix/Makefile b/src/matrix/Makefile -index 398179a35..c903fbfd4 100644 ---- a/src/matrix/Makefile -+++ b/src/matrix/Makefile -@@ -10,7 +10,6 @@ include ../kaldi.mk - - # you can uncomment matrix-lib-speed-test if you want to do the speed tests. - --TESTFILES = matrix-lib-test sparse-matrix-test numpy-array-test #matrix-lib-speed-test - - OBJFILES = kaldi-matrix.o kaldi-vector.o packed-matrix.o sp-matrix.o tp-matrix.o \ - matrix-functions.o qr.o srfft.o compressed-matrix.o \ - - -diff --git a/src/util/kaldi-thread.cc b/src/util/kaldi-thread.cc -index 4573e24f1..4af4e73ea 100644 ---- a/src/util/kaldi-thread.cc -+++ b/src/util/kaldi-thread.cc -@@ -22,7 +22,7 @@ - #include "util/kaldi-thread.h" - - namespace kaldi { --int32 g_num_threads = 4; // Initialize this global variable. -+int32 g_num_threads = 1; // Initialize this global variable. - - MultiThreadable::~MultiThreadable() { - // default implementation does nothing - +diff --git a/src/configure b/src/configure +index fc3aee6..c93e4e8 100755 +--- a/src/configure ++++ b/src/configure +@@ -1261,14 +1261,7 @@ or try another math library, e.g. --mathlib=OPENBLAS (Kaldi may be slower)." + ** You can also use other matrix algebra libraries. For information, see: + ** http://kaldi-asr.org/doc/matrixwrap.html" + fi +- if [ -f $OPENBLASROOT/lib/libopenblas.so ]; then +- OPENBLASLIBDIR=$OPENBLASROOT/lib +- elif [ -f $OPENBLASROOT/lib64/libopenblas.so ]; then +- # in REDHAT/CentOS package installs, the library is located here +- OPENBLASLIBDIR=$OPENBLASROOT/lib64 +- else +- failure "Expected to find the file $OPENBLASROOT/lib/libopenblas.so" +- fi ++ OPENBLASLIBDIR=$OPENBLASROOT/lib + if [ -f $OPENBLASROOT/include/cblas.h ] ; then + OPENBLASINCDIR=$OPENBLASROOT/include + elif [ -f $OPENBLASROOT/include/openblas/cblas.h ] ; then diff --git a/src/ivector/ivector-extractor.cc b/src/ivector/ivector-extractor.cc -index c3a122281..71d37256d 100644 +index c3a1222..71d3725 100644 --- a/src/ivector/ivector-extractor.cc +++ b/src/ivector/ivector-extractor.cc @@ -195,7 +195,7 @@ void IvectorExtractor::ComputeDerivedVars() { @@ -39,4 +31,28 @@ index c3a122281..71d37256d 100644 TaskSequencer sequencer( sequencer_opts); for (int32 i = 0; i < NumGauss(); i++) - +diff --git a/src/matrix/Makefile b/src/matrix/Makefile +index 398179a..c903fbf 100644 +--- a/src/matrix/Makefile ++++ b/src/matrix/Makefile +@@ -10,7 +10,6 @@ include ../kaldi.mk + + # you can uncomment matrix-lib-speed-test if you want to do the speed tests. + +-TESTFILES = matrix-lib-test sparse-matrix-test numpy-array-test #matrix-lib-speed-test + + OBJFILES = kaldi-matrix.o kaldi-vector.o packed-matrix.o sp-matrix.o tp-matrix.o \ + matrix-functions.o qr.o srfft.o compressed-matrix.o \ +diff --git a/src/util/kaldi-thread.cc b/src/util/kaldi-thread.cc +index 4573e24..4af4e73 100644 +--- a/src/util/kaldi-thread.cc ++++ b/src/util/kaldi-thread.cc +@@ -22,7 +22,7 @@ + #include "util/kaldi-thread.h" + + namespace kaldi { +-int32 g_num_threads = 4; // Initialize this global variable. ++int32 g_num_threads = 1; // Initialize this global variable. + + MultiThreadable::~MultiThreadable() { + // default implementation does nothing diff --git a/src/OpenBLAS.patch b/src/OpenBLAS.patch new file mode 100644 index 0000000..260d2fe --- /dev/null +++ b/src/OpenBLAS.patch @@ -0,0 +1,48 @@ +diff --git a/Makefile.prebuild b/Makefile.prebuild +index b7d695a..4069032 100644 +--- a/Makefile.prebuild ++++ b/Makefile.prebuild +@@ -72,7 +72,7 @@ TARGET_FLAGS = -march=rv64imafdcv -mabi=lp64d + endif + + ifeq ($(TARGET), RISCV64_GENERIC) +-TARGET_FLAGS = -march=rv64imafdc -mabi=lp64d ++#TARGET_FLAGS = -march=rv64imafdc -mabi=lp64d + endif + + all: getarch_2nd +diff --git a/Makefile.riscv64 b/Makefile.riscv64 +index 9f6e48b..a6b1a3f 100644 +--- a/Makefile.riscv64 ++++ b/Makefile.riscv64 +@@ -15,6 +15,6 @@ CCOMMON_OPT += -march=rv64imafdcv -mabi=lp64d + FCOMMON_OPT += -march=rv64imafdcv -mabi=lp64d + endif + ifeq ($(CORE), RISCV64_GENERIC) +-CCOMMON_OPT += -march=rv64imafdc -mabi=lp64d +-FCOMMON_OPT += -march=rv64imafdc -mabi=lp64d ++#CCOMMON_OPT += -march=rv64imafdc -mabi=lp64d ++#FCOMMON_OPT += -march=rv64imafdc -mabi=lp64d + endif +diff --git a/Makefile.system b/Makefile.system +index b065f9a..60dbd2d 100644 +--- a/Makefile.system ++++ b/Makefile.system +@@ -202,7 +202,7 @@ endif + # On x86_64 build getarch with march=native unless the compiler is PGI. This is required to detect AVX512 support in getarch. + ifeq ($(HOSTARCH), x86_64) + ifeq ($(findstring pgcc,$(HOSTCC))$(findstring nvc,$(HOSTCC)),) +-GETARCH_FLAGS += -march=native ++#GETARCH_FLAGS += -march=native + endif + endif + +@@ -1683,7 +1683,7 @@ FCOMMON_OPT += -g + endif + + ifndef COMMON_OPT +-COMMON_OPT = -O2 ++COMMON_OPT = -O3 + endif + + ifndef FCOMMON_OPT diff --git a/src/make b/src/make index f18acef..ea308a7 100755 --- a/src/make +++ b/src/make @@ -35,31 +35,36 @@ SRC=$(realpath src) KALDI=$(realpath kaldi) VOSK=$(realpath vosk) OPENFST=$(realpath openfst) -CLAPACK_WASM=$(realpath clapack-wasm) +OPENBLAS=$(realpath openblas) if [ ! -d "$OPENFST" ]; then rm -rf /tmp/openfst && git clone --depth=1 https://github.com/alphacep/openfst /tmp/openfst && cd /tmp/openfst && autoreconf -is && - CXXFLAGS="-r -O3 -fno-rtti -flto -msimd128 -matomics -mbulk-memory -mreference-types -mnontrapping-fptoint -mextended-const -msign-ext -mmutable-globals -flto" emconfigure ./configure --prefix="$OPENFST" --enable-static --disable-shared --enable-lookahead-fsts --enable-ngram-fsts --disable-bin && + CXXFLAGS="-r -O3 -fno-rtti -flto -msimd128 -matomics -mbulk-memory -mreference-types -mnontrapping-fptoint -mextended-const -msign-ext -mmutable-globals" emconfigure ./configure --prefix="$OPENFST" --enable-static --disable-shared --enable-lookahead-fsts --enable-ngram-fsts --disable-bin && emmake make -j"$JOBS" install && echo "PACKAGE_VERSION = 1.8.0" >> "$OPENFST"/Makefile rm -rf /tmp/openfst fi - -if [ ! -d "$CLAPACK_WASM" ]; then - git clone --depth=1 https://gitlab.inria.fr/multispeech/kaldi.web/clapack-wasm.git "$CLAPACK_WASM" && - cd "$CLAPACK_WASM" && - git apply "$SRC"/Clapack-wasm.patch && - bash install_repo.sh emcc +if [ ! -d "$OPENBLAS" ]; then + rm -rf /tmp/openblas && + git clone -b v0.3.28 https://github.com/OpenMathLib/OpenBLAS --depth=1 /tmp/openblas && + cd /tmp/openblas && + git apply "$SRC"/OpenBLAS.patch && + # Change HOSTCC to the default C compiler on your machine + COMMON_FLAGS="CC=emcc HOSTCC=clang-20 TARGET=RISCV64_GENERIC USE_THREAD=0 NO_SHARED=1 BINARY=32 BUILD_SINGLE=1 BUILD_DOUBLE=1 BUILD_BFLOAT16=0 BUILD_COMPLEX16=0 BUILD_COMPLEX=0" + CFLAGS="-fno-exceptions -fno-rtti -flto -msimd128 -matomics -mbulk-memory -mreference-types -mnontrapping-fptoint -mextended-const -msign-ext -mmutable-globals -Wno-implicit-function-declaration -Wno-unused-function" + make $COMMON_FLAGS CFLAGS="$CFLAGS" PREFIX="$OPENBLAS" -j"$JOBS" && + make $COMMON_FLAGS CFLAGS="$CFLAGS" PREFIX="$OPENBLAS" -j"$JOBS" install && + rm -rf /tmp/openblas fi if [ ! -d "$KALDI" ]; then git clone -b vosk --depth=1 https://github.com/alphacep/kaldi "$KALDI" && cd "$KALDI"/src && git apply "$SRC"/Kaldi.patch && - CXXFLAGS="-O3 -UHAVE_EXECINFO_H -DEMSCRIPTEN_HAS_UNBOUND_TYPE_NAMES=0 -fwasm-exceptions -flto -msimd128 -matomics -mbulk-memory -mreference-types -mnontrapping-fptoint -mextended-const -msign-ext -mmutable-globals -Wno-unused-variable -Wno-unused-but-set-variable -g0" LDFLAGS="-lembind" emconfigure ./configure --use-cuda=no --with-cudadecoder=no --static --static-math=yes --static-fst=yes --debug-level=0 --fst-root="$OPENFST" --clapack-root="$CLAPACK_WASM" --host=WASM && + CXXFLAGS="-O3 -UHAVE_EXECINFO_H -DEMSCRIPTEN_HAS_UNBOUND_TYPE_NAMES=0 -fwasm-exceptions -flto -msimd128 -matomics -mbulk-memory -mreference-types -mnontrapping-fptoint -mextended-const -msign-ext -mmutable-globals -Wno-unused-variable -Wno-unused-but-set-variable -g0" LDFLAGS="-lembind" emconfigure ./configure --use-cuda=no --with-cudadecoder=no --static --static-math=yes --static-fst=yes --debug-level=0 --fst-root="$OPENFST" --openblas-root="$OPENBLAS" --host=WASM && emmake make -j"$JOBS" online2 rnnlm fi @@ -69,14 +74,14 @@ if [ ! -d "$VOSK" ]; then git apply "$SRC"/Vosk.patch && VOSK_FILES="recognizer.o language_model.o model.o spk_model.o vosk_api.o" && em++ -O3 -fwasm-exceptions -flto -msimd128 -matomics -mbulk-memory -mreference-types -mnontrapping-fptoint -mextended-const -msign-ext -mmutable-globals -Wno-deprecated -I. -I"$KALDI"/src -I"$OPENFST"/include ${VOSK_FILES//.o/.cc} -c && - emar -rcs vosk.a $VOSK_FILES + emar -rcs vosk.a $VOSK_FILES && rm -f $VOSK_FILES fi cd "$SRC" && FILES="Util.o CommonModel.o Recognizer.o Bindings.o" COMMON_FLAGS="-O3 -flto -fno-rtti -msimd128 -matomics -mbulk-memory -mreference-types -mnontrapping-fptoint -mextended-const -msign-ext -mmutable-globals" -COMMON_LD_FLAGS="-sWASMFS -sWASM_BIGINT -sMODULARIZE -sTEXTDECODER=2 -sWASM_WORKERS=2 -sEVAL_CTORS=2 -sINITIAL_MEMORY="$INITIAL_MEMORY" -sALLOW_MEMORY_GROWTH -sPOLYFILL=0 -sEXIT_RUNTIME=0 -sINVOKE_RUN=0 -sSUPPORT_LONGJMP=0 -sINCOMING_MODULE_JS_API=wasmMemory,instantiateWasm,wasm -sEXPORT_NAME=loadVosklet -sMALLOC=emmalloc -sENVIRONMENT=web,worker -L"$KALDI"/src -l:online2/kaldi-online2.a -l:decoder/kaldi-decoder.a -l:ivector/kaldi-ivector.a -l:gmm/kaldi-gmm.a -l:tree/kaldi-tree.a -l:feat/kaldi-feat.a -l:cudamatrix/kaldi-cudamatrix.a -l:lat/kaldi-lat.a -l:lm/kaldi-lm.a -l:rnnlm/kaldi-rnnlm.a -l:hmm/kaldi-hmm.a -l:nnet3/kaldi-nnet3.a -l:transform/kaldi-transform.a -l:matrix/kaldi-matrix.a -l:fstext/kaldi-fstext.a -l:util/kaldi-util.a -l:base/kaldi-base.a -L"$OPENFST"/lib -l:libfst.a -l:libfstngram.a -L"$CLAPACK_WASM" -l:CBLAS/lib/cblas.a -l:CLAPACK-3.2.1/lapack.a -l:CLAPACK-3.2.1/libcblaswr.a -l:f2c_BLAS-3.8.0/blas.a -l:libf2c/libf2c.a -L"$VOSK"/src -l:vosk.a -lembind --closure 1 --pre-js" +COMMON_LD_FLAGS="-sWASMFS -sWASM_BIGINT -sMODULARIZE -sTEXTDECODER=2 -sWASM_WORKERS=2 -sEVAL_CTORS=2 -sINITIAL_MEMORY=$INITIAL_MEMORY -sALLOW_MEMORY_GROWTH -sPOLYFILL=0 -sEXIT_RUNTIME=0 -sINVOKE_RUN=0 -sSUPPORT_LONGJMP=0 -sINCOMING_MODULE_JS_API=wasmMemory,instantiateWasm,wasm -sEXPORT_NAME=loadVosklet -sMALLOC=emmalloc -sENVIRONMENT=web,worker -L$KALDI/src -l:online2/kaldi-online2.a -l:decoder/kaldi-decoder.a -l:ivector/kaldi-ivector.a -l:gmm/kaldi-gmm.a -l:tree/kaldi-tree.a -l:feat/kaldi-feat.a -l:cudamatrix/kaldi-cudamatrix.a -l:lat/kaldi-lat.a -l:lm/kaldi-lm.a -l:rnnlm/kaldi-rnnlm.a -l:hmm/kaldi-hmm.a -l:nnet3/kaldi-nnet3.a -l:transform/kaldi-transform.a -l:matrix/kaldi-matrix.a -l:fstext/kaldi-fstext.a -l:util/kaldi-util.a -l:base/kaldi-base.a -L$OPENFST/lib -l:libfst.a -l:libfstngram.a -L$OPENBLAS -l:lib/libopenblas.a -L$VOSK/src -l:vosk.a -lembind --closure 1 --pre-js" em++ ${FILES//.o/.cc} $COMMON_FLAGS -DEMSCRIPTEN_HAS_UNBOUND_TYPE_NAMES=0 -DMAX_WORKERS="$MAX_THREADS" -fno-exceptions -std=c++23 -c -I. -I"$VOSK"/src && em++ $FILES $COMMON_FLAGS $COMMON_LD_FLAGS Wrapper.js -o ../Vosklet.js diff --git a/test b/test index 47a624c..ee0d0cd 100755 --- a/test +++ b/test @@ -33,15 +33,15 @@ export PATH=:$PATH:$(realpath "$EMSDK")/upstream/bin KALDI=$(realpath kaldi) VOSK=$(realpath vosk) OPENFST=$(realpath openfst) -CLAPACK_WASM=$(realpath clapack-wasm) +OPENBLAS=$(realpath OpenBLAS) cd src && MODE=0 && # 0: Debug, 1: Optimized release -COMMON_FLAGS="Util.cc CommonModel.cc Recognizer.cc Bindings.cc -std=c++23 -Wall -Wextra -Wpedantic -fno-rtti -DEMSCRIPTEN_HAS_UNBOUND_TYPE_NAMES=0 -DMAX_WORKERS="$MAX_THREADS" -sWASMFS -sWASM_BIGINT -sMODULARIZE -sWASM_EXNREF -sTEXTDECODER=2 -sWASM_WORKERS=2 -sEVAL_CTORS=2 -sINITIAL_MEMORY="$INITIAL_MEMORY" -sALLOW_MEMORY_GROWTH -sPOLYFILL=0 -sEXIT_RUNTIME=0 -sINVOKE_RUN=0 -sINCOMING_MODULE_JS_API=wasmMemory,instantiateWasm,wasm -sEXPORT_NAME=loadVosklet -sMALLOC=emmalloc -sENVIRONMENT=web,worker -I. -I"$VOSK"/src -L"$KALDI"/src -l:online2/kaldi-online2.a -l:decoder/kaldi-decoder.a -l:ivector/kaldi-ivector.a -l:gmm/kaldi-gmm.a -l:tree/kaldi-tree.a -l:feat/kaldi-feat.a -l:cudamatrix/kaldi-cudamatrix.a -l:lat/kaldi-lat.a -l:lm/kaldi-lm.a -l:rnnlm/kaldi-rnnlm.a -l:hmm/kaldi-hmm.a -l:nnet3/kaldi-nnet3.a -l:transform/kaldi-transform.a -l:matrix/kaldi-matrix.a -l:fstext/kaldi-fstext.a -l:util/kaldi-util.a -l:base/kaldi-base.a -L"$OPENFST"/lib -l:libfst.a -l:libfstngram.a -L"$CLAPACK_WASM" -l:CBLAS/lib/cblas.a -l:CLAPACK-3.2.1/lapack.a -l:CLAPACK-3.2.1/libcblaswr.a -l:f2c_BLAS-3.8.0/blas.a -l:libf2c/libf2c.a -L"$VOSK"/src -l:vosk.a -lembind -msimd128 -matomics -mbulk-memory -mreference-types -mnontrapping-fptoint -mextended-const -msign-ext -mmutable-globals --pre-js ../Examples/Wrapper.js -o ../test.js" +COMMON_FLAGS="Util.cc CommonModel.cc Recognizer.cc Bindings.cc -std=c++23 -Wall -Wextra -Wpedantic -fno-rtti -DEMSCRIPTEN_HAS_UNBOUND_TYPE_NAMES=0 -DMAX_WORKERS="$MAX_THREADS" -sWASMFS -sWASM_BIGINT -sMODULARIZE -sWASM_EXNREF -sTEXTDECODER=2 -sWASM_WORKERS=2 -sEVAL_CTORS=2 -sINITIAL_MEMORY="$INITIAL_MEMORY" -sALLOW_MEMORY_GROWTH -sPOLYFILL=0 -sEXIT_RUNTIME=0 -sINVOKE_RUN=0 -sINCOMING_MODULE_JS_API=wasmMemory,instantiateWasm,wasm -sEXPORT_NAME=loadVosklet -sMALLOC=emmalloc -sENVIRONMENT=web,worker -I. -I"$VOSK"/src -L"$KALDI"/src -l:online2/kaldi-online2.a -l:decoder/kaldi-decoder.a -l:ivector/kaldi-ivector.a -l:gmm/kaldi-gmm.a -l:tree/kaldi-tree.a -l:feat/kaldi-feat.a -l:cudamatrix/kaldi-cudamatrix.a -l:lat/kaldi-lat.a -l:lm/kaldi-lm.a -l:rnnlm/kaldi-rnnlm.a -l:hmm/kaldi-hmm.a -l:nnet3/kaldi-nnet3.a -l:transform/kaldi-transform.a -l:matrix/kaldi-matrix.a -l:fstext/kaldi-fstext.a -l:util/kaldi-util.a -l:base/kaldi-base.a -L"$OPENFST"/lib -l:libfst.a -l:libfstngram.a -L"$OPENBLAS" -l:lib/libopenblas.a -L"$VOSK"/src -l:vosk.a -lembind -msimd128 -matomics -mbulk-memory -mreference-types -mnontrapping-fptoint -mextended-const -msign-ext -mmutable-globals --pre-js ../Examples/Wrapper.js -o ../test.js" echo "Mode = $MODE" && if [ "$MODE" = 0 ]; then em++ $COMMON_FLAGS -O0 -sRUNTIME_DEBUG -sDISABLE_EXCEPTION_CATCHING=0 -sSTACK_OVERFLOW_CHECK=2 -sASSERTIONS=2 -g3 elif [ "$MODE" = 1 ]; then em++ $COMMON_FLAGS -O3 --closure 1 && tr -d '\n' < ../test.js | tr -s ' ' > /tmp/hehe && mv /tmp/hehe ../test.js -fi \ No newline at end of file +fi