@framers/agentos 0.13.5 → 0.13.6
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/io/voice-pipeline/browser.d.ts +1 -0
- package/dist/io/voice-pipeline/browser.d.ts.map +1 -1
- package/dist/io/voice-pipeline/browser.js +2 -0
- package/dist/io/voice-pipeline/browser.js.map +1 -1
- package/dist/io/voice-pipeline/index.d.ts +1 -0
- package/dist/io/voice-pipeline/index.d.ts.map +1 -1
- package/dist/io/voice-pipeline/index.js +1 -0
- package/dist/io/voice-pipeline/index.js.map +1 -1
- package/dist/io/voice-pipeline/inputLevel.d.ts +39 -0
- package/dist/io/voice-pipeline/inputLevel.d.ts.map +1 -0
- package/dist/io/voice-pipeline/inputLevel.js +59 -0
- package/dist/io/voice-pipeline/inputLevel.js.map +1 -0
- package/package.json +1 -1
|
@@ -16,4 +16,5 @@
|
|
|
16
16
|
* ```
|
|
17
17
|
*/
|
|
18
18
|
export { LIVEKIT_TRANSCRIPTION_ATTRIBUTES, LIVEKIT_TRANSCRIPTION_TOPIC, TRANSCRIPTION_FAILED_ATTRIBUTE, TranscriptLedger, transcriptEventFromLiveKit, type LedgerEvent, type LedgerItem, type TranscriptLedgerOptions, } from './transcriptLedger.js';
|
|
19
|
+
export { InputSilenceWatch, inputLevelDb, type InputSilenceWatchOptions } from './inputLevel.js';
|
|
19
20
|
//# sourceMappingURL=browser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../../src/io/voice-pipeline/browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EACL,gCAAgC,EAChC,2BAA2B,EAC3B,8BAA8B,EAC9B,gBAAgB,EAChB,0BAA0B,EAC1B,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,uBAAuB,GAC7B,MAAM,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../../src/io/voice-pipeline/browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EACL,gCAAgC,EAChC,2BAA2B,EAC3B,8BAA8B,EAC9B,gBAAgB,EAChB,0BAA0B,EAC1B,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,uBAAuB,GAC7B,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,KAAK,wBAAwB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -17,4 +17,6 @@
|
|
|
17
17
|
*/
|
|
18
18
|
// A live transcript as lines keyed by item id, and LiveKit's transcription streams read into it.
|
|
19
19
|
export { LIVEKIT_TRANSCRIPTION_ATTRIBUTES, LIVEKIT_TRANSCRIPTION_TOPIC, TRANSCRIPTION_FAILED_ATTRIBUTE, TranscriptLedger, transcriptEventFromLiveKit, } from './transcriptLedger.js';
|
|
20
|
+
// An input's level and the watch for an input that carries no sound; inputLevel.ts imports nothing.
|
|
21
|
+
export { InputSilenceWatch, inputLevelDb } from './inputLevel.js';
|
|
20
22
|
//# sourceMappingURL=browser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../../src/io/voice-pipeline/browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,iGAAiG;AACjG,OAAO,EACL,gCAAgC,EAChC,2BAA2B,EAC3B,8BAA8B,EAC9B,gBAAgB,EAChB,0BAA0B,GAI3B,MAAM,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../../src/io/voice-pipeline/browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,iGAAiG;AACjG,OAAO,EACL,gCAAgC,EAChC,2BAA2B,EAC3B,8BAA8B,EAC9B,gBAAgB,EAChB,0BAA0B,GAI3B,MAAM,uBAAuB,CAAC;AAE/B,oGAAoG;AACpG,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAiC,MAAM,iBAAiB,CAAC"}
|
|
@@ -111,6 +111,7 @@ export { VoicePipelineError, AggregateVoiceError, type HealthErrorClass, type Vo
|
|
|
111
111
|
export { type HealthyProvider, type ProviderCapabilities, type HealthCheckResult, defaultCapabilities, supportsLanguage, } from './HealthyProvider.js';
|
|
112
112
|
export { CircuitBreaker, type BreakerState, type CircuitBreakerOptions, type StateChangeEvent, } from './CircuitBreaker.js';
|
|
113
113
|
export { AudioRingBuffer, type AudioRingBufferOptions } from './AudioRingBuffer.js';
|
|
114
|
+
export { InputSilenceWatch, inputLevelDb, type InputSilenceWatchOptions } from './inputLevel.js';
|
|
114
115
|
export { TranscriptDedupe, type TranscriptObservation, type DedupeResult, } from './TranscriptDedupe.js';
|
|
115
116
|
export { LIVEKIT_TRANSCRIPTION_ATTRIBUTES, LIVEKIT_TRANSCRIPTION_TOPIC, TRANSCRIPTION_FAILED_ATTRIBUTE, TranscriptLedger, transcriptEventFromLiveKit, type LedgerEvent, type LedgerItem, type TranscriptLedgerOptions, } from './transcriptLedger.js';
|
|
116
117
|
export { VoiceMetricsReporter, type VoiceMetricEvent, type VoiceMetricListener, } from './VoiceMetricsReporter.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/io/voice-pipeline/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgGG;AAIH,cAAc,YAAY,CAAC;AAG3B,OAAO,EAAE,iBAAiB,EAAE,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAGrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAGzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAGzE,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAG1F,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAG3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAG/D,OAAO,EACL,oBAAoB,EACpB,KAAK,0BAA0B,EAC/B,sBAAsB,EACtB,KAAK,4BAA4B,EACjC,sBAAsB,EACtB,KAAK,4BAA4B,EACjC,wBAAwB,EACxB,KAAK,8BAA8B,EACnC,wBAAwB,EACxB,iBAAiB,EACjB,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,iBAAiB,EACjB,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,GAC9B,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,2BAA2B,EAC3B,KAAK,iCAAiC,EACtC,qBAAqB,EACrB,KAAK,2BAA2B,GACjC,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,GAC5B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,cAAc,EACd,KAAK,YAAY,EACjB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,GACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,KAAK,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACpF,OAAO,EACL,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,KAAK,YAAY,GAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,gCAAgC,EAChC,2BAA2B,EAC3B,8BAA8B,EAC9B,gBAAgB,EAChB,0BAA0B,EAC1B,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,uBAAuB,GAC7B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,oBAAoB,EACpB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,GACzB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,2BAA2B,EAC3B,8BAA8B,EAC9B,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,GACzB,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/io/voice-pipeline/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgGG;AAIH,cAAc,YAAY,CAAC;AAG3B,OAAO,EAAE,iBAAiB,EAAE,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAGrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAGzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAGzE,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAG1F,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAG3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAG/D,OAAO,EACL,oBAAoB,EACpB,KAAK,0BAA0B,EAC/B,sBAAsB,EACtB,KAAK,4BAA4B,EACjC,sBAAsB,EACtB,KAAK,4BAA4B,EACjC,wBAAwB,EACxB,KAAK,8BAA8B,EACnC,wBAAwB,EACxB,iBAAiB,EACjB,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,iBAAiB,EACjB,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,GAC9B,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,2BAA2B,EAC3B,KAAK,iCAAiC,EACtC,qBAAqB,EACrB,KAAK,2BAA2B,GACjC,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,GAC5B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,cAAc,EACd,KAAK,YAAY,EACjB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,GACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,KAAK,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACpF,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,KAAK,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AACjG,OAAO,EACL,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,KAAK,YAAY,GAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,gCAAgC,EAChC,2BAA2B,EAC3B,8BAA8B,EAC9B,gBAAgB,EAChB,0BAA0B,EAC1B,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,uBAAuB,GAC7B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,oBAAoB,EACpB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,GACzB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,2BAA2B,EAC3B,8BAA8B,EAC9B,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,GACzB,MAAM,sBAAsB,CAAC"}
|
|
@@ -123,6 +123,7 @@ export { VoicePipelineError, AggregateVoiceError, } from './VoicePipelineError.j
|
|
|
123
123
|
export { defaultCapabilities, supportsLanguage, } from './HealthyProvider.js';
|
|
124
124
|
export { CircuitBreaker, } from './CircuitBreaker.js';
|
|
125
125
|
export { AudioRingBuffer } from './AudioRingBuffer.js';
|
|
126
|
+
export { InputSilenceWatch, inputLevelDb } from './inputLevel.js';
|
|
126
127
|
export { TranscriptDedupe, } from './TranscriptDedupe.js';
|
|
127
128
|
export { LIVEKIT_TRANSCRIPTION_ATTRIBUTES, LIVEKIT_TRANSCRIPTION_TOPIC, TRANSCRIPTION_FAILED_ATTRIBUTE, TranscriptLedger, transcriptEventFromLiveKit, } from './transcriptLedger.js';
|
|
128
129
|
export { VoiceMetricsReporter, } from './VoiceMetricsReporter.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/io/voice-pipeline/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgGG;AAEH,wDAAwD;AACxD,8EAA8E;AAC9E,cAAc,YAAY,CAAC;AAE3B,+DAA+D;AAC/D,OAAO,EAAE,iBAAiB,EAA0B,MAAM,sBAAsB,CAAC;AAEjF,4CAA4C;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE,6CAA6C;AAC7C,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,2CAA2C;AAC3C,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,oDAAoD;AACpD,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAE1F,gDAAgD;AAChD,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAE3E,yCAAyC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,qCAAqC;AACrC,OAAO,EACL,oBAAoB,EAEpB,sBAAsB,EAEtB,sBAAsB,EAEtB,wBAAwB,EAExB,wBAAwB,EACxB,iBAAiB,EAKjB,iBAAiB,GAKlB,MAAM,sBAAsB,CAAC;AAE9B,iDAAiD;AACjD,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,2BAA2B,EAE3B,qBAAqB,GAEtB,MAAM,sBAAsB,CAAC;AAE9B,wBAAwB;AACxB,OAAO,EACL,kBAAkB,EAClB,mBAAmB,GAGpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAIL,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,cAAc,GAIf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,eAAe,EAA+B,MAAM,sBAAsB,CAAC;AACpF,OAAO,EACL,gBAAgB,GAGjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,gCAAgC,EAChC,2BAA2B,EAC3B,8BAA8B,EAC9B,gBAAgB,EAChB,0BAA0B,GAI3B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,oBAAoB,GAGrB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,2BAA2B,EAC3B,8BAA8B,GAG/B,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/io/voice-pipeline/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgGG;AAEH,wDAAwD;AACxD,8EAA8E;AAC9E,cAAc,YAAY,CAAC;AAE3B,+DAA+D;AAC/D,OAAO,EAAE,iBAAiB,EAA0B,MAAM,sBAAsB,CAAC;AAEjF,4CAA4C;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE,6CAA6C;AAC7C,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,2CAA2C;AAC3C,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,oDAAoD;AACpD,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAE1F,gDAAgD;AAChD,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAE3E,yCAAyC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,qCAAqC;AACrC,OAAO,EACL,oBAAoB,EAEpB,sBAAsB,EAEtB,sBAAsB,EAEtB,wBAAwB,EAExB,wBAAwB,EACxB,iBAAiB,EAKjB,iBAAiB,GAKlB,MAAM,sBAAsB,CAAC;AAE9B,iDAAiD;AACjD,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,2BAA2B,EAE3B,qBAAqB,GAEtB,MAAM,sBAAsB,CAAC;AAE9B,wBAAwB;AACxB,OAAO,EACL,kBAAkB,EAClB,mBAAmB,GAGpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAIL,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,cAAc,GAIf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,eAAe,EAA+B,MAAM,sBAAsB,CAAC;AACpF,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAiC,MAAM,iBAAiB,CAAC;AACjG,OAAO,EACL,gBAAgB,GAGjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,gCAAgC,EAChC,2BAA2B,EAC3B,8BAA8B,EAC9B,gBAAgB,EAChB,0BAA0B,GAI3B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,oBAAoB,GAGrB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,2BAA2B,EAC3B,8BAA8B,GAG/B,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module voice-pipeline/inputLevel
|
|
3
|
+
* An input's level, and a watch that says when no sound reaches a page from
|
|
4
|
+
* the input in use: the level never above `heardAboveDb` for `afterMs` since
|
|
5
|
+
* the input was chosen, or a dead signal (at or below `deadAtOrBelowDb`, which
|
|
6
|
+
* digital zeros reach) for `afterMs` at any time, counted from its first block.
|
|
7
|
+
* A quiet room after the input was heard is not silence: a capture with noise
|
|
8
|
+
* suppression reads low in a pause. No run-time import, so the browser entry
|
|
9
|
+
* carries it.
|
|
10
|
+
*/
|
|
11
|
+
/** The level of a block of samples in decibels of full scale (its root mean square); `-Infinity` for none or for zeros. */
|
|
12
|
+
export declare function inputLevelDb(samples: Float32Array): number;
|
|
13
|
+
/** Options of {@link InputSilenceWatch}. */
|
|
14
|
+
export interface InputSilenceWatchOptions {
|
|
15
|
+
/** A level above this counts as the input heard. @defaultValue -60 */
|
|
16
|
+
heardAboveDb?: number;
|
|
17
|
+
/** A level at or below this carries no signal at all. @defaultValue -150 */
|
|
18
|
+
deadAtOrBelowDb?: number;
|
|
19
|
+
/** How long either condition lasts before the input is called silent. @defaultValue 5000 */
|
|
20
|
+
afterMs?: number;
|
|
21
|
+
}
|
|
22
|
+
/** Says whether no sound reaches the page from the input in use. */
|
|
23
|
+
export declare class InputSilenceWatch {
|
|
24
|
+
private readonly heardAboveDb;
|
|
25
|
+
private readonly deadAtOrBelowDb;
|
|
26
|
+
private readonly afterMs;
|
|
27
|
+
private heard;
|
|
28
|
+
private since;
|
|
29
|
+
/** When the current dead signal began (its first block, or the last reset or restart); `null` after a block that carries a signal. */
|
|
30
|
+
private deadSince;
|
|
31
|
+
constructor(options?: InputSilenceWatchOptions);
|
|
32
|
+
/** A new input, not heard yet. */
|
|
33
|
+
reset(atMs: number): void;
|
|
34
|
+
/** Listening starts again on the same input: the time counts afresh and whether it was heard is kept. */
|
|
35
|
+
restart(atMs: number): void;
|
|
36
|
+
/** Takes one block's level at its time; answers whether the input is silent now. */
|
|
37
|
+
push(levelDb: number, atMs: number): boolean;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=inputLevel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inputLevel.d.ts","sourceRoot":"","sources":["../../../src/io/voice-pipeline/inputLevel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,2HAA2H;AAC3H,wBAAgB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAM1D;AAED,4CAA4C;AAC5C,MAAM,WAAW,wBAAwB;IACvC,sEAAsE;IACtE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4EAA4E;IAC5E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,4FAA4F;IAC5F,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,oEAAoE;AACpE,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,KAAK,CAAK;IAClB,sIAAsI;IACtI,OAAO,CAAC,SAAS,CAAoB;gBAEzB,OAAO,GAAE,wBAA6B;IAMlD,kCAAkC;IAClC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKzB,yGAAyG;IACzG,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK3B,oFAAoF;IACpF,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;CAa7C"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module voice-pipeline/inputLevel
|
|
3
|
+
* An input's level, and a watch that says when no sound reaches a page from
|
|
4
|
+
* the input in use: the level never above `heardAboveDb` for `afterMs` since
|
|
5
|
+
* the input was chosen, or a dead signal (at or below `deadAtOrBelowDb`, which
|
|
6
|
+
* digital zeros reach) for `afterMs` at any time, counted from its first block.
|
|
7
|
+
* A quiet room after the input was heard is not silence: a capture with noise
|
|
8
|
+
* suppression reads low in a pause. No run-time import, so the browser entry
|
|
9
|
+
* carries it.
|
|
10
|
+
*/
|
|
11
|
+
/** The level of a block of samples in decibels of full scale (its root mean square); `-Infinity` for none or for zeros. */
|
|
12
|
+
export function inputLevelDb(samples) {
|
|
13
|
+
if (samples.length === 0)
|
|
14
|
+
return -Infinity;
|
|
15
|
+
let sum = 0;
|
|
16
|
+
for (const sample of samples)
|
|
17
|
+
sum += sample * sample;
|
|
18
|
+
const rms = Math.sqrt(sum / samples.length);
|
|
19
|
+
return rms > 0 ? 20 * Math.log10(rms) : -Infinity;
|
|
20
|
+
}
|
|
21
|
+
/** Says whether no sound reaches the page from the input in use. */
|
|
22
|
+
export class InputSilenceWatch {
|
|
23
|
+
constructor(options = {}) {
|
|
24
|
+
this.heard = false;
|
|
25
|
+
this.since = 0;
|
|
26
|
+
/** When the current dead signal began (its first block, or the last reset or restart); `null` after a block that carries a signal. */
|
|
27
|
+
this.deadSince = 0;
|
|
28
|
+
this.heardAboveDb = options.heardAboveDb ?? -60;
|
|
29
|
+
this.deadAtOrBelowDb = options.deadAtOrBelowDb ?? -150;
|
|
30
|
+
this.afterMs = options.afterMs ?? 5000;
|
|
31
|
+
}
|
|
32
|
+
/** A new input, not heard yet. */
|
|
33
|
+
reset(atMs) {
|
|
34
|
+
this.heard = false;
|
|
35
|
+
this.restart(atMs);
|
|
36
|
+
}
|
|
37
|
+
/** Listening starts again on the same input: the time counts afresh and whether it was heard is kept. */
|
|
38
|
+
restart(atMs) {
|
|
39
|
+
this.since = atMs;
|
|
40
|
+
this.deadSince = atMs;
|
|
41
|
+
}
|
|
42
|
+
/** Takes one block's level at its time; answers whether the input is silent now. */
|
|
43
|
+
push(levelDb, atMs) {
|
|
44
|
+
if (levelDb > this.heardAboveDb) {
|
|
45
|
+
this.heard = true;
|
|
46
|
+
this.since = atMs;
|
|
47
|
+
}
|
|
48
|
+
// A dead signal counts from its first block, so time with no blocks after a
|
|
49
|
+
// block that carried a signal does not count as dead.
|
|
50
|
+
if (levelDb > this.deadAtOrBelowDb)
|
|
51
|
+
this.deadSince = null;
|
|
52
|
+
else if (this.deadSince === null)
|
|
53
|
+
this.deadSince = atMs;
|
|
54
|
+
const unheard = !this.heard && atMs - this.since >= this.afterMs;
|
|
55
|
+
const dead = this.deadSince !== null && atMs - this.deadSince >= this.afterMs;
|
|
56
|
+
return unheard || dead;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=inputLevel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inputLevel.js","sourceRoot":"","sources":["../../../src/io/voice-pipeline/inputLevel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,2HAA2H;AAC3H,MAAM,UAAU,YAAY,CAAC,OAAqB;IAChD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,QAAQ,CAAC;IAC3C,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAK,MAAM,MAAM,IAAI,OAAO;QAAE,GAAG,IAAI,MAAM,GAAG,MAAM,CAAC;IACrD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AACpD,CAAC;AAYD,oEAAoE;AACpE,MAAM,OAAO,iBAAiB;IAS5B,YAAY,UAAoC,EAAE;QAL1C,UAAK,GAAG,KAAK,CAAC;QACd,UAAK,GAAG,CAAC,CAAC;QAClB,sIAAsI;QAC9H,cAAS,GAAkB,CAAC,CAAC;QAGnC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,CAAC,EAAE,CAAC;QAChD,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,CAAC,GAAG,CAAC;QACvD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAK,CAAC;IAC1C,CAAC;IAED,kCAAkC;IAClC,KAAK,CAAC,IAAY;QAChB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;IAED,yGAAyG;IACzG,OAAO,CAAC,IAAY;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,oFAAoF;IACpF,IAAI,CAAC,OAAe,EAAE,IAAY;QAChC,IAAI,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YAChC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,CAAC;QACD,4EAA4E;QAC5E,sDAAsD;QACtD,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe;YAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;aACrD,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI;YAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxD,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC;QACjE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC;QAC9E,OAAO,OAAO,IAAI,IAAI,CAAC;IACzB,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@framers/agentos",
|
|
3
|
-
"version": "0.13.
|
|
3
|
+
"version": "0.13.6",
|
|
4
4
|
"description": "AgentOS: open-source TypeScript framework for autonomous AI agents. Unified graph orchestration, cognitive memory, runtime tool forging, multi-tier guardrails, voice pipeline, and 11 LLM providers.",
|
|
5
5
|
"homepage": "https://agentos.sh",
|
|
6
6
|
"repository": {
|