osense-vad 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +403 -0
  3. package/dist/common/asset-path.d.ts +2 -0
  4. package/dist/common/asset-path.d.ts.map +1 -0
  5. package/dist/common/asset-path.js +17 -0
  6. package/dist/common/asset-path.js.map +1 -0
  7. package/dist/common/default-model-fetcher.d.ts +2 -0
  8. package/dist/common/default-model-fetcher.d.ts.map +1 -0
  9. package/dist/common/default-model-fetcher.js +8 -0
  10. package/dist/common/default-model-fetcher.js.map +1 -0
  11. package/dist/common/frame-processor.d.ts +86 -0
  12. package/dist/common/frame-processor.d.ts.map +1 -0
  13. package/dist/common/frame-processor.js +180 -0
  14. package/dist/common/frame-processor.js.map +1 -0
  15. package/dist/common/index.d.ts +13 -0
  16. package/dist/common/index.d.ts.map +1 -0
  17. package/dist/common/index.js +53 -0
  18. package/dist/common/index.js.map +1 -0
  19. package/dist/common/logging.d.ts +8 -0
  20. package/dist/common/logging.d.ts.map +1 -0
  21. package/dist/common/logging.js +16 -0
  22. package/dist/common/logging.js.map +1 -0
  23. package/dist/common/messages.d.ts +10 -0
  24. package/dist/common/messages.d.ts.map +1 -0
  25. package/dist/common/messages.js +14 -0
  26. package/dist/common/messages.js.map +1 -0
  27. package/dist/common/models/common.d.ts +14 -0
  28. package/dist/common/models/common.d.ts.map +1 -0
  29. package/dist/common/models/common.js +3 -0
  30. package/dist/common/models/common.js.map +1 -0
  31. package/dist/common/models/index.d.ts +9 -0
  32. package/dist/common/models/index.d.ts.map +1 -0
  33. package/dist/common/models/index.js +11 -0
  34. package/dist/common/models/index.js.map +1 -0
  35. package/dist/common/models/legacy.d.ts +14 -0
  36. package/dist/common/models/legacy.d.ts.map +1 -0
  37. package/dist/common/models/legacy.js +52 -0
  38. package/dist/common/models/legacy.js.map +1 -0
  39. package/dist/common/models/v5.d.ts +13 -0
  40. package/dist/common/models/v5.d.ts.map +1 -0
  41. package/dist/common/models/v5.js +45 -0
  42. package/dist/common/models/v5.js.map +1 -0
  43. package/dist/common/models/v6.d.ts +22 -0
  44. package/dist/common/models/v6.d.ts.map +1 -0
  45. package/dist/common/models/v6.js +54 -0
  46. package/dist/common/models/v6.js.map +1 -0
  47. package/dist/common/non-real-time-vad.d.ts +23 -0
  48. package/dist/common/non-real-time-vad.d.ts.map +1 -0
  49. package/dist/common/non-real-time-vad.js +127 -0
  50. package/dist/common/non-real-time-vad.js.map +1 -0
  51. package/dist/common/resampler.d.ts +16 -0
  52. package/dist/common/resampler.d.ts.map +1 -0
  53. package/dist/common/resampler.js +63 -0
  54. package/dist/common/resampler.js.map +1 -0
  55. package/dist/common/utils.d.ts +8 -0
  56. package/dist/common/utils.d.ts.map +1 -0
  57. package/dist/common/utils.js +118 -0
  58. package/dist/common/utils.js.map +1 -0
  59. package/dist/index.d.ts +13 -0
  60. package/dist/index.d.ts.map +1 -0
  61. package/dist/index.js +74 -0
  62. package/dist/index.js.map +1 -0
  63. package/dist/real-time-vad.d.ts +63 -0
  64. package/dist/real-time-vad.d.ts.map +1 -0
  65. package/dist/real-time-vad.js +171 -0
  66. package/dist/real-time-vad.js.map +1 -0
  67. package/dist/silero_vad_legacy.onnx +0 -0
  68. package/dist/silero_vad_v5.onnx +0 -0
  69. package/package.json +66 -0
  70. package/silero_vad_legacy.onnx +0 -0
  71. package/silero_vad_v5.onnx +0 -0
  72. package/silero_vad_v6.onnx +0 -0
@@ -0,0 +1,171 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RealTimeVAD = exports.DEFAULT_MODEL = void 0;
4
+ exports.getDefaultRealTimeVADOptions = getDefaultRealTimeVADOptions;
5
+ const frame_processor_1 = require("./common/frame-processor");
6
+ const messages_1 = require("./common/messages");
7
+ const models_1 = require("./common/models");
8
+ const resampler_1 = require("./common/resampler");
9
+ exports.DEFAULT_MODEL = "v6";
10
+ /**
11
+ * Build default options based on chosen model
12
+ */
13
+ function getDefaultRealTimeVADOptions(model = exports.DEFAULT_MODEL) {
14
+ const frameOpts = model === "v6"
15
+ ? frame_processor_1.defaultV6FrameProcessorOptions
16
+ : model === "v5"
17
+ ? frame_processor_1.defaultV5FrameProcessorOptions
18
+ : frame_processor_1.defaultLegacyFrameProcessorOptions;
19
+ return {
20
+ ...frameOpts,
21
+ sampleRate: 16000,
22
+ onFrameProcessed: () => { },
23
+ onVADMisfire: () => {
24
+ /* no-op */
25
+ },
26
+ onSpeechStart: () => {
27
+ /* no-op */
28
+ },
29
+ onSpeechRealStart: () => {
30
+ /* no-op */
31
+ },
32
+ onSpeechEnd: () => {
33
+ /* no-op */
34
+ },
35
+ ortConfig: undefined,
36
+ model,
37
+ };
38
+ }
39
+ /**
40
+ * RealTimeVAD processes raw audio buffers, frames, and emits events
41
+ */
42
+ class RealTimeVAD {
43
+ /**
44
+ * Construct a new instance with provided options and loaded model
45
+ */
46
+ constructor(options, modelInstance) {
47
+ this.options = options;
48
+ this.buffer = new Float32Array(0);
49
+ this.active = false;
50
+ this.resampler = null;
51
+ /** Handle events emitted by the frame processor */
52
+ this.handleEvent = (ev) => {
53
+ switch (ev.msg) {
54
+ case messages_1.Message.FrameProcessed:
55
+ this.options.onFrameProcessed(ev.probs, ev.frame);
56
+ break;
57
+ case messages_1.Message.SpeechStart:
58
+ this.options.onSpeechStart();
59
+ break;
60
+ case messages_1.Message.SpeechRealStart:
61
+ this.options.onSpeechRealStart();
62
+ break;
63
+ case messages_1.Message.VADMisfire:
64
+ this.options.onVADMisfire();
65
+ break;
66
+ case messages_1.Message.SpeechEnd:
67
+ this.options.onSpeechEnd(ev.audio);
68
+ break;
69
+ }
70
+ };
71
+ this.modelInstance = modelInstance;
72
+ this.frameSize = options.frameSamples;
73
+ this.frameProcessor = new frame_processor_1.FrameProcessor(modelInstance.process, modelInstance.reset_state, {
74
+ frameSamples: options.frameSamples,
75
+ positiveSpeechThreshold: options.positiveSpeechThreshold,
76
+ negativeSpeechThreshold: options.negativeSpeechThreshold,
77
+ redemptionFrames: options.redemptionFrames,
78
+ preSpeechPadFrames: options.preSpeechPadFrames,
79
+ minSpeechFrames: options.minSpeechFrames,
80
+ submitUserSpeechOnPause: options.submitUserSpeechOnPause,
81
+ });
82
+ if (options.sampleRate > 16000) {
83
+ this.resampler = new resampler_1.Resampler({
84
+ nativeSampleRate: options.sampleRate,
85
+ targetSampleRate: 16000,
86
+ targetFrameSize: this.frameSize,
87
+ });
88
+ }
89
+ }
90
+ /**
91
+ * Create and initialize a RealTimeVAD instance
92
+ */
93
+ static async new(ort, modelFetcher, opts = {}) {
94
+ const fullOpts = {
95
+ ...getDefaultRealTimeVADOptions(opts.model),
96
+ ...opts,
97
+ };
98
+ (0, frame_processor_1.validateOptions)(fullOpts);
99
+ if (fullOpts.ortConfig)
100
+ fullOpts.ortConfig(ort);
101
+ const modelVersion = fullOpts.model || exports.DEFAULT_MODEL;
102
+ const factory = modelVersion === "v6"
103
+ ? models_1.SileroV6.new
104
+ : modelVersion === "v5"
105
+ ? models_1.SileroV5.new
106
+ : models_1.SileroLegacy.new;
107
+ const modelInstance = await factory(ort, modelFetcher);
108
+ return new RealTimeVAD(fullOpts, modelInstance);
109
+ }
110
+ /** Start processing incoming frames */
111
+ start() {
112
+ this.active = true;
113
+ this.frameProcessor.resume();
114
+ }
115
+ /** Pause processing; may emit end-segment on pause */
116
+ pause() {
117
+ this.active = false;
118
+ this.frameProcessor.pause(this.handleEvent);
119
+ }
120
+ /** Feed raw audio (any sample rate) into the VAD */
121
+ async processAudio(audioData) {
122
+ if (!this.active)
123
+ return;
124
+ let data = audioData;
125
+ if (this.resampler) {
126
+ const chunks = [];
127
+ for await (const frame of this.resampler.stream(audioData)) {
128
+ chunks.push(frame);
129
+ }
130
+ data = new Float32Array(chunks.reduce((sum, c) => sum + c.length, 0));
131
+ let off = 0;
132
+ for (const c of chunks) {
133
+ data.set(c, off);
134
+ off += c.length;
135
+ }
136
+ }
137
+ // append to internal buffer
138
+ const tmp = new Float32Array(this.buffer.length + data.length);
139
+ tmp.set(this.buffer);
140
+ tmp.set(data, this.buffer.length);
141
+ this.buffer = tmp;
142
+ // process complete frames
143
+ while (this.buffer.length >= this.frameSize) {
144
+ const frame = this.buffer.subarray(0, this.frameSize);
145
+ this.buffer = this.buffer.subarray(this.frameSize);
146
+ await this.frameProcessor.process(frame, this.handleEvent);
147
+ }
148
+ }
149
+ /** Flush any remaining audio and end segment */
150
+ async flush() {
151
+ if (this.buffer.length > 0 && this.buffer.length < this.frameSize) {
152
+ const pad = new Float32Array(this.frameSize);
153
+ pad.set(this.buffer);
154
+ await this.frameProcessor.process(pad, this.handleEvent);
155
+ }
156
+ this.frameProcessor.endSegment(this.handleEvent);
157
+ this.buffer = new Float32Array(0);
158
+ }
159
+ /** Reset internal state */
160
+ reset() {
161
+ this.buffer = new Float32Array(0);
162
+ this.modelInstance.reset_state();
163
+ }
164
+ /** Clean up resources */
165
+ destroy() {
166
+ this.pause();
167
+ this.reset();
168
+ }
169
+ }
170
+ exports.RealTimeVAD = RealTimeVAD;
171
+ //# sourceMappingURL=real-time-vad.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"real-time-vad.js","sourceRoot":"","sources":["../src/real-time-vad.ts"],"names":[],"mappings":"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"}
Binary file
Binary file
package/package.json ADDED
@@ -0,0 +1,66 @@
1
+ {
2
+ "name": "osense-vad",
3
+ "version": "1.0.0",
4
+ "description": "A Node.js library for Voice Activity Detection using Silero VAD",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "scripts": {
8
+ "build": "./scripts/build.sh",
9
+ "test": "mocha test/*.spec.js",
10
+ "clean": "rm -rf dist"
11
+ },
12
+ "keywords": [
13
+ "vad",
14
+ "voice-activity-detection",
15
+ "silero",
16
+ "audio",
17
+ "speech",
18
+ "onnx"
19
+ ],
20
+ "author": {
21
+ "name": "Agent Voice Response",
22
+ "email": "info@agentvoiceresponse.com",
23
+ "url": "https://github.com/agentvoiceresponse"
24
+ },
25
+ "license": "MIT",
26
+ "dependencies": {
27
+ "onnxruntime-node": "^1.22.0-rev"
28
+ },
29
+ "devDependencies": {
30
+ "@eslint/eslintrc": "^3.3.1",
31
+ "@eslint/js": "^9.28.0",
32
+ "@types/mocha": "^10.0.1",
33
+ "@types/node": "^22.15.30",
34
+ "@typescript-eslint/eslint-plugin": "^8.34.0",
35
+ "@typescript-eslint/parser": "^8.34.0",
36
+ "chai": "^4.3.7",
37
+ "eslint": "^9.28.0",
38
+ "globals": "^16.2.0",
39
+ "mocha": "^10.2.0",
40
+ "sinon": "^15.0.1",
41
+ "typescript": "^5.8.3",
42
+ "wav-decoder": "^1.3.0"
43
+ },
44
+ "files": [
45
+ "dist/**/*",
46
+ "silero_vad_v6.onnx",
47
+ "silero_vad_v5.onnx",
48
+ "silero_vad_legacy.onnx",
49
+ "README.md",
50
+ "LICENSE"
51
+ ],
52
+ "engines": {
53
+ "node": ">=16.0.0"
54
+ },
55
+ "repository": {
56
+ "type": "git",
57
+ "url": "git+https://github.com/agentvoiceresponse/avr-vad.git"
58
+ },
59
+ "bugs": {
60
+ "url": "https://github.com/agentvoiceresponse/avr-vad/issues"
61
+ },
62
+ "homepage": "https://github.com/agentvoiceresponse/avr-vad#readme",
63
+ "publishConfig": {
64
+ "access": "public"
65
+ }
66
+ }
Binary file
Binary file
Binary file