diff options
author | MetaMuffin <metamuffin@yandex.com> | 2021-08-06 13:20:40 +0200 |
---|---|---|
committer | MetaMuffin <metamuffin@yandex.com> | 2021-08-06 13:20:40 +0200 |
commit | 208f4f17fe3189ded2110baf166dc2e1ac60e619 (patch) | |
tree | 9dc81ecc78d80aa502721bdae1140c525f220919 /public/rnnoise/rnnoise-runtime.js | |
parent | a8f89036b5788a3f6ddb053824650b913a0c98a3 (diff) | |
download | keks-meet-208f4f17fe3189ded2110baf166dc2e1ac60e619.tar keks-meet-208f4f17fe3189ded2110baf166dc2e1ac60e619.tar.bz2 keks-meet-208f4f17fe3189ded2110baf166dc2e1ac60e619.tar.zst |
added rnnoise
Diffstat (limited to 'public/rnnoise/rnnoise-runtime.js')
-rw-r--r-- | public/rnnoise/rnnoise-runtime.js | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/public/rnnoise/rnnoise-runtime.js b/public/rnnoise/rnnoise-runtime.js new file mode 100644 index 0000000..c621d84 --- /dev/null +++ b/public/rnnoise/rnnoise-runtime.js @@ -0,0 +1,3 @@ +'use strict';{const g=document.currentScript.src.match(/(.*\/)?/)[0],h=(WebAssembly.compileStreaming||(async a=>await WebAssembly.compile(await (await a).arrayBuffer())))(fetch(g+"rnnoise-processor.wasm"));let k,c,e;window.RNNoiseNode=(window.AudioWorkletNode||(window.AudioWorkletNode=window.webkitAudioWorkletNode))&&class extends AudioWorkletNode{static async register(a){k=await h;await a.audioWorklet.addModule(g+"rnnoise-processor.js")}constructor(a){super(a,"rnnoise",{channelCountMode:"explicit", +channelCount:1,channelInterpretation:"speakers",numberOfInputs:1,numberOfOutputs:1,outputChannelCount:[1],processorOptions:{module:k}});this.port.onmessage=({data:b})=>{b=Object.assign(new Event("status"),b);this.dispatchEvent(b);if(this.onstatus)this.onstatus(b)}}update(a){this.port.postMessage(a)}}||(window.ScriptProcessorNode||(window.ScriptProcessorNode=window.webkitScriptProcessorNode))&&Object.assign(function(a){const b=a.createScriptProcessor(512,1,1),d=c.newState();let f=!0;b.onaudioprocess= +({inputBuffer:b,outputBuffer:a})=>{f&&(e.set(b.getChannelData(0),c.getInput(d)/4),b=a.getChannelData(0),(a=c.pipe(d,b.length)/4)&&b.set(e.subarray(a,a+b.length)))};b.update=a=>{if(f)if(a){if(a=Object.assign(new Event("status"),{vadProb:c.getVadProb(d)}),b.dispatchEvent(a),b.onstatus)b.onstatus(a)}else f=!1,c.deleteState(d)};return b},{register:async()=>{c||(e=new Float32Array((c=(await WebAssembly.instantiate(await h)).exports).memory.buffer))}})}; |