1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7004],{27004:function(e,t,s){var i=this&&this.__createBinding||(Object.create?function(e,t,s,i){void 0===i&&(i=s);var r=Object.getOwnPropertyDescriptor(t,s);(!r||("get"in r?!t.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return t[s]}}),Object.defineProperty(e,i,r)}:function(e,t,s,i){void 0===i&&(i=s),e[i]=t[s]}),r=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var s in e)"default"!==s&&Object.prototype.hasOwnProperty.call(e,s)&&i(t,e,s);return r(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.useMicVAD=t.defaultReactRealTimeVADOptions=t.utils=void 0;let a=s(39762),n=o(s(67294));var l=s(39762);Object.defineProperty(t,"utils",{enumerable:!0,get:function(){return l.utils}});let u={startOnLoad:!0,userSpeakingThreshold:.6};t.defaultReactRealTimeVADOptions={...a.defaultRealTimeVADOptions,...u};let c=Object.keys(u),h=Object.keys(a.defaultRealTimeVADOptions),d=(e,t)=>e.reduce((e,s)=>(e[s]=t[s],e),{});function p(e){let t=n.default.useRef(e);return f(()=>{t.current=e}),n.default.useCallback((...e)=>t.current.apply(void 0,e),[])}t.useMicVAD=function(e){var s;let[i,r]=(s=e,[d(c,s={...t.defaultReactRealTimeVADOptions,...s}),d(h,s)]),[o,l]=(0,n.useReducer)((e,t)=>t>i.userSpeakingThreshold,!1),[u,f]=(0,n.useState)(!0),[m,g]=(0,n.useState)(!1),[S,v]=(0,n.use
1State)(!1),[b,_]=(0,n.useState)(null);p(r.onFrameProcessed),r.onFrameProcessed=p(e=>{l(e.isSpeech)});let{onSpeechEnd:O,onSpeechStart:P,onVADMisfire:y}=r,w=p(O),A=p(P),F=p(y);r.onSpeechEnd=w,r.onSpeechStart=A,r.onVADMisfire=F,(0,n.useEffect)(()=>{let e;let t=!1;return(async()=>{try{if(e=await a.MicVAD.new(r),t){e.destroy();return}}catch(e){f(!1),e instanceof Error?g({message:e.message}):g({message:e});return}_(e),f(!1),i.startOnLoad&&(e?.start(),v(!0))})().catch(e=>{console.log("Well that didn't work")}),function(){e?.destroy(),t=!0,u||m||v(!1)}},[]);let M=()=>{u||m||(b?.pause(),v(!1))},T=()=>{u||m||(b?.start(),v(!0))};return{listening:S,errored:m,loading:u,userSpeaking:o,pause:M,start:T,toggle:()=>{S?M():T()}}};let f="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement?n.default.useLayoutEffect:n.default.useEffect},92527:function(e,t,s){Object.defineProperty(t,"__esModule",{value:!0}),t.FrameProcessor=t.validateOptions=t.defaultFrameProcessorOptions=void 0;let i=s(65531),r=s(58655),o=[512,1024,1536];t.defaultFrameProcessorOptions={positiveSpeechThreshold:.5,negativeSpeechThreshold:.35,preSpeechPadFrames:1,redemptionFrames:8,frameSamples:1536,minSpeechFrames:3,submitUserSpeechOnPause:!1},t.validateOptions=function(e){o.includes(e.frameSamples)||r.log.warn("You are using an unusual frame size"),(e.positiveSpeechThreshold<0||e.negativeSpeechThreshold>1)&&r.log.error("postiveSpeechThreshold should be a number between 0 and 1"),(e.negativeSpeechThreshold<0||e.negativeSpeechThreshold>e.positiveSpeechThreshold)&&r.log.error("negativeSpeechThreshold should be between 0 and postiveSpeechThreshold"),e.preSpeechPadFrames<0&&r.log.error("preSpeechPadFrames should be positive"),e.redemptionFrames<0&&r.log.error("preSpeechPadFrames should be positive")};let a=e=>{let t=e.reduce((e,t)=>(e.push(e.at(-1)+t.length),e),[0]),s=new Float32Array(t.at(-1));return e.forEach((e,i)=>{let r=t[i];s.set(e,r)}),s};class n{constructor(e,t,s){this.modelProcessFunc=e,this.modelResetFunc=t,this.options=s,this.speaking=!1,this.redemptionCounter=0,this.active=!1,this.reset=()=>{this.speaking=!1,this.audioBuffer=[],this.modelResetFunc(),this.redemptionCounter=0},this.pause=()=>(this.active=!1,this.options.submitUserSpeechOnPause)?this.endSegment():(this.reset(),{}),this.resume=()=>{this.active=!0},this.endSegment=()=>{let e=this.audioBuffer;this.audioBuffer=[];let t=this.speaking;this.reset();let s=e.reduce((e,t)=>e+ +t.isSpeech,0);if(t){if(!(s>=this.options.minSpeechFrames))return{msg:i.Message.VADMisfire};{let t=a(e.map(e=>e.frame));return{msg:i.Message.SpeechEnd,audio:t}}}return{}},this.process=async e=>{if(!this.active)return{};let t=await this.modelProcessFunc(e);if(this.audioBuffer.push({frame:e,isSpeech:t.isSpeech>=this.options.positiveSpeechThreshold}),t.isSpeech>=this.options.positiveSpeechThreshold&&this.redemptionCounter&&(this.redemptionCounter=0),t.isSpeech>=this.options.positiveSpeechThreshold&&!this.speaking)return this.speaking=!0,{probs:t,msg:i.Message.SpeechStart};if(t.isSpeech<this.options.negativeSpeechThreshold&&this.speaking&&++this.redemptionCounter>=this.options.redemptionFrames){this.redemptionCounter=0,this.speaking=!1;let e=this.audioBuffer;if(this.audioBuffer=[],!(e.reduce((e,t)=>e+ +t.isSpeech,0)>=this.options.minSpeechFrames))return{probs:t,msg:i.Message.VADMisfire};{let s=a(e.map(e=>e.frame));return{probs:t,msg:i.Message.SpeechEnd,audio:s}}}if(!this.speaking)for(;this.audioBuffer.length>this.options.preSpeechPadFrames;)this.audioBuffer.shift();return{probs:t}},this.audioBuffer=[],this.reset()}}t.FrameProcessor=n},91978:function(e,t,s){var i=this&&this.__createBinding||(Object.create?function(e,t,s,i){void 0===i&&(i=s);var r=Object.getOwnPropertyDescriptor(t,s);
1(!r||("get"in r?!t.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return t[s]}}),Object.defineProperty(e,i,r)}:function(e,t,s,i){void 0===i&&(i=s),e[i]=t[s]}),r=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var s in e)"default"!==s&&Object.prototype.hasOwnProperty.call(e,s)&&i(t,e,s);return r(t,e),t},a=this&&this.__exportStar||function(e,t){for(var s in e)"default"===s||Object.prototype.hasOwnProperty.call(t,s)||i(t,e,s)};Object.defineProperty(t,"__esModule",{value:!0}),t.utils=void 0;let n=o(s(15818));t.utils={minFramesForTargetMS:n.minFramesForTargetMS,arrayBufferToBase64:n.arrayBufferToBase64,encodeWAV:n.encodeWAV},a(s(34684),t),a(s(92527),t),a(s(65531),t),a(s(58655),t),a(s(92002),t),a(s(48533),t)},58655:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.log=t.LOG_PREFIX=void 0,t.LOG_PREFIX="[VAD]";let s=["error","debug","warn"].reduce((e,s)=>(e[s]=(...e)=>{console[s](t.LOG_PREFIX,...e)},e),{});t.log=s},65531:function(e,t){var s,i;Object.defineProperty(t,"__esModule",{value:!0}),t.Message=void 0,(i=s||(t.Message=s={})).AudioFrame="AUDIO_FRAME",i.SpeechStart="SPEECH_START",i.VADMisfire="VAD_MISFIRE",i.SpeechEnd="SPEECH_END",i.SpeechStop="SPEECH_STOP"},92002:function(e,t,s){Object.defineProperty(t,"__esModule",{value:!0}),t.Silero=void 0;let i=s(58655);class r{constructor(e,t){this.ort=e,this.modelFetcher=t,this.init=async()=>{i.log.debug("initializing vad");let e=await this.modelFetcher();this._session=await this.ort.InferenceSession.create(e),this._sr=new this.ort.Tensor("int64",[16000n]),this.reset_state(),i.log.debug("vad is initialized")},this.reset_state=()=>{let e=Array(128).fill(0);this._h=new this.ort.Tensor("float32",e,[2,1,64]),this._c=new this.ort.Tensor("float32",e,[2,1,64])},this.process=async e=>{let t={input:new this.ort.Tensor("float32",e,[1,e.length]),h:this._h,c:this._c,sr:this._sr},s=await this._session.run(t);this._h=s.hn,this._c=s.cn;let[i]=s.output.data;return{notSpeech:1-i,isSpeech:i}}}}t.Silero=r,r.new=async(e,t)=>{let s=new r(e,t);return await s.init(),s}},34684:function(e,t,s){Object.defineProperty(t,"__esModule",{value:!0}),t.PlatformAgnosticNonRealTimeVAD=t.defaultNonRealTimeVADOptions=void 0;let i=s(92527),r=s(65531),o=s(92002),a=s(48533);t.defaultNonRealTimeVADOptions={...i.defaultFrameProcessorOptions};class n{static async _new(e,s,i={}){let r=new this(e,s,{...t.defaultNonRealTimeVADOptions,...i});return await r.init(),r}constructor(e,t,s){this.modelFetcher=e,this.ort=t,this.options=s,this.init=async()=>{let e=await o.Silero.new(this.ort,this.modelFetcher);this.frameProcessor=new i.FrameProcessor(e.process,e.reset_state,{frameSamples:this.options.frameSamples,positiveSpeechThreshold:this.options.positiveSpeechThreshold,negativeSpeechThreshold:this.options.negativeSpeechThreshold,redemptionFrames:this.options.redemptionFrames,preSpeechPadFrames:this.options.preSpeechPadFrames,minSpeechFrames:this.options.minSpeechFrames,submitUserSpeechOnPause:this.options.submitUserSpeechOnPause}),this.frameProcessor.resume()},this.run=async function*(e,t){let s,i;let o={nativeSampleRate:t,targetSampleRate:16e3,targetFrameSize:this.options.frameSamples},n=new a.Resampler(o).process(e);for(let e of[...Array(n.length)].keys()){let t=n[e],{msg:o,audio:a}=await this.frameProcessor.process(t);switch(o){case r.Message.SpeechStart:s=e*this.options.frameSamples/16;break;case r.Message.SpeechEnd:i=(e+1)*this.options.frameSamples/16,yield{audio:a,start:s,end:i}}}let{msg:l,audio:u}=this.frameProcessor.endSegment();l==r.Message.SpeechEnd&&(yield{audio:u,start:s,end:n.length*this.options.frameSamples/16})},(0,i.validateOptions)(s)}}t.PlatformAgnosticNonRealTimeVAD=n},48533:function(e,t,s){Object.defineProperty(t,"__esModule",{value:!0}),t.Resampler=void 0;let i=s(58655);class r{constructor(e){this.options=e,this.process=e=>{let t=[];for(let t of e)this.inputBuffer.push(t);for(;this.inputBuffer.length*this.options.targetSampleRate/this.options.nativeSampleRate>this.options.targetFrameSize;){let e=new Float32Array(this.options.targetFrameSize),s=0,i=0;for(;s<this.options.targetFrameSize;){let t=0,r=0;for(;i<Math.min(this.inputBuffer.length,(s+1)*this.options.nativeSampleRate/this.options.targetSampleRate);)t+=this.inputBuffer[i],r++,i++;e[s]=t/r,s++}this.inputBuffer=this.inputBuffer.slice(i),t.push(e)}return t},e.nativeSampleRate<16e3&&i.log.error("nativeSampleRate is too low. Should have 16000 = targetSampleRate <= nativeSampleRate"),this.inputBuffer=[]}}t.Resampler=r},15818:function(e,t){function s(e,t,s){for(var i=0;i<s.length;
1i++)e.setUint8(t+i,s.charCodeAt(i))}Object.defineProperty(t,"__esModule",{value:!0}),t.encodeWAV=t.arrayBufferToBase64=t.minFramesForTargetMS=void 0,t.minFramesForTargetMS=function(e,t,s=16e3){return Math.ceil(e*s/1e3/t)},t.arrayBufferToBase64=function(e){for(var t="",s=new Uint8Array(e),i=s.byteLength,r=0;r<i;r++)t+=String.fromCharCode(s[r]);return btoa(t)},t.encodeWAV=function(e,t=3,i=16e3,r=1,o=32){var a=o/8,n=r*a,l=new ArrayBuffer(44+e.length*a),u=new DataView(l);return s(u,0,"RIFF"),u.setUint32(4,36+e.length*a,!0),s(u,8,"WAVE"),s(u,12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,t,!0),u.setUint16(22,r,!0),u.setUint32(24,i,!0),u.setUint32(28,i*n,!0),u.setUint16(32,n,!0),u.setUint16(34,o,!0),s(u,36,"data"),u.setUint32(40,e.length*a,!0),1===t?function(e,t,s){for(var i=0;i<s.length;i++,t+=2){var r=Math.max(-1,Math.min(1,s[i]));e.setInt16(t,r<0?32768*r:32767*r,!0)}}(u,44,e):function(e,t,s){for(var i=0;i<s.length;i++,t+=4)e.setFloat32(t,s[i],!0)}(u,44,e),l}},77709:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.assetPath=void 0;let s="undefined"!=typeof window&&void 0!==window.document?window.document.currentScript:null,i="";s&&(i=s.src.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/")),t.assetPath=e=>i+e},57444:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.defaultModelFetcher=void 0,t.defaultModelFetcher=e=>fetch(e).then(e=>e.arrayBuffer())},39762:function(e,t,s){var i=this&&this.__createBinding||(Object.create?function(e,t,s,i){void 0===i&&(i=s);var r=Object.getOwnPropertyDescriptor(t,s);
1(!r||("get"in r?!t.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return t[s]}}),Object.defineProperty(e,i,r)}:function(e,t,s,i){void 0===i&&(i=s),e[i]=t[s]}),r=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var s in e)"default"!==s&&Object.prototype.hasOwnProperty.call(e,s)&&i(t,e,s);return r(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.defaultRealTimeVADOptions=t.AudioNodeVAD=t.MicVAD=t.NonRealTimeVAD=t.Message=t.FrameProcessor=t.utils=t.defaultNonRealTimeVADOptions=void 0;let a=o(s(89297)),n=s(91978);Object.defineProperty(t,"FrameProcessor",{enumerable:!0,get:function(){return n.FrameProcessor}}),Object.defineProperty(t,"Message",{enumerable:!0,get:function(){return n.Message}});let l=s(52227),u=s(57444),c=s(77709);t.defaultNonRealTimeVADOptions={modelURL:(0,c.assetPath)("silero_vad.onnx"),modelFetcher:u.defaultModelFetcher};class h extends n.PlatformAgnosticNonRealTimeVAD{static async new(e={}){let{modelURL:s,modelFetcher:i}={...t.defaultNonRealTimeVADOptions,...e};return await this._new(()=>i(s),a,e)}}t.NonRealTimeVAD=h,t.utils={audioFileToArray:l.audioFileToArray,...n.utils};var d=s(17759);Object.defineProperty(t,"MicVAD",{enumerable:!0,get:function(){return d.MicVAD}}),Object.defineProperty(t,"AudioNodeVAD",{enumerable:!0,get:function(){return d.AudioNodeVAD}}),Object.defineProperty(t,"defaultRealTimeVADOptions",{enumerable:!0,get:function(){return d.defaultRealTimeVADOptions}})},17759:function(e,t,s){var i=this&&this.__createBinding||(Object.create?function(e,t,s,i){void 0===i&&(i=s);var r=Object.getOwnPropertyDescriptor(t,s);
1(!r||("get"in r?!t.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return t[s]}}),Object.defineProperty(e,i,r)}:function(e,t,s,i){void 0===i&&(i=s),e[i]=t[s]}),r=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var s in e)"default"!==s&&Object.prototype.hasOwnProperty.call(e,s)&&i(t,e,s);return r(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.AudioNodeVAD=t.MicVAD=t.defaultRealTimeVADOptions=void 0;let a=o(s(89297)),n=s(91978),l=s(77709),u=s(57444);t.defaultRealTimeVADOptions={...n.defaultFrameProcessorOptions,onFrameProcessed:e=>{},onVADMisfire:()=>{n.log.debug("VAD misfire")},onSpeechStart:()=>{n.log.debug("Detected speech start")},onSpeechEnd:()=>{n.log.debug("Detected speech end")},workletURL:(0,l.assetPath)("vad.worklet.bundle.min.js"),modelURL:(0,l.assetPath)("silero_vad.onnx"),modelFetcher:u.defaultModelFetcher,stream:void 0};class c{static async new(e={}){let s;let i={...t.defaultRealTimeVADOptions,...e};(0,n.validateOptions)(i),s=void 0===i.stream?await navigator.mediaDevices.getUserMedia({audio:{...i.additionalAudioConstraints,channelCount:1,echoCancellation:!0,autoGainControl:!0,noiseSuppression:!0}}):i.stream;let r=new AudioContext,o=new MediaStreamAudioSourceNode(r,{mediaStream:s}),a=await h.new(r,i);return a.receive(o),new c(i,r,s,a,o)}constructor(e,t,s,i,r,o=!1){this.options=e,this.audioContext=t,this.stream=s,this.audioNodeVAD=i,this.sourceNode=r,this.listening=o,this.pause=()=>{this.audioNodeVAD.pause(),this.listening=!1},this.start=()=>{this.audioNodeVAD.start(),this.listening=!0},this.destroy=()=>{this.listening&&this.pause(),void 0===this.options.stream&&this.stream.getTracks().forEach(e=>e.stop()),this.sourceNode.disconnect(),this.audioNodeVAD.destroy(),this.audioContext.close()}}}t.MicVAD=c;class h{static async new(e,s={}){let i={...t.defaultRealTimeVADOptions,...s};(0,n.validateOptions)(i),await e.audioWorklet.addModule(i.workletURL);let r=new AudioWorkletNode(e,"vad-helper-worklet",{processorOptions:{frameSamples:i.frameSamples}}),o=await n.Silero.new(a,()=>i.modelFetcher(i.modelURL)),l=new n.FrameProcessor(o.process,o.reset_state,{frameSamples:i.frameSamples,positiveSpeechThreshold:i.positiveSpeechThreshold,negativeSpeechThreshold:i.negativeSpeechThreshold,redemptionFrames:i.redemptionFrames,preSpeechPadFrames:i.preSpeechPadFrames,minSpeechFrames:i.minSpeechFrames,submitUserSpeechOnPause:i.submitUserSpeechOnPause}),u=new h(e,i,l,r);return r.port.onmessage=async e=>{if(e.data?.message===n.Message.AudioFrame){let t=new Float32Array(e.data.data);await u.processFrame(t)}},u}constructor(e,t,s,i){this.ctx=e,this.options=t,this.frameProcessor=s,this.entryNode=i,this.pause=()=>{let e=this.frameProcessor.pause();this.handleFrameProcessorEvent(e)},this.start=()=>{this.frameProcessor.resume()},this.receive=e=>{e.connect(this.entryNode)},this.processFrame=async e=>{let t=await this.frameProcessor.process(e);this.handleFrameProcessorEvent(t)},this.handleFrameProcessorEvent=e=>{switch(void 0!==e.probs&&this.options.onFrameProcessed(e.probs),e.msg){case n.Message.SpeechStart:this.options.onSpeechStart();break;case n.Message.VADMisfire:this.options.onVADMisfire();break;case n.Message.SpeechEnd:this.options.onSpeechEnd(e.audio)}},this.destroy=()=>{this.entryNode.port.postMessage({message:n.Message.SpeechStop}),this.entryNode.disconnect()}}}t.AudioNodeVAD=h},52227:function(e,t){async function s(e){let t=new OfflineAudioContext(1,1,44100),s=new FileReader,i=null;if(await new Promise(r=>{s.addEventListener("loadend",e=>{let o=s.result;t.decodeAudioData(o,e=>{i=e,t.startRendering().then(e=>{console.log("Rendering completed successfully"),r()}).catch(e=>{console.error(`Rendering failed: ${e}`)})},e=>{console.log(`Error with decoding audio data: ${e}`)})}),s.readAsArrayBuffer(e)}),null===i)throw Error("some shit");let r=i,o=new Float32Array(r.length);for(let e=0;e<r.length;e++)for(let t=0;t<r.numberOfChannels;t++)o[e]+=r.getChannelData(t)[e];return{audio:o,sampleRate:r.sampleRate}}
1Object.defineProperty(t,"__esModule",{value:!0}),t.audioFileToArray=void 0,t.audioFileToArray=s}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.