UNPKG

vosk-koffi

Version:
2 lines (1 loc) 4.84 kB
"use strict";var b=Object.create;var c=Object.defineProperty;var w=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var V=Object.getPrototypeOf,M=Object.prototype.hasOwnProperty;var _=(r,e)=>{for(var n in e)c(r,n,{get:e[n],enumerable:!0})},f=(r,e,n,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of x(e))!M.call(r,i)&&i!==n&&c(r,i,{get:()=>e[i],enumerable:!(t=w(e,i))||t.enumerable});return r};var z=(r,e,n)=>(n=r!=null?b(V(r)):{},f(e||!r||!r.__esModule?c(n,"default",{value:r,enumerable:!0}):n,r)),P=r=>f(c({},"__esModule",{value:!0}),r);var T={};_(T,{Model:()=>k,Recognizer:()=>m,SpeakerModel:()=>p,default:()=>y,libvosk:()=>o,setLogLevel:()=>h});module.exports=P(T);var u={};_(u,{Model:()=>k,SpeakerModel:()=>p,libvosk:()=>o});var l=z(require("path")),a=z(require("koffi"));a.default.opaque("VoskModel");a.default.opaque("VoskSpkModel");a.default.opaque("VoskRecognizer");function S(){let r=l.default.resolve(__dirname,"..",`bin-${process.platform}-${process.arch}`);return process.platform=="win32"?(process.env.Path=r+l.default.delimiter+process.env.Path,l.default.join(r,"libvosk.dll")):process.platform=="darwin"?l.default.join(r,"libvosk.dylib"):l.default.join(r,"libvosk.so")}var s=a.default.load(S()),o={vosk_set_log_level:s.func("void vosk_set_log_level(int log_level)"),vosk_model_new:s.func("VoskModel *vosk_model_new(const char *model_path)"),vosk_model_free:s.func("void vosk_model_free(VoskModel *model)"),vosk_spk_model_new:s.func("VoskSpkModel *vosk_spk_model_new(const char *model_path)"),vosk_spk_model_free:s.func("void vosk_spk_model_free(VoskSpkModel *model)"),vosk_recognizer_new_spk:s.func("VoskRecognizer *vosk_recognizer_new_spk(VoskModel *model, float sample_rate, VoskSpkModel *spk_model)"),vosk_recognizer_new:s.func("VoskRecognizer *vosk_recognizer_new(VoskModel *model, float sample_rate)"),vosk_recognizer_new_grm:s.func("VoskRecognizer *vosk_recognizer_new_grm(VoskModel *model, float sample_rate, const char *grammar)"),vosk_recognizer_free:s.func("void vosk_recognizer_free(VoskRecognizer *recognizer)"),vosk_recognizer_set_max_alternatives:s.func("void vosk_recognizer_set_max_alternatives(VoskRecognizer *recognizer, int max_alternatives)"),vosk_recognizer_set_words:s.func("void vosk_recognizer_set_words(VoskRecognizer *recognizer, int words)"),vosk_recognizer_set_partial_words:s.func("void vosk_recognizer_set_partial_words(VoskRecognizer *recognizer, int partial_words)"),vosk_recognizer_set_spk_model:s.func("void vosk_recognizer_set_spk_model(VoskRecognizer *recognizer, VoskSpkModel *spk_model)"),vosk_recognizer_accept_waveform:s.func("int vosk_recognizer_accept_waveform(VoskRecognizer *recognizer, const char *data, int length)"),vosk_recognizer_result:s.func("const char *vosk_recognizer_result(VoskRecognizer *recognizer)"),vosk_recognizer_final_result:s.func("const char *vosk_recognizer_final_result(VoskRecognizer *recognizer)"),vosk_recognizer_partial_result:s.func("const char *vosk_recognizer_partial_result(VoskRecognizer *recognizer)"),vosk_recognizer_reset:s.func("void vosk_recognizer_reset(VoskRecognizer *recognizer)")},k=class{constructor(e){this.handle=o.vosk_model_new(e)}free(){o.vosk_model_free(this.handle)}},p=class{constructor(e){this.handle=o.vosk_spk_model_new(e)}free(){o.vosk_spk_model_free(this.handle)}};var g={};_(g,{setLogLevel:()=>h});function h(r){o.vosk_set_log_level(r)}var v={};_(v,{Recognizer:()=>m});var m=class{constructor(e){let{model:n,sampleRate:t}=e;if(e.speakerModel&&e.grammar)throw new Error("grammar and speakerModel cannot be used together for now.");this.handle=e.speakerModel?o.vosk_recognizer_new_spk(n.handle,t,e.speakerModel.handle):e.grammar?o.vosk_recognizer_new_grm(n.handle,t,JSON.stringify(e.grammar)):o.vosk_recognizer_new(n.handle,t)}free(){o.vosk_recognizer_free(this.handle)}setMaxAlternatives(e){return o.vosk_recognizer_set_max_alternatives(this.handle,e),this}setWords(e){return o.vosk_recognizer_set_words(this.handle,Number(e)),this}setPartialWords(e){return o.vosk_recognizer_set_partial_words(this.handle,Number(e)),this}setSpkModel(e){return o.vosk_recognizer_set_spk_model(this.handle,e.handle),this}acceptWaveform(e){return!!o.vosk_recognizer_accept_waveform(this.handle,e,e.length)}acceptWaveformAsync(e){return new Promise((n,t)=>{o.vosk_recognizer_accept_waveform.async(this.handle,e,e.length,function(i,R){i?t(i):n(!!R)})})}resultString(){return o.vosk_recognizer_result(this.handle)}result(){return JSON.parse(o.vosk_recognizer_result(this.handle)||"null")}partialResult(){return JSON.parse(o.vosk_recognizer_partial_result(this.handle)||"null")}finalResult(){return JSON.parse(o.vosk_recognizer_final_result(this.handle)||"null")}reset(){return o.vosk_recognizer_reset(this.handle),this}};var y={...u,...g,...v};0&&(module.exports={Model,Recognizer,SpeakerModel,libvosk,setLogLevel});