ug-js-sdk 3.0.47 → 3.0.48

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.
@@ -10,12 +10,12 @@ export declare class VADManager extends EventEmitter implements IVADManager {
10
10
  private silenceTimeoutMs;
11
11
  private positiveSpeechThreshold;
12
12
  private negativeSpeechThreshold;
13
- private minSpeechFrames;
13
+ private minSpeechMs;
14
14
  private isDisposed;
15
- constructor(silenceTimeoutMs?: number, positiveSpeechThreshold?: number, negativeSpeechThreshold?: number, minSpeechFrames?: number);
15
+ private currentStream;
16
+ constructor(silenceTimeoutMs?: number, positiveSpeechThreshold?: number, negativeSpeechThreshold?: number, minSpeechMs?: number);
16
17
  /**
17
- * Initialize the VAD model. Optionally accepts a MediaStream to avoid mic conflicts.
18
- * If stream is provided, it will be used by MicVAD; otherwise, MicVAD will acquire its own.
18
+ * Initialize the VAD model. Accepts a MediaStream to use for voice activity detection.
19
19
  */
20
20
  initialize(stream: MediaStream): Promise<void>;
21
21
  startAnalysis(): void;
@@ -11,31 +11,39 @@ export class VADManager extends EventEmitter {
11
11
  silenceTimeoutMs;
12
12
  positiveSpeechThreshold;
13
13
  negativeSpeechThreshold;
14
- minSpeechFrames;
14
+ minSpeechMs;
15
15
  isDisposed = false;
16
- constructor(silenceTimeoutMs = 300, positiveSpeechThreshold = 0.5, negativeSpeechThreshold = 0.35, minSpeechFrames = 3) {
16
+ currentStream = null;
17
+ constructor(silenceTimeoutMs = 300, positiveSpeechThreshold = 0.5, negativeSpeechThreshold = 0.35, minSpeechMs = 100 // Minimum speech duration in milliseconds
18
+ ) {
17
19
  const logger = new DefaultLogger({ category: '🎤 VADManager', style: StylePurple });
18
20
  super(logger);
19
21
  this.silenceTimeoutMs = silenceTimeoutMs;
20
22
  this.positiveSpeechThreshold = positiveSpeechThreshold;
21
23
  this.negativeSpeechThreshold = negativeSpeechThreshold;
22
- this.minSpeechFrames = minSpeechFrames;
24
+ this.minSpeechMs = minSpeechMs;
23
25
  }
24
26
  /**
25
- * Initialize the VAD model. Optionally accepts a MediaStream to avoid mic conflicts.
26
- * If stream is provided, it will be used by MicVAD; otherwise, MicVAD will acquire its own.
27
+ * Initialize the VAD model. Accepts a MediaStream to use for voice activity detection.
27
28
  */
28
29
  async initialize(stream) {
29
30
  if (this.isDisposed)
30
31
  return;
32
+ this.currentStream = stream;
31
33
  this.logger.debug('You may need to close the browser console for this to initialize');
32
34
  const vadModel = await MicVAD.new({
33
- stream,
35
+ // New API uses callbacks for stream management
36
+ getStream: async () => this.currentStream,
37
+ pauseStream: async () => {
38
+ // We don't stop the stream since it's managed externally
39
+ },
40
+ resumeStream: async (existingStream) => existingStream,
41
+ startOnLoad: false,
34
42
  baseAssetPath: '/static/binaries/', // Serve those locally
35
43
  onnxWASMBasePath: '/static/binaries/', // Serve those locally
36
44
  positiveSpeechThreshold: this.positiveSpeechThreshold,
37
45
  negativeSpeechThreshold: this.negativeSpeechThreshold,
38
- minSpeechFrames: this.minSpeechFrames,
46
+ minSpeechMs: this.minSpeechMs,
39
47
  onSpeechStart: async () => {
40
48
  if (this.isDisposed)
41
49
  return;
@@ -76,7 +84,7 @@ export class VADManager extends EventEmitter {
76
84
  return;
77
85
  }
78
86
  this.vadModel = vadModel;
79
- this.logger.debug(`VAD Manager initialized (MicVAD) with silenceTimeoutMs=${this.silenceTimeoutMs}, positiveSpeechThreshold=${this.positiveSpeechThreshold}, negativeSpeechThreshold=${this.negativeSpeechThreshold}, minSpeechFrames=${this.minSpeechFrames}`);
87
+ this.logger.debug(`VAD Manager initialized (MicVAD) with silenceTimeoutMs=${this.silenceTimeoutMs}, positiveSpeechThreshold=${this.positiveSpeechThreshold}, negativeSpeechThreshold=${this.negativeSpeechThreshold}, minSpeechMs=${this.minSpeechMs}`);
80
88
  }
81
89
  startAnalysis() {
82
90
  if (this.vadModel) {
@@ -117,6 +125,7 @@ export class VADManager extends EventEmitter {
117
125
  }
118
126
  this.vadModel = null;
119
127
  }
128
+ this.currentStream = null;
120
129
  this.clearSilenceTimer();
121
130
  this.removeAllListeners();
122
131
  this.logger.debug('VADManager disposed');
@@ -1 +1 @@
1
- {"version":3,"file":"VADManager.js","sourceRoot":"","sources":["../../../src/ug-core/user-input-manager/VADManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VADManager.js","sourceRoot":"","sources":["../../../src/ug-core/user-input-manager/VADManager.ts"],"names":[],"mappings":"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"}