@framers/agentos 0.1.108 → 0.1.110
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.
- package/dist/orchestration/runtime/GraphRuntime.d.ts.map +1 -1
- package/dist/orchestration/runtime/GraphRuntime.js +11 -4
- package/dist/orchestration/runtime/GraphRuntime.js.map +1 -1
- package/dist/orchestration/runtime/safeExpressionEvaluator.d.ts.map +1 -1
- package/dist/orchestration/runtime/safeExpressionEvaluator.js +35 -16
- package/dist/orchestration/runtime/safeExpressionEvaluator.js.map +1 -1
- package/dist/voice-pipeline/AcousticEndpointDetector.d.ts +95 -20
- package/dist/voice-pipeline/AcousticEndpointDetector.d.ts.map +1 -1
- package/dist/voice-pipeline/AcousticEndpointDetector.js +110 -24
- package/dist/voice-pipeline/AcousticEndpointDetector.js.map +1 -1
- package/dist/voice-pipeline/HardCutBargeinHandler.d.ts +66 -15
- package/dist/voice-pipeline/HardCutBargeinHandler.d.ts.map +1 -1
- package/dist/voice-pipeline/HardCutBargeinHandler.js +65 -13
- package/dist/voice-pipeline/HardCutBargeinHandler.js.map +1 -1
- package/dist/voice-pipeline/HeuristicEndpointDetector.d.ts +116 -42
- package/dist/voice-pipeline/HeuristicEndpointDetector.d.ts.map +1 -1
- package/dist/voice-pipeline/HeuristicEndpointDetector.js +159 -52
- package/dist/voice-pipeline/HeuristicEndpointDetector.js.map +1 -1
- package/dist/voice-pipeline/SoftFadeBargeinHandler.d.ts +89 -24
- package/dist/voice-pipeline/SoftFadeBargeinHandler.d.ts.map +1 -1
- package/dist/voice-pipeline/SoftFadeBargeinHandler.js +74 -20
- package/dist/voice-pipeline/SoftFadeBargeinHandler.js.map +1 -1
- package/dist/voice-pipeline/VoiceInterruptError.d.ts +68 -10
- package/dist/voice-pipeline/VoiceInterruptError.d.ts.map +1 -1
- package/dist/voice-pipeline/VoiceInterruptError.js +53 -6
- package/dist/voice-pipeline/VoiceInterruptError.js.map +1 -1
- package/dist/voice-pipeline/VoicePipelineOrchestrator.d.ts +190 -39
- package/dist/voice-pipeline/VoicePipelineOrchestrator.d.ts.map +1 -1
- package/dist/voice-pipeline/VoicePipelineOrchestrator.js +266 -53
- package/dist/voice-pipeline/VoicePipelineOrchestrator.js.map +1 -1
- package/dist/voice-pipeline/WebSocketStreamTransport.d.ts +135 -43
- package/dist/voice-pipeline/WebSocketStreamTransport.d.ts.map +1 -1
- package/dist/voice-pipeline/WebSocketStreamTransport.js +109 -47
- package/dist/voice-pipeline/WebSocketStreamTransport.js.map +1 -1
- package/dist/voice-pipeline/index.d.ts +34 -1
- package/dist/voice-pipeline/index.d.ts.map +1 -1
- package/dist/voice-pipeline/index.js +41 -1
- package/dist/voice-pipeline/index.js.map +1 -1
- package/dist/voice-pipeline/types.d.ts +432 -106
- package/dist/voice-pipeline/types.d.ts.map +1 -1
- package/dist/voice-pipeline/types.js +21 -9
- package/dist/voice-pipeline/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GraphRuntime.d.ts","sourceRoot":"","sources":["../../../src/orchestration/runtime/GraphRuntime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAyB,MAAM,gBAAgB,CAAC;AAEpF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAc,MAAM,mCAAmC,CAAC;AAGtF,OAAO,EAAE,YAAY,EAA4B,MAAM,mBAAmB,CAAC;AAO3E;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,oDAAoD;IACpD,eAAe,EAAE,gBAAgB,CAAC;IAClC,iEAAiE;IACjE,YAAY,EAAE,YAAY,CAAC;IAC3B;;;;OAIG;IACH,eAAe,CAAC,EAAE;QAChB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;YAAE,OAAO,CAAC,EAAE,KAAK,CAAC;gBAAE,EAAE,CAAC,EAAE,MAAM,CAAC;gBAAC,IAAI,CAAC,EAAE,MAAM,CAAA;aAAE,CAAC,CAAA;SAAE,CAAC,CAAC;KAC1G,CAAC;IACF;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC;AAMD;;;;;;;;;;;;GAYG;AACH,qBAAa,YAAY;IAIX,OAAO,CAAC,QAAQ,CAAC,MAAM;IAHnC;;OAEG;gBAC0B,MAAM,EAAE,kBAAkB;IAMvD;;;;;;;;;OASG;IACG,MAAM,CAAC,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ7E;;;;;;;;;;;;;OAaG;IACI,MAAM,CAAC,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,OAAO,GAAG,cAAc,CAAC,UAAU,CAAC;IAqMxF;;;;;;;;;;;;OAYG;IACG,MAAM,CAAC,KAAK,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA4BxF;;;;;;;;;;;;OAYG;YACY,sBAAsB;IA4JrC;;;;;;;;;;;OAWG;YACW,aAAa;
|
|
1
|
+
{"version":3,"file":"GraphRuntime.d.ts","sourceRoot":"","sources":["../../../src/orchestration/runtime/GraphRuntime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAyB,MAAM,gBAAgB,CAAC;AAEpF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAc,MAAM,mCAAmC,CAAC;AAGtF,OAAO,EAAE,YAAY,EAA4B,MAAM,mBAAmB,CAAC;AAO3E;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,oDAAoD;IACpD,eAAe,EAAE,gBAAgB,CAAC;IAClC,iEAAiE;IACjE,YAAY,EAAE,YAAY,CAAC;IAC3B;;;;OAIG;IACH,eAAe,CAAC,EAAE;QAChB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;YAAE,OAAO,CAAC,EAAE,KAAK,CAAC;gBAAE,EAAE,CAAC,EAAE,MAAM,CAAC;gBAAC,IAAI,CAAC,EAAE,MAAM,CAAA;aAAE,CAAC,CAAA;SAAE,CAAC,CAAC;KAC1G,CAAC;IACF;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC;AAMD;;;;;;;;;;;;GAYG;AACH,qBAAa,YAAY;IAIX,OAAO,CAAC,QAAQ,CAAC,MAAM;IAHnC;;OAEG;gBAC0B,MAAM,EAAE,kBAAkB;IAMvD;;;;;;;;;OASG;IACG,MAAM,CAAC,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ7E;;;;;;;;;;;;;OAaG;IACI,MAAM,CAAC,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,OAAO,GAAG,cAAc,CAAC,UAAU,CAAC;IAqMxF;;;;;;;;;;;;OAYG;IACG,MAAM,CAAC,KAAK,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA4BxF;;;;;;;;;;;;OAYG;YACY,sBAAsB;IA4JrC;;;;;;;;;;;OAWG;YACW,aAAa;IAsF3B;;;;;;;;;;OAUG;YACW,cAAc;IAgC5B,OAAO,CAAC,wBAAwB;IAWhC,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,qBAAqB;CAK9B"}
|
|
@@ -416,12 +416,19 @@ export class GraphRuntime {
|
|
|
416
416
|
}
|
|
417
417
|
else {
|
|
418
418
|
const expressionResult = evaluateConditionExpression(edge.condition.expr, state);
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
else if (expressionResult === true) {
|
|
419
|
+
const resultStr = String(expressionResult);
|
|
420
|
+
// Expression evaluated to boolean true/false — use edge target directly
|
|
421
|
+
if (resultStr === 'true') {
|
|
423
422
|
resolvedTarget = edge.target;
|
|
424
423
|
}
|
|
424
|
+
else if (resultStr === 'false') {
|
|
425
|
+
// Condition is false — do not add this edge's target
|
|
426
|
+
resolvedTarget = undefined;
|
|
427
|
+
}
|
|
428
|
+
else {
|
|
429
|
+
// Expression returned a route name string (e.g., 'nodeA')
|
|
430
|
+
resolvedTarget = resultStr;
|
|
431
|
+
}
|
|
425
432
|
}
|
|
426
433
|
// Only add the target if the condition resolved to this edge's target.
|
|
427
434
|
if (resolvedTarget === edge.target && !targets.includes(resolvedTarget)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GraphRuntime.js","sourceRoot":"","sources":["../../../src/orchestration/runtime/GraphRuntime.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"GraphRuntime.js","sourceRoot":"","sources":["../../../src/orchestration/runtime/GraphRuntime.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safeExpressionEvaluator.d.ts","sourceRoot":"","sources":["../../../src/orchestration/runtime/safeExpressionEvaluator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"safeExpressionEvaluator.d.ts","sourceRoot":"","sources":["../../../src/orchestration/runtime/safeExpressionEvaluator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AA4JjD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,MAAM,CA8BvF"}
|
|
@@ -138,6 +138,23 @@ function evaluateSingleComparison(expr, refs) {
|
|
|
138
138
|
// No comparison operator found — just resolve the value
|
|
139
139
|
return parseToken(trimmed, refs);
|
|
140
140
|
}
|
|
141
|
+
/**
|
|
142
|
+
* Evaluate a boolean expression (with `&&`/`||` connectives) to a boolean.
|
|
143
|
+
*
|
|
144
|
+
* @param expr - The expression (without ternary).
|
|
145
|
+
* @param refs - Resolved partition references.
|
|
146
|
+
* @returns Whether the expression evaluates to truthy.
|
|
147
|
+
*/
|
|
148
|
+
function evaluateBooleanExpression(expr, refs) {
|
|
149
|
+
const orParts = expr.split('||').map(s => s.trim());
|
|
150
|
+
for (const orPart of orParts) {
|
|
151
|
+
const andParts = orPart.split('&&').map(s => s.trim());
|
|
152
|
+
const allTrue = andParts.every(part => Boolean(evaluateSingleComparison(part, refs)));
|
|
153
|
+
if (allTrue)
|
|
154
|
+
return true;
|
|
155
|
+
}
|
|
156
|
+
return false;
|
|
157
|
+
}
|
|
141
158
|
/**
|
|
142
159
|
* Safely evaluate a graph routing expression against state.
|
|
143
160
|
*
|
|
@@ -157,25 +174,27 @@ function evaluateSingleComparison(expr, refs) {
|
|
|
157
174
|
*/
|
|
158
175
|
export function safeEvaluateExpression(expr, state) {
|
|
159
176
|
try {
|
|
177
|
+
// Reject obviously invalid syntax (template markers, unbalanced braces, etc.)
|
|
178
|
+
if (/\{\{|\}\}/.test(expr))
|
|
179
|
+
return 'false';
|
|
160
180
|
const refs = resolveAllRefs(expr, state);
|
|
181
|
+
// Handle ternary operator: `condition ? trueValue : falseValue`
|
|
182
|
+
const ternaryMatch = expr.match(/^(.+?)\s*\?\s*(.+?)\s*:\s*(.+)$/);
|
|
183
|
+
if (ternaryMatch) {
|
|
184
|
+
const [, condExpr, trueExpr, falseExpr] = ternaryMatch;
|
|
185
|
+
const condResult = evaluateBooleanExpression(condExpr.trim(), refs);
|
|
186
|
+
const branch = condResult ? trueExpr.trim() : falseExpr.trim();
|
|
187
|
+
const resolved = parseToken(branch, refs);
|
|
188
|
+
return String(resolved ?? 'false');
|
|
189
|
+
}
|
|
161
190
|
// Split on `||` first (lower precedence), then `&&` (higher precedence)
|
|
162
|
-
const
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
const
|
|
166
|
-
|
|
167
|
-
return Boolean(result);
|
|
168
|
-
});
|
|
169
|
-
if (allTrue) {
|
|
170
|
-
// If the expression was a simple value (no operators), return the resolved value
|
|
171
|
-
if (orParts.length === 1 && andParts.length === 1) {
|
|
172
|
-
const result = evaluateSingleComparison(expr, refs);
|
|
173
|
-
return String(result ?? 'false');
|
|
174
|
-
}
|
|
175
|
-
return 'true';
|
|
176
|
-
}
|
|
191
|
+
const result = evaluateBooleanExpression(expr, refs);
|
|
192
|
+
// If the expression had no boolean connectives, return the resolved value directly
|
|
193
|
+
if (!expr.includes('||') && !expr.includes('&&')) {
|
|
194
|
+
const singleResult = evaluateSingleComparison(expr, refs);
|
|
195
|
+
return String(singleResult ?? 'false');
|
|
177
196
|
}
|
|
178
|
-
return 'false';
|
|
197
|
+
return result ? 'true' : 'false';
|
|
179
198
|
}
|
|
180
199
|
catch {
|
|
181
200
|
return 'false';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safeExpressionEvaluator.js","sourceRoot":"","sources":["../../../src/orchestration/runtime/safeExpressionEvaluator.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"safeExpressionEvaluator.js","sourceRoot":"","sources":["../../../src/orchestration/runtime/safeExpressionEvaluator.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,27 +6,74 @@
|
|
|
6
6
|
* and relies solely on the duration of post-speech silence to decide when the user
|
|
7
7
|
* has finished speaking.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
9
|
+
* ## How it works
|
|
10
|
+
*
|
|
11
|
+
* This detector delegates all silence timing to a {@link SilenceDetector} instance
|
|
12
|
+
* (from `core/audio/`). The SilenceDetector maintains an internal timer that
|
|
13
|
+
* starts when `handleSpeechEnd()` is called and fires `'utterance_end_detected'`
|
|
14
|
+
* when silence exceeds the configured `utteranceEndThresholdMs`. A
|
|
15
|
+
* `handleSpeechStart()` call cancels the timer.
|
|
16
|
+
*
|
|
17
|
+
* ## Energy threshold adaptation
|
|
18
|
+
*
|
|
19
|
+
* The SilenceDetector internally uses adaptive energy thresholds from the
|
|
20
|
+
* {@link AdaptiveVAD}. The VAD continuously recalibrates its speech/silence
|
|
21
|
+
* boundary based on ambient noise levels, so the effective silence threshold
|
|
22
|
+
* adapts to the environment (e.g. coffee shop vs quiet room). This detector
|
|
23
|
+
* does not perform its own energy analysis -- it trusts the upstream VAD's
|
|
24
|
+
* speech_start/speech_end decisions.
|
|
25
|
+
*
|
|
26
|
+
* ## When to use
|
|
27
|
+
*
|
|
28
|
+
* Use this detector when:
|
|
29
|
+
* - The STT provider does not produce reliable punctuation.
|
|
30
|
+
* - You want the simplest possible endpoint detection with no linguistic analysis.
|
|
31
|
+
* - Latency tolerance is higher (the full `utteranceEndThresholdMs` is always
|
|
32
|
+
* consumed, unlike the {@link HeuristicEndpointDetector} which can fire
|
|
33
|
+
* immediately on terminal punctuation).
|
|
34
|
+
*
|
|
35
|
+
* @see {@link HeuristicEndpointDetector} for the rule-based alternative with
|
|
36
|
+
* punctuation-triggered fast path.
|
|
37
|
+
* @see {@link IEndpointDetector} for the interface contract.
|
|
38
|
+
* @see {@link SilenceDetector} for the underlying silence timing logic.
|
|
39
|
+
*
|
|
40
|
+
* ## Events emitted
|
|
41
|
+
*
|
|
42
|
+
* | Event | Payload | Description |
|
|
43
|
+
* |-------------------|--------------------------|---------------------------------------------|
|
|
44
|
+
* | `'turn_complete'` | {@link TurnCompleteEvent} | Silence exceeded `utteranceEndThresholdMs`. |
|
|
45
|
+
* | `'speech_start'` | *(none)* | Re-emitted from incoming VAD event. |
|
|
13
46
|
*/
|
|
14
47
|
import { EventEmitter } from 'node:events';
|
|
15
48
|
import type { IEndpointDetector, VadEvent, TranscriptEvent } from './types.js';
|
|
16
49
|
/**
|
|
17
50
|
* Constructor options for {@link AcousticEndpointDetector}.
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```typescript
|
|
54
|
+
* const detector = new AcousticEndpointDetector({
|
|
55
|
+
* significantPauseThresholdMs: 1000,
|
|
56
|
+
* utteranceEndThresholdMs: 2000,
|
|
57
|
+
* });
|
|
58
|
+
* ```
|
|
18
59
|
*/
|
|
19
60
|
export interface AcousticEndpointDetectorConfig {
|
|
20
61
|
/**
|
|
21
62
|
* Silence duration after speech (ms) that triggers a "significant pause"
|
|
22
63
|
* notification on the underlying {@link SilenceDetector}. Does not directly
|
|
23
|
-
* cause `turn_complete` to fire, but
|
|
64
|
+
* cause `turn_complete` to fire, but can be used by other pipeline components
|
|
65
|
+
* to show a "thinking" indicator.
|
|
24
66
|
* @defaultValue 1500
|
|
25
67
|
*/
|
|
26
68
|
significantPauseThresholdMs?: number;
|
|
27
69
|
/**
|
|
28
70
|
* Silence duration after speech (ms) that triggers `turn_complete` with
|
|
29
|
-
* `reason: 'silence_timeout'`.
|
|
71
|
+
* `reason: 'silence_timeout'`. This is the primary tuning knob for how
|
|
72
|
+
* long the pipeline waits after the user stops speaking.
|
|
73
|
+
*
|
|
74
|
+
* - Lower values (1000-2000 ms): Faster response, but may fire during natural pauses.
|
|
75
|
+
* - Higher values (3000-5000 ms): More tolerant of pauses, but feels sluggish.
|
|
76
|
+
*
|
|
30
77
|
* @defaultValue 3000
|
|
31
78
|
*/
|
|
32
79
|
utteranceEndThresholdMs?: number;
|
|
@@ -38,26 +85,45 @@ export interface AcousticEndpointDetectorConfig {
|
|
|
38
85
|
* `speech_end` events start the silence clock; `speech_start` events cancel
|
|
39
86
|
* any pending turn-complete emission. Transcript content is completely ignored.
|
|
40
87
|
*
|
|
88
|
+
* @see {@link IEndpointDetector} for the interface contract.
|
|
89
|
+
* @see {@link HeuristicEndpointDetector} for the heuristic alternative.
|
|
90
|
+
*
|
|
41
91
|
* @example
|
|
42
|
-
* ```
|
|
92
|
+
* ```typescript
|
|
43
93
|
* const detector = new AcousticEndpointDetector({ utteranceEndThresholdMs: 2000 });
|
|
44
|
-
* detector.on('turn_complete', (event) =>
|
|
45
|
-
*
|
|
94
|
+
* detector.on('turn_complete', (event) => {
|
|
95
|
+
* console.log(`Turn done after ${event.durationMs}ms of speech`);
|
|
96
|
+
* });
|
|
97
|
+
* detector.pushVadEvent({ type: 'speech_start', timestamp: Date.now() });
|
|
98
|
+
* detector.pushVadEvent({ type: 'speech_end', timestamp: Date.now() + 500 });
|
|
99
|
+
* // -> After 2000ms of silence, 'turn_complete' fires with reason 'silence_timeout'
|
|
46
100
|
* ```
|
|
47
101
|
*/
|
|
48
102
|
export declare class AcousticEndpointDetector extends EventEmitter implements IEndpointDetector {
|
|
49
|
-
/**
|
|
103
|
+
/**
|
|
104
|
+
* Detection mode identifier. Always `'acoustic'` for this implementation.
|
|
105
|
+
* @see {@link IEndpointDetector.mode}
|
|
106
|
+
*/
|
|
50
107
|
readonly mode: "acoustic";
|
|
51
|
-
/**
|
|
108
|
+
/**
|
|
109
|
+
* Underlying silence-duration tracker from `core/audio/`.
|
|
110
|
+
* Handles the actual timer management and threshold comparison.
|
|
111
|
+
*/
|
|
52
112
|
private readonly silenceDetector;
|
|
53
113
|
/**
|
|
54
|
-
* Timestamp (ms) when the current speech segment began.
|
|
55
|
-
* `durationMs` in the emitted {@link TurnCompleteEvent}
|
|
114
|
+
* Timestamp (ms) when the current speech segment began. Used to compute
|
|
115
|
+
* `durationMs` in the emitted {@link TurnCompleteEvent} as:
|
|
116
|
+
* `speechEndTimeMs - speechStartTimeMs`.
|
|
117
|
+
*
|
|
118
|
+
* Reset to `null` on each {@link reset} call.
|
|
56
119
|
*/
|
|
57
120
|
private speechStartTimeMs;
|
|
58
121
|
/**
|
|
59
122
|
* Timestamp (ms) when the most recent `speech_end` VAD event was received.
|
|
60
|
-
* Used to calculate `durationMs`
|
|
123
|
+
* Used together with {@link speechStartTimeMs} to calculate `durationMs`
|
|
124
|
+
* for the turn-complete event.
|
|
125
|
+
*
|
|
126
|
+
* Reset to `null` on each {@link reset} call.
|
|
61
127
|
*/
|
|
62
128
|
private speechEndTimeMs;
|
|
63
129
|
/**
|
|
@@ -69,21 +135,30 @@ export declare class AcousticEndpointDetector extends EventEmitter implements IE
|
|
|
69
135
|
/**
|
|
70
136
|
* Converts a {@link VadEvent} into the SilenceDetector's expected API calls.
|
|
71
137
|
*
|
|
72
|
-
* -
|
|
73
|
-
*
|
|
74
|
-
* -
|
|
138
|
+
* - **`speech_start`**: Resets silence state (cancels pending timers) and
|
|
139
|
+
* re-emits `'speech_start'` on this detector for pipeline consumption.
|
|
140
|
+
* - **`speech_end`**: Records the timestamp and starts the silence clock.
|
|
141
|
+
* - **`silence`**: Treated as ongoing non-speech frames, advancing the
|
|
142
|
+
* SilenceDetector's internal timer.
|
|
75
143
|
*
|
|
76
|
-
* @param event - Incoming VAD event.
|
|
144
|
+
* @param event - Incoming VAD event from the upstream voice activity detector.
|
|
77
145
|
*/
|
|
78
146
|
pushVadEvent(event: VadEvent): void;
|
|
79
147
|
/**
|
|
80
|
-
* No-op
|
|
148
|
+
* No-op -- this detector is purely acoustic and does not use transcript content.
|
|
149
|
+
*
|
|
150
|
+
* The method exists solely to satisfy the {@link IEndpointDetector} interface.
|
|
151
|
+
* Calling it has no effect and does not throw.
|
|
81
152
|
*
|
|
82
153
|
* @param _event - Ignored transcript event.
|
|
83
154
|
*/
|
|
84
155
|
pushTranscript(_event: TranscriptEvent): void;
|
|
85
156
|
/**
|
|
86
|
-
* Resets all internal state and
|
|
157
|
+
* Resets all internal state and cancels pending timers.
|
|
158
|
+
*
|
|
159
|
+
* Should be called at the start of each new turn to ensure clean state.
|
|
160
|
+
* This also resets the underlying SilenceDetector, cancelling any pending
|
|
161
|
+
* utterance_end_detected timer.
|
|
87
162
|
*/
|
|
88
163
|
reset(): void;
|
|
89
164
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcousticEndpointDetector.d.ts","sourceRoot":"","sources":["../../src/voice-pipeline/AcousticEndpointDetector.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"AcousticEndpointDetector.d.ts","sourceRoot":"","sources":["../../src/voice-pipeline/AcousticEndpointDetector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,KAAK,EACV,iBAAiB,EACjB,QAAQ,EACR,eAAe,EAEhB,MAAM,YAAY,CAAC;AAMpB;;;;;;;;;;GAUG;AACH,MAAM,WAAW,8BAA8B;IAC7C;;;;;;OAMG;IACH,2BAA2B,CAAC,EAAE,MAAM,CAAC;IAErC;;;;;;;;;OASG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAMD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,wBAAyB,SAAQ,YAAa,YAAW,iBAAiB;IACrF;;;OAGG;IACH,SAAgB,IAAI,EAAG,UAAU,CAAU;IAE3C;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAElD;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB,CAAuB;IAEhD;;;;;;OAMG;IACH,OAAO,CAAC,eAAe,CAAuB;IAM9C;;;;OAIG;gBACS,MAAM,GAAE,8BAAmC;IAuCvD;;;;;;;;;;OAUG;IACI,YAAY,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAwC1C;;;;;;;OAOG;IACI,cAAc,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAUpD;;;;;;OAMG;IACI,KAAK,IAAI,IAAI;CAKrB"}
|
|
@@ -6,10 +6,43 @@
|
|
|
6
6
|
* and relies solely on the duration of post-speech silence to decide when the user
|
|
7
7
|
* has finished speaking.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
9
|
+
* ## How it works
|
|
10
|
+
*
|
|
11
|
+
* This detector delegates all silence timing to a {@link SilenceDetector} instance
|
|
12
|
+
* (from `core/audio/`). The SilenceDetector maintains an internal timer that
|
|
13
|
+
* starts when `handleSpeechEnd()` is called and fires `'utterance_end_detected'`
|
|
14
|
+
* when silence exceeds the configured `utteranceEndThresholdMs`. A
|
|
15
|
+
* `handleSpeechStart()` call cancels the timer.
|
|
16
|
+
*
|
|
17
|
+
* ## Energy threshold adaptation
|
|
18
|
+
*
|
|
19
|
+
* The SilenceDetector internally uses adaptive energy thresholds from the
|
|
20
|
+
* {@link AdaptiveVAD}. The VAD continuously recalibrates its speech/silence
|
|
21
|
+
* boundary based on ambient noise levels, so the effective silence threshold
|
|
22
|
+
* adapts to the environment (e.g. coffee shop vs quiet room). This detector
|
|
23
|
+
* does not perform its own energy analysis -- it trusts the upstream VAD's
|
|
24
|
+
* speech_start/speech_end decisions.
|
|
25
|
+
*
|
|
26
|
+
* ## When to use
|
|
27
|
+
*
|
|
28
|
+
* Use this detector when:
|
|
29
|
+
* - The STT provider does not produce reliable punctuation.
|
|
30
|
+
* - You want the simplest possible endpoint detection with no linguistic analysis.
|
|
31
|
+
* - Latency tolerance is higher (the full `utteranceEndThresholdMs` is always
|
|
32
|
+
* consumed, unlike the {@link HeuristicEndpointDetector} which can fire
|
|
33
|
+
* immediately on terminal punctuation).
|
|
34
|
+
*
|
|
35
|
+
* @see {@link HeuristicEndpointDetector} for the rule-based alternative with
|
|
36
|
+
* punctuation-triggered fast path.
|
|
37
|
+
* @see {@link IEndpointDetector} for the interface contract.
|
|
38
|
+
* @see {@link SilenceDetector} for the underlying silence timing logic.
|
|
39
|
+
*
|
|
40
|
+
* ## Events emitted
|
|
41
|
+
*
|
|
42
|
+
* | Event | Payload | Description |
|
|
43
|
+
* |-------------------|--------------------------|---------------------------------------------|
|
|
44
|
+
* | `'turn_complete'` | {@link TurnCompleteEvent} | Silence exceeded `utteranceEndThresholdMs`. |
|
|
45
|
+
* | `'speech_start'` | *(none)* | Re-emitted from incoming VAD event. |
|
|
13
46
|
*/
|
|
14
47
|
import { EventEmitter } from 'node:events';
|
|
15
48
|
import { SilenceDetector } from '../core/audio/SilenceDetector.js';
|
|
@@ -23,14 +56,23 @@ import { SilenceDetector } from '../core/audio/SilenceDetector.js';
|
|
|
23
56
|
* `speech_end` events start the silence clock; `speech_start` events cancel
|
|
24
57
|
* any pending turn-complete emission. Transcript content is completely ignored.
|
|
25
58
|
*
|
|
59
|
+
* @see {@link IEndpointDetector} for the interface contract.
|
|
60
|
+
* @see {@link HeuristicEndpointDetector} for the heuristic alternative.
|
|
61
|
+
*
|
|
26
62
|
* @example
|
|
27
|
-
* ```
|
|
63
|
+
* ```typescript
|
|
28
64
|
* const detector = new AcousticEndpointDetector({ utteranceEndThresholdMs: 2000 });
|
|
29
|
-
* detector.on('turn_complete', (event) =>
|
|
30
|
-
*
|
|
65
|
+
* detector.on('turn_complete', (event) => {
|
|
66
|
+
* console.log(`Turn done after ${event.durationMs}ms of speech`);
|
|
67
|
+
* });
|
|
68
|
+
* detector.pushVadEvent({ type: 'speech_start', timestamp: Date.now() });
|
|
69
|
+
* detector.pushVadEvent({ type: 'speech_end', timestamp: Date.now() + 500 });
|
|
70
|
+
* // -> After 2000ms of silence, 'turn_complete' fires with reason 'silence_timeout'
|
|
31
71
|
* ```
|
|
32
72
|
*/
|
|
33
73
|
export class AcousticEndpointDetector extends EventEmitter {
|
|
74
|
+
// ---------------------------------------------------------------------------
|
|
75
|
+
// Constructor
|
|
34
76
|
// ---------------------------------------------------------------------------
|
|
35
77
|
/**
|
|
36
78
|
* Creates a new AcousticEndpointDetector.
|
|
@@ -39,30 +81,46 @@ export class AcousticEndpointDetector extends EventEmitter {
|
|
|
39
81
|
*/
|
|
40
82
|
constructor(config = {}) {
|
|
41
83
|
super();
|
|
42
|
-
/**
|
|
84
|
+
/**
|
|
85
|
+
* Detection mode identifier. Always `'acoustic'` for this implementation.
|
|
86
|
+
* @see {@link IEndpointDetector.mode}
|
|
87
|
+
*/
|
|
43
88
|
this.mode = 'acoustic';
|
|
44
89
|
/**
|
|
45
|
-
* Timestamp (ms) when the current speech segment began.
|
|
46
|
-
* `durationMs` in the emitted {@link TurnCompleteEvent}
|
|
90
|
+
* Timestamp (ms) when the current speech segment began. Used to compute
|
|
91
|
+
* `durationMs` in the emitted {@link TurnCompleteEvent} as:
|
|
92
|
+
* `speechEndTimeMs - speechStartTimeMs`.
|
|
93
|
+
*
|
|
94
|
+
* Reset to `null` on each {@link reset} call.
|
|
47
95
|
*/
|
|
48
96
|
this.speechStartTimeMs = null;
|
|
49
97
|
/**
|
|
50
98
|
* Timestamp (ms) when the most recent `speech_end` VAD event was received.
|
|
51
|
-
* Used to calculate `durationMs`
|
|
99
|
+
* Used together with {@link speechStartTimeMs} to calculate `durationMs`
|
|
100
|
+
* for the turn-complete event.
|
|
101
|
+
*
|
|
102
|
+
* Reset to `null` on each {@link reset} call.
|
|
52
103
|
*/
|
|
53
104
|
this.speechEndTimeMs = null;
|
|
105
|
+
// Build SilenceDetector config from our options with sensible defaults
|
|
54
106
|
const sdConfig = {
|
|
55
107
|
significantPauseThresholdMs: config.significantPauseThresholdMs ?? 1500,
|
|
56
108
|
utteranceEndThresholdMs: config.utteranceEndThresholdMs ?? 3000,
|
|
57
109
|
};
|
|
58
110
|
this.silenceDetector = new SilenceDetector(sdConfig);
|
|
59
|
-
// When SilenceDetector decides the utterance has ended
|
|
111
|
+
// When SilenceDetector decides the utterance has ended (silence exceeded
|
|
112
|
+
// utteranceEndThresholdMs), translate that into a TurnCompleteEvent.
|
|
60
113
|
this.silenceDetector.on('utterance_end_detected', (_silenceDurationMs) => {
|
|
114
|
+
// Compute the duration of actual speech (not including silence).
|
|
115
|
+
// Falls back to 0 if timestamps are missing (defensive).
|
|
61
116
|
const durationMs = this.speechStartTimeMs !== null && this.speechEndTimeMs !== null
|
|
62
117
|
? this.speechEndTimeMs - this.speechStartTimeMs
|
|
63
118
|
: 0;
|
|
64
119
|
const event = {
|
|
65
|
-
|
|
120
|
+
// Acoustic mode has no transcript access -- the orchestrator will
|
|
121
|
+
// use whatever transcript the STT session has accumulated separately.
|
|
122
|
+
transcript: '',
|
|
123
|
+
// Confidence is 0 because we have no STT data to score.
|
|
66
124
|
confidence: 0,
|
|
67
125
|
durationMs,
|
|
68
126
|
reason: 'silence_timeout',
|
|
@@ -71,48 +129,76 @@ export class AcousticEndpointDetector extends EventEmitter {
|
|
|
71
129
|
});
|
|
72
130
|
}
|
|
73
131
|
// ---------------------------------------------------------------------------
|
|
74
|
-
// IEndpointDetector
|
|
132
|
+
// IEndpointDetector -- pushVadEvent
|
|
75
133
|
// ---------------------------------------------------------------------------
|
|
76
134
|
/**
|
|
77
135
|
* Converts a {@link VadEvent} into the SilenceDetector's expected API calls.
|
|
78
136
|
*
|
|
79
|
-
* -
|
|
80
|
-
*
|
|
81
|
-
* -
|
|
137
|
+
* - **`speech_start`**: Resets silence state (cancels pending timers) and
|
|
138
|
+
* re-emits `'speech_start'` on this detector for pipeline consumption.
|
|
139
|
+
* - **`speech_end`**: Records the timestamp and starts the silence clock.
|
|
140
|
+
* - **`silence`**: Treated as ongoing non-speech frames, advancing the
|
|
141
|
+
* SilenceDetector's internal timer.
|
|
82
142
|
*
|
|
83
|
-
* @param event - Incoming VAD event.
|
|
143
|
+
* @param event - Incoming VAD event from the upstream voice activity detector.
|
|
84
144
|
*/
|
|
85
145
|
pushVadEvent(event) {
|
|
86
|
-
//
|
|
87
|
-
// a pass-through
|
|
146
|
+
// The SilenceDetector's API requires a VADResult parameter, but it only
|
|
147
|
+
// uses it as a pass-through and doesn't inspect its contents. We pass
|
|
148
|
+
// a minimal stub typed as `never` to satisfy the signature without
|
|
149
|
+
// introducing a dependency on the full VADResult type.
|
|
88
150
|
const vadResultStub = { timestamp: event.timestamp };
|
|
89
151
|
switch (event.type) {
|
|
90
152
|
case 'speech_start':
|
|
153
|
+
// Record when speech began for duration calculation
|
|
91
154
|
this.speechStartTimeMs = event.timestamp;
|
|
155
|
+
// Clear the previous speech_end since a new speech segment started
|
|
92
156
|
this.speechEndTimeMs = null;
|
|
157
|
+
// Notify SilenceDetector to cancel any pending silence timer
|
|
93
158
|
this.silenceDetector.handleSpeechStart(vadResultStub);
|
|
159
|
+
// Re-emit for pipeline consumers (e.g. barge-in detection)
|
|
94
160
|
this.emit('speech_start');
|
|
95
161
|
break;
|
|
96
162
|
case 'speech_end':
|
|
163
|
+
// Record when speech ended for duration calculation
|
|
97
164
|
this.speechEndTimeMs = event.timestamp;
|
|
165
|
+
// Start the silence clock -- if silence persists beyond
|
|
166
|
+
// utteranceEndThresholdMs, SilenceDetector fires utterance_end_detected.
|
|
167
|
+
// The second argument (0) is the energy level -- not used in our context.
|
|
98
168
|
this.silenceDetector.handleSpeechEnd(vadResultStub, 0);
|
|
99
169
|
break;
|
|
100
170
|
case 'silence':
|
|
101
|
-
// Periodic silence heartbeat
|
|
171
|
+
// Periodic silence heartbeat -- advance SilenceDetector's internal
|
|
172
|
+
// timer by notifying it of continued non-speech activity.
|
|
102
173
|
this.silenceDetector.handleNoVoiceActivity(vadResultStub);
|
|
103
174
|
break;
|
|
104
175
|
}
|
|
105
176
|
}
|
|
177
|
+
// ---------------------------------------------------------------------------
|
|
178
|
+
// IEndpointDetector -- pushTranscript
|
|
179
|
+
// ---------------------------------------------------------------------------
|
|
106
180
|
/**
|
|
107
|
-
* No-op
|
|
181
|
+
* No-op -- this detector is purely acoustic and does not use transcript content.
|
|
182
|
+
*
|
|
183
|
+
* The method exists solely to satisfy the {@link IEndpointDetector} interface.
|
|
184
|
+
* Calling it has no effect and does not throw.
|
|
108
185
|
*
|
|
109
186
|
* @param _event - Ignored transcript event.
|
|
110
187
|
*/
|
|
111
188
|
pushTranscript(_event) {
|
|
112
|
-
// Intentional no-op: acoustic mode ignores linguistic content.
|
|
189
|
+
// Intentional no-op: acoustic mode ignores all linguistic content.
|
|
190
|
+
// The HeuristicEndpointDetector should be used if transcript-based
|
|
191
|
+
// endpoint detection is desired.
|
|
113
192
|
}
|
|
193
|
+
// ---------------------------------------------------------------------------
|
|
194
|
+
// IEndpointDetector -- reset
|
|
195
|
+
// ---------------------------------------------------------------------------
|
|
114
196
|
/**
|
|
115
|
-
* Resets all internal state and
|
|
197
|
+
* Resets all internal state and cancels pending timers.
|
|
198
|
+
*
|
|
199
|
+
* Should be called at the start of each new turn to ensure clean state.
|
|
200
|
+
* This also resets the underlying SilenceDetector, cancelling any pending
|
|
201
|
+
* utterance_end_detected timer.
|
|
116
202
|
*/
|
|
117
203
|
reset() {
|
|
118
204
|
this.speechStartTimeMs = null;
|