speechflow 1.6.5 → 1.6.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/CHANGELOG.md +12 -0
- package/README.md +23 -0
- package/etc/stx.conf +5 -0
- package/package.json +3 -3
- package/speechflow-cli/dst/speechflow-node-a2a-compressor.d.ts +1 -1
- package/speechflow-cli/dst/speechflow-node-a2a-compressor.js +12 -11
- package/speechflow-cli/dst/speechflow-node-a2a-compressor.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-a2a-expander.d.ts +1 -1
- package/speechflow-cli/dst/speechflow-node-a2a-expander.js +12 -11
- package/speechflow-cli/dst/speechflow-node-a2a-expander.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-a2a-ffmpeg.js +2 -8
- package/speechflow-cli/dst/speechflow-node-a2a-ffmpeg.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-a2a-filler.d.ts +1 -1
- package/speechflow-cli/dst/speechflow-node-a2a-filler.js +18 -16
- package/speechflow-cli/dst/speechflow-node-a2a-filler.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-a2a-gain.d.ts +1 -1
- package/speechflow-cli/dst/speechflow-node-a2a-gain.js +8 -8
- package/speechflow-cli/dst/speechflow-node-a2a-gain.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-a2a-gender.d.ts +1 -1
- package/speechflow-cli/dst/speechflow-node-a2a-gender.js +38 -34
- package/speechflow-cli/dst/speechflow-node-a2a-gender.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-a2a-meter.d.ts +1 -1
- package/speechflow-cli/dst/speechflow-node-a2a-meter.js +11 -11
- package/speechflow-cli/dst/speechflow-node-a2a-meter.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-a2a-mute.d.ts +1 -1
- package/speechflow-cli/dst/speechflow-node-a2a-mute.js +44 -10
- package/speechflow-cli/dst/speechflow-node-a2a-mute.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-a2a-pitch.d.ts +13 -0
- package/speechflow-cli/dst/speechflow-node-a2a-pitch.js +213 -0
- package/speechflow-cli/dst/speechflow-node-a2a-pitch.js.map +1 -0
- package/speechflow-cli/dst/speechflow-node-a2a-pitch2-wt.d.ts +1 -0
- package/speechflow-cli/dst/speechflow-node-a2a-pitch2-wt.js +149 -0
- package/speechflow-cli/dst/speechflow-node-a2a-pitch2-wt.js.map +1 -0
- package/speechflow-cli/dst/speechflow-node-a2a-pitch2.d.ts +13 -0
- package/speechflow-cli/dst/speechflow-node-a2a-pitch2.js +202 -0
- package/speechflow-cli/dst/speechflow-node-a2a-pitch2.js.map +1 -0
- package/speechflow-cli/dst/speechflow-node-a2a-rnnoise.d.ts +1 -1
- package/speechflow-cli/dst/speechflow-node-a2a-rnnoise.js +12 -11
- package/speechflow-cli/dst/speechflow-node-a2a-rnnoise.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-a2a-speex.d.ts +1 -1
- package/speechflow-cli/dst/speechflow-node-a2a-speex.js +13 -12
- package/speechflow-cli/dst/speechflow-node-a2a-speex.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-a2a-vad.d.ts +1 -1
- package/speechflow-cli/dst/speechflow-node-a2a-vad.js +24 -23
- package/speechflow-cli/dst/speechflow-node-a2a-vad.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-a2a-wav.js +35 -7
- package/speechflow-cli/dst/speechflow-node-a2a-wav.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-a2t-amazon.d.ts +1 -1
- package/speechflow-cli/dst/speechflow-node-a2t-amazon.js +16 -16
- package/speechflow-cli/dst/speechflow-node-a2t-amazon.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-a2t-deepgram.d.ts +1 -1
- package/speechflow-cli/dst/speechflow-node-a2t-deepgram.js +16 -16
- package/speechflow-cli/dst/speechflow-node-a2t-deepgram.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-a2t-openai.d.ts +1 -1
- package/speechflow-cli/dst/speechflow-node-a2t-openai.js +15 -15
- package/speechflow-cli/dst/speechflow-node-a2t-openai.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-t2a-amazon.d.ts +1 -1
- package/speechflow-cli/dst/speechflow-node-t2a-amazon.js +9 -9
- package/speechflow-cli/dst/speechflow-node-t2a-amazon.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-t2a-elevenlabs.d.ts +1 -1
- package/speechflow-cli/dst/speechflow-node-t2a-elevenlabs.js +13 -12
- package/speechflow-cli/dst/speechflow-node-t2a-elevenlabs.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-t2a-kokoro.js +4 -4
- package/speechflow-cli/dst/speechflow-node-t2a-kokoro.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-t2t-amazon.js +3 -3
- package/speechflow-cli/dst/speechflow-node-t2t-amazon.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-t2t-deepl.js +2 -2
- package/speechflow-cli/dst/speechflow-node-t2t-deepl.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-t2t-format.js +36 -2
- package/speechflow-cli/dst/speechflow-node-t2t-format.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-t2t-google.js +2 -2
- package/speechflow-cli/dst/speechflow-node-t2t-google.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-t2t-modify.js +5 -5
- package/speechflow-cli/dst/speechflow-node-t2t-modify.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-t2t-ollama.js +2 -2
- package/speechflow-cli/dst/speechflow-node-t2t-ollama.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-t2t-openai.js +2 -2
- package/speechflow-cli/dst/speechflow-node-t2t-openai.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-t2t-sentence.d.ts +1 -1
- package/speechflow-cli/dst/speechflow-node-t2t-sentence.js +13 -13
- package/speechflow-cli/dst/speechflow-node-t2t-sentence.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-t2t-subtitle.js +2 -2
- package/speechflow-cli/dst/speechflow-node-t2t-subtitle.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-t2t-transformers.js +2 -2
- package/speechflow-cli/dst/speechflow-node-t2t-transformers.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-x2x-filter.js +2 -2
- package/speechflow-cli/dst/speechflow-node-x2x-filter.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-x2x-trace.d.ts +1 -1
- package/speechflow-cli/dst/speechflow-node-x2x-trace.js +42 -8
- package/speechflow-cli/dst/speechflow-node-x2x-trace.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-xio-device.js +3 -2
- package/speechflow-cli/dst/speechflow-node-xio-device.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-xio-file.js +19 -18
- package/speechflow-cli/dst/speechflow-node-xio-file.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-xio-mqtt.js +13 -13
- package/speechflow-cli/dst/speechflow-node-xio-mqtt.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-xio-websocket.js +8 -8
- package/speechflow-cli/dst/speechflow-node-xio-websocket.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node.js +6 -6
- package/speechflow-cli/dst/speechflow-node.js.map +1 -1
- package/speechflow-cli/dst/speechflow-util-audio.js +1 -1
- package/speechflow-cli/dst/speechflow-util-audio.js.map +1 -1
- package/speechflow-cli/dst/speechflow-util-stream.d.ts +1 -0
- package/speechflow-cli/dst/speechflow-util-stream.js +22 -2
- package/speechflow-cli/dst/speechflow-util-stream.js.map +1 -1
- package/speechflow-cli/etc/tsconfig.json +1 -0
- package/speechflow-cli/package.json +14 -14
- package/speechflow-cli/src/speechflow-node-a2a-compressor.ts +13 -12
- package/speechflow-cli/src/speechflow-node-a2a-expander.ts +13 -12
- package/speechflow-cli/src/speechflow-node-a2a-ffmpeg.ts +2 -8
- package/speechflow-cli/src/speechflow-node-a2a-filler.ts +19 -17
- package/speechflow-cli/src/speechflow-node-a2a-gain.ts +8 -8
- package/speechflow-cli/src/speechflow-node-a2a-gender.ts +42 -36
- package/speechflow-cli/src/speechflow-node-a2a-meter.ts +11 -11
- package/speechflow-cli/src/speechflow-node-a2a-mute.ts +11 -10
- package/speechflow-cli/src/speechflow-node-a2a-pitch.ts +221 -0
- package/speechflow-cli/src/speechflow-node-a2a-rnnoise.ts +13 -12
- package/speechflow-cli/src/speechflow-node-a2a-speex.ts +14 -13
- package/speechflow-cli/src/speechflow-node-a2a-vad.ts +24 -23
- package/speechflow-cli/src/speechflow-node-a2a-wav.ts +2 -7
- package/speechflow-cli/src/speechflow-node-a2t-amazon.ts +16 -16
- package/speechflow-cli/src/speechflow-node-a2t-deepgram.ts +16 -16
- package/speechflow-cli/src/speechflow-node-a2t-openai.ts +15 -15
- package/speechflow-cli/src/speechflow-node-t2a-amazon.ts +9 -9
- package/speechflow-cli/src/speechflow-node-t2a-elevenlabs.ts +13 -12
- package/speechflow-cli/src/speechflow-node-t2a-kokoro.ts +4 -4
- package/speechflow-cli/src/speechflow-node-t2t-amazon.ts +3 -3
- package/speechflow-cli/src/speechflow-node-t2t-deepl.ts +2 -2
- package/speechflow-cli/src/speechflow-node-t2t-format.ts +3 -2
- package/speechflow-cli/src/speechflow-node-t2t-google.ts +2 -2
- package/speechflow-cli/src/speechflow-node-t2t-modify.ts +6 -6
- package/speechflow-cli/src/speechflow-node-t2t-ollama.ts +2 -2
- package/speechflow-cli/src/speechflow-node-t2t-openai.ts +2 -2
- package/speechflow-cli/src/speechflow-node-t2t-sentence.ts +13 -13
- package/speechflow-cli/src/speechflow-node-t2t-subtitle.ts +2 -2
- package/speechflow-cli/src/speechflow-node-t2t-transformers.ts +2 -2
- package/speechflow-cli/src/speechflow-node-x2x-filter.ts +2 -2
- package/speechflow-cli/src/speechflow-node-x2x-trace.ts +10 -9
- package/speechflow-cli/src/speechflow-node-xio-device.ts +4 -3
- package/speechflow-cli/src/speechflow-node-xio-file.ts +20 -19
- package/speechflow-cli/src/speechflow-node-xio-mqtt.ts +14 -14
- package/speechflow-cli/src/speechflow-node-xio-websocket.ts +10 -10
- package/speechflow-cli/src/speechflow-node.ts +6 -6
- package/speechflow-cli/src/speechflow-util-audio.ts +1 -1
- package/speechflow-cli/src/speechflow-util-stream.ts +30 -5
- package/speechflow-ui-db/dst/index.js +20 -20
- package/speechflow-ui-db/package.json +7 -7
- package/speechflow-ui-st/dst/index.js +40 -40
- package/speechflow-ui-st/package.json +8 -8
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,18 @@
|
|
|
2
2
|
ChangeLog
|
|
3
3
|
=========
|
|
4
4
|
|
|
5
|
+
1.6.6 (2025-09-21)
|
|
6
|
+
------------------
|
|
7
|
+
|
|
8
|
+
- IMPROVEMENT: implement new a2a-pitch node for GDPR-supporting pitch shifting
|
|
9
|
+
- BUGFIX: fix meta handling in a2t-deepgram, a2t-amazon and a2t-openai nodes to not destroy a2a-gender information
|
|
10
|
+
- BUGFIX: do not loose meta information in chunk processing
|
|
11
|
+
- BUGFIX: prevent more race conditions during closing of nodes
|
|
12
|
+
- CLEANUP: align destruction handling in a2a-gender node with other nodes
|
|
13
|
+
- CLEANUP: use consistent Error object handling in throwing exceptions
|
|
14
|
+
- CLEANUP: consistently use stream destruction procedure
|
|
15
|
+
- CLEANUP: move parameter sanity checking to constructor of all nodes
|
|
16
|
+
|
|
5
17
|
1.6.5 (2025-09-21)
|
|
6
18
|
------------------
|
|
7
19
|
|
package/README.md
CHANGED
|
@@ -33,6 +33,7 @@ speech-to-speech).
|
|
|
33
33
|
- local audio Speex and RNNoise noise suppression,
|
|
34
34
|
- local audio compressor and expander dynamics processing,
|
|
35
35
|
- local audio gain adjustment,
|
|
36
|
+
- local audio pitch shifting and time stretching,
|
|
36
37
|
- local audio gap filler processing,
|
|
37
38
|
- remote-controlable audio muting,
|
|
38
39
|
- cloud-based speech-to-text conversion with
|
|
@@ -336,6 +337,7 @@ First a short overview of the available processing nodes:
|
|
|
336
337
|
**a2a-compressor**,
|
|
337
338
|
**a2a-expander**,
|
|
338
339
|
**a2a-gain**,
|
|
340
|
+
**a2a-pitch**,
|
|
339
341
|
**a2a-filler**.
|
|
340
342
|
- Audio-to-Text nodes:
|
|
341
343
|
**a2t-openai**,
|
|
@@ -654,6 +656,27 @@ The following nodes process audio chunks only.
|
|
|
654
656
|
| ----------- | --------- | -------- | ------------------------ |
|
|
655
657
|
| **db** | *none* | 12 | `n >= -60 && n <= -60` |
|
|
656
658
|
|
|
659
|
+
- Node: **a2a-pitch**<br/>
|
|
660
|
+
Purpose: **audio pitch shifting and time stretching**<br/>
|
|
661
|
+
Example: `a2a-pitch(pitch: 1.2, semitones: 3)`
|
|
662
|
+
|
|
663
|
+
> This node performs real-time pitch shifting and time stretching on
|
|
664
|
+
> audio streams using the SoundTouch algorithm. It can adjust pitch
|
|
665
|
+
> without changing tempo, change tempo without affecting pitch, or
|
|
666
|
+
> modify both independently.
|
|
667
|
+
|
|
668
|
+
| Port | Payload |
|
|
669
|
+
| ------- | ----------- |
|
|
670
|
+
| input | audio |
|
|
671
|
+
| output | audio |
|
|
672
|
+
|
|
673
|
+
| Parameter | Position | Default | Requirement |
|
|
674
|
+
| -------------- | --------- | -------- | ------------------------ |
|
|
675
|
+
| **rate** | *none* | 1.0 | `0.25 <= n <= 4.0` |
|
|
676
|
+
| **tempo** | *none* | 1.0 | `0.25 <= n <= 4.0` |
|
|
677
|
+
| **pitch** | *none* | 1.0 | `0.25 <= n <= 4.0` |
|
|
678
|
+
| **semitones** | *none* | 0.0 | `-24 <= n <= 24` |
|
|
679
|
+
|
|
657
680
|
- Node: **a2a-filler**<br/>
|
|
658
681
|
Purpose: **audio filler node**<br/>
|
|
659
682
|
Example: `a2a-filler()`
|
package/etc/stx.conf
CHANGED
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "speechflow",
|
|
3
|
-
"version": "1.6.
|
|
4
|
-
"x-stdver": "1.6.
|
|
5
|
-
"x-release": "2025-09-
|
|
3
|
+
"version": "1.6.6",
|
|
4
|
+
"x-stdver": "1.6.6-GA",
|
|
5
|
+
"x-release": "2025-09-28",
|
|
6
6
|
"homepage": "https://github.com/rse/speechflow",
|
|
7
7
|
"description": "Speech Processing Flow Graph",
|
|
8
8
|
"keywords": [ "speech", "audio", "flow", "graph" ],
|
|
@@ -140,7 +140,6 @@ class AudioCompressor extends util.WebAudio {
|
|
|
140
140
|
}
|
|
141
141
|
/* destroy the compressor */
|
|
142
142
|
async destroy() {
|
|
143
|
-
await super.destroy();
|
|
144
143
|
/* destroy nodes */
|
|
145
144
|
if (this.compressorNode !== null) {
|
|
146
145
|
this.compressorNode.disconnect();
|
|
@@ -150,6 +149,8 @@ class AudioCompressor extends util.WebAudio {
|
|
|
150
149
|
this.gainNode.disconnect();
|
|
151
150
|
this.gainNode = null;
|
|
152
151
|
}
|
|
152
|
+
/* destroy parent */
|
|
153
|
+
await super.destroy();
|
|
153
154
|
}
|
|
154
155
|
}
|
|
155
156
|
/* SpeechFlow node for compression in audio-to-audio passing */
|
|
@@ -157,7 +158,7 @@ class SpeechFlowNodeA2ACompressor extends speechflow_node_1.default {
|
|
|
157
158
|
/* declare official node name */
|
|
158
159
|
static name = "a2a-compressor";
|
|
159
160
|
/* internal state */
|
|
160
|
-
|
|
161
|
+
closing = false;
|
|
161
162
|
compressor = null;
|
|
162
163
|
bus = null;
|
|
163
164
|
intervalId = null;
|
|
@@ -188,7 +189,7 @@ class SpeechFlowNodeA2ACompressor extends speechflow_node_1.default {
|
|
|
188
189
|
/* open node */
|
|
189
190
|
async open() {
|
|
190
191
|
/* clear destruction flag */
|
|
191
|
-
this.
|
|
192
|
+
this.closing = false;
|
|
192
193
|
/* setup compressor */
|
|
193
194
|
this.compressor = new AudioCompressor(this.config.audioSampleRate, this.config.audioChannels, this.params.type, this.params.mode, {
|
|
194
195
|
thresholdDb: this.params.thresholdDb,
|
|
@@ -221,7 +222,7 @@ class SpeechFlowNodeA2ACompressor extends speechflow_node_1.default {
|
|
|
221
222
|
writableObjectMode: true,
|
|
222
223
|
decodeStrings: false,
|
|
223
224
|
transform(chunk, encoding, callback) {
|
|
224
|
-
if (self.
|
|
225
|
+
if (self.closing) {
|
|
225
226
|
callback(new Error("stream already destroyed"));
|
|
226
227
|
return;
|
|
227
228
|
}
|
|
@@ -231,7 +232,7 @@ class SpeechFlowNodeA2ACompressor extends speechflow_node_1.default {
|
|
|
231
232
|
/* compress chunk */
|
|
232
233
|
const payload = util.convertBufToI16(chunk.payload);
|
|
233
234
|
self.compressor?.process(payload).then((result) => {
|
|
234
|
-
if (self.
|
|
235
|
+
if (self.closing)
|
|
235
236
|
throw new Error("stream already destroyed");
|
|
236
237
|
if ((self.params.type === "standalone" && self.params.mode === "compress") ||
|
|
237
238
|
(self.params.type === "sidechain" && self.params.mode === "adjust")) {
|
|
@@ -242,13 +243,13 @@ class SpeechFlowNodeA2ACompressor extends speechflow_node_1.default {
|
|
|
242
243
|
this.push(chunk);
|
|
243
244
|
callback();
|
|
244
245
|
}).catch((error) => {
|
|
245
|
-
if (!self.
|
|
246
|
+
if (!self.closing)
|
|
246
247
|
callback(util.ensureError(error, "compression failed"));
|
|
247
248
|
});
|
|
248
249
|
}
|
|
249
250
|
},
|
|
250
251
|
final(callback) {
|
|
251
|
-
if (self.
|
|
252
|
+
if (self.closing) {
|
|
252
253
|
callback();
|
|
253
254
|
return;
|
|
254
255
|
}
|
|
@@ -259,8 +260,8 @@ class SpeechFlowNodeA2ACompressor extends speechflow_node_1.default {
|
|
|
259
260
|
}
|
|
260
261
|
/* close node */
|
|
261
262
|
async close() {
|
|
262
|
-
/* indicate
|
|
263
|
-
this.
|
|
263
|
+
/* indicate closing */
|
|
264
|
+
this.closing = true;
|
|
264
265
|
/* clear interval */
|
|
265
266
|
if (this.intervalId !== null) {
|
|
266
267
|
clearInterval(this.intervalId);
|
|
@@ -276,9 +277,9 @@ class SpeechFlowNodeA2ACompressor extends speechflow_node_1.default {
|
|
|
276
277
|
await this.compressor.destroy();
|
|
277
278
|
this.compressor = null;
|
|
278
279
|
}
|
|
279
|
-
/*
|
|
280
|
+
/* shutdown stream */
|
|
280
281
|
if (this.stream !== null) {
|
|
281
|
-
this.stream
|
|
282
|
+
await util.destroyStream(this.stream);
|
|
282
283
|
this.stream = null;
|
|
283
284
|
}
|
|
284
285
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"speechflow-node-a2a-compressor.js","sourceRoot":"","sources":["../src/speechflow-node-a2a-compressor.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"speechflow-node-a2a-compressor.js","sourceRoot":"","sources":["../src/speechflow-node-a2a-compressor.ts"],"names":[],"mappings":"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"}
|
|
@@ -98,12 +98,13 @@ class AudioExpander extends util.WebAudio {
|
|
|
98
98
|
this.expanderNode.connect(this.captureNode);
|
|
99
99
|
}
|
|
100
100
|
async destroy() {
|
|
101
|
-
await super.destroy();
|
|
102
101
|
/* destroy expander node */
|
|
103
102
|
if (this.expanderNode !== null) {
|
|
104
103
|
this.expanderNode.disconnect();
|
|
105
104
|
this.expanderNode = null;
|
|
106
105
|
}
|
|
106
|
+
/* destroy parent */
|
|
107
|
+
await super.destroy();
|
|
107
108
|
}
|
|
108
109
|
}
|
|
109
110
|
/* SpeechFlow node for noise expander in audio-to-audio passing */
|
|
@@ -111,7 +112,7 @@ class SpeechFlowNodeA2AExpander extends speechflow_node_1.default {
|
|
|
111
112
|
/* declare official node name */
|
|
112
113
|
static name = "a2a-expander";
|
|
113
114
|
/* internal state */
|
|
114
|
-
|
|
115
|
+
closing = false;
|
|
115
116
|
expander = null;
|
|
116
117
|
/* construct node */
|
|
117
118
|
constructor(id, cfg, opts, args) {
|
|
@@ -136,7 +137,7 @@ class SpeechFlowNodeA2AExpander extends speechflow_node_1.default {
|
|
|
136
137
|
/* open node */
|
|
137
138
|
async open() {
|
|
138
139
|
/* clear destruction flag */
|
|
139
|
-
this.
|
|
140
|
+
this.closing = false;
|
|
140
141
|
/* setup expander */
|
|
141
142
|
this.expander = new AudioExpander(this.config.audioSampleRate, this.config.audioChannels, {
|
|
142
143
|
thresholdDb: this.params.thresholdDb,
|
|
@@ -155,7 +156,7 @@ class SpeechFlowNodeA2AExpander extends speechflow_node_1.default {
|
|
|
155
156
|
writableObjectMode: true,
|
|
156
157
|
decodeStrings: false,
|
|
157
158
|
transform(chunk, encoding, callback) {
|
|
158
|
-
if (self.
|
|
159
|
+
if (self.closing) {
|
|
159
160
|
callback(new Error("stream already destroyed"));
|
|
160
161
|
return;
|
|
161
162
|
}
|
|
@@ -165,7 +166,7 @@ class SpeechFlowNodeA2AExpander extends speechflow_node_1.default {
|
|
|
165
166
|
/* expand chunk */
|
|
166
167
|
const payload = util.convertBufToI16(chunk.payload);
|
|
167
168
|
self.expander?.process(payload).then((result) => {
|
|
168
|
-
if (self.
|
|
169
|
+
if (self.closing)
|
|
169
170
|
throw new Error("stream already destroyed");
|
|
170
171
|
/* take over expanded data */
|
|
171
172
|
const payload = util.convertI16ToBuf(result);
|
|
@@ -173,13 +174,13 @@ class SpeechFlowNodeA2AExpander extends speechflow_node_1.default {
|
|
|
173
174
|
this.push(chunk);
|
|
174
175
|
callback();
|
|
175
176
|
}).catch((error) => {
|
|
176
|
-
if (!self.
|
|
177
|
+
if (!self.closing)
|
|
177
178
|
callback(util.ensureError(error, "expansion failed"));
|
|
178
179
|
});
|
|
179
180
|
}
|
|
180
181
|
},
|
|
181
182
|
final(callback) {
|
|
182
|
-
if (self.
|
|
183
|
+
if (self.closing) {
|
|
183
184
|
callback();
|
|
184
185
|
return;
|
|
185
186
|
}
|
|
@@ -190,16 +191,16 @@ class SpeechFlowNodeA2AExpander extends speechflow_node_1.default {
|
|
|
190
191
|
}
|
|
191
192
|
/* close node */
|
|
192
193
|
async close() {
|
|
193
|
-
/* indicate
|
|
194
|
-
this.
|
|
194
|
+
/* indicate closing */
|
|
195
|
+
this.closing = true;
|
|
195
196
|
/* destroy expander */
|
|
196
197
|
if (this.expander !== null) {
|
|
197
198
|
await this.expander.destroy();
|
|
198
199
|
this.expander = null;
|
|
199
200
|
}
|
|
200
|
-
/*
|
|
201
|
+
/* shutdown stream */
|
|
201
202
|
if (this.stream !== null) {
|
|
202
|
-
this.stream
|
|
203
|
+
await util.destroyStream(this.stream);
|
|
203
204
|
this.stream = null;
|
|
204
205
|
}
|
|
205
206
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"speechflow-node-a2a-expander.js","sourceRoot":"","sources":["../src/speechflow-node-a2a-expander.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"speechflow-node-a2a-expander.js","sourceRoot":"","sources":["../src/speechflow-node-a2a-expander.ts"],"names":[],"mappings":"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"}
|
|
@@ -131,15 +131,9 @@ class SpeechFlowNodeA2AFFMPEG extends speechflow_node_1.default {
|
|
|
131
131
|
}
|
|
132
132
|
/* close node */
|
|
133
133
|
async close() {
|
|
134
|
-
/*
|
|
134
|
+
/* shutdown stream */
|
|
135
135
|
if (this.stream !== null) {
|
|
136
|
-
await
|
|
137
|
-
if (this.stream instanceof node_stream_1.default.Duplex)
|
|
138
|
-
this.stream.end(() => { resolve(); });
|
|
139
|
-
else
|
|
140
|
-
resolve();
|
|
141
|
-
});
|
|
142
|
-
this.stream.destroy();
|
|
136
|
+
await util.destroyStream(this.stream);
|
|
143
137
|
this.stream = null;
|
|
144
138
|
}
|
|
145
139
|
/* shutdown FFmpeg */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"speechflow-node-a2a-ffmpeg.js","sourceRoot":"","sources":["../src/speechflow-node-a2a-ffmpeg.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"speechflow-node-a2a-ffmpeg.js","sourceRoot":"","sources":["../src/speechflow-node-a2a-ffmpeg.ts"],"names":[],"mappings":"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"}
|
|
@@ -76,14 +76,14 @@ class AudioFiller extends node_events_1.EventEmitter {
|
|
|
76
76
|
return luxon_1.Duration.fromObject({ seconds });
|
|
77
77
|
}
|
|
78
78
|
/* emit a chunk of silence */
|
|
79
|
-
emitSilence(fromSamples, toSamples) {
|
|
79
|
+
emitSilence(fromSamples, toSamples, meta) {
|
|
80
80
|
const frames = Math.max(0, Math.floor(toSamples - fromSamples));
|
|
81
81
|
if (frames <= 0)
|
|
82
82
|
return;
|
|
83
83
|
const payload = Buffer.alloc(frames * this.bytesPerFrame); /* already zeroed */
|
|
84
84
|
const timestampStart = this.durationFromSamples(fromSamples);
|
|
85
85
|
const timestampEnd = this.durationFromSamples(toSamples);
|
|
86
|
-
const chunk = new speechflow_node_1.SpeechFlowChunk(timestampStart, timestampEnd, "final", "audio", payload);
|
|
86
|
+
const chunk = new speechflow_node_1.SpeechFlowChunk(timestampStart, timestampEnd, "final", "audio", payload, meta ? new Map(meta) : undefined);
|
|
87
87
|
this.emit("chunk", chunk);
|
|
88
88
|
}
|
|
89
89
|
/* add a chunk of audio for processing */
|
|
@@ -94,7 +94,7 @@ class AudioFiller extends node_events_1.EventEmitter {
|
|
|
94
94
|
throw new Error("invalid timestamps");
|
|
95
95
|
/* if chunk starts beyond what we've emitted, insert silence for the gap */
|
|
96
96
|
if (startSamp > this.emittedEndSamples + this.sampleTolerance) {
|
|
97
|
-
this.emitSilence(this.emittedEndSamples, startSamp);
|
|
97
|
+
this.emitSilence(this.emittedEndSamples, startSamp, chunk.meta);
|
|
98
98
|
this.emittedEndSamples = startSamp;
|
|
99
99
|
}
|
|
100
100
|
/* if chunk ends before or at emitted end, we have it fully covered, so drop it */
|
|
@@ -118,7 +118,7 @@ class AudioFiller extends node_events_1.EventEmitter {
|
|
|
118
118
|
const outEndSamples = outStartSamples + Math.floor(payload.length / this.bytesPerFrame);
|
|
119
119
|
const timestampStart = this.durationFromSamples(outStartSamples);
|
|
120
120
|
const timestampEnd = this.durationFromSamples(outEndSamples);
|
|
121
|
-
const c = new speechflow_node_1.SpeechFlowChunk(timestampStart, timestampEnd, "final", "audio", payload);
|
|
121
|
+
const c = new speechflow_node_1.SpeechFlowChunk(timestampStart, timestampEnd, "final", "audio", payload, new Map(chunk.meta));
|
|
122
122
|
this.emit("chunk", c);
|
|
123
123
|
/* advance emitted cursor */
|
|
124
124
|
this.emittedEndSamples = Math.max(this.emittedEndSamples, outEndSamples);
|
|
@@ -129,7 +129,7 @@ class SpeechFlowNodeA2AFiller extends speechflow_node_1.default {
|
|
|
129
129
|
/* declare official node name */
|
|
130
130
|
static name = "a2a-filler";
|
|
131
131
|
/* internal state */
|
|
132
|
-
|
|
132
|
+
closing = false;
|
|
133
133
|
filler = null;
|
|
134
134
|
sendQueue = null;
|
|
135
135
|
/* construct node */
|
|
@@ -146,7 +146,7 @@ class SpeechFlowNodeA2AFiller extends speechflow_node_1.default {
|
|
|
146
146
|
/* open node */
|
|
147
147
|
async open() {
|
|
148
148
|
/* clear destruction flag */
|
|
149
|
-
this.
|
|
149
|
+
this.closing = false;
|
|
150
150
|
/* establish queues */
|
|
151
151
|
this.filler = new AudioFiller(this.config.audioSampleRate, this.config.audioChannels);
|
|
152
152
|
this.sendQueue = new util.AsyncQueue();
|
|
@@ -161,27 +161,29 @@ class SpeechFlowNodeA2AFiller extends speechflow_node_1.default {
|
|
|
161
161
|
writableObjectMode: true,
|
|
162
162
|
decodeStrings: false,
|
|
163
163
|
write(chunk, encoding, callback) {
|
|
164
|
-
if (self.
|
|
164
|
+
if (self.closing || self.filler === null)
|
|
165
165
|
callback(new Error("stream already destroyed"));
|
|
166
166
|
else if (!Buffer.isBuffer(chunk.payload))
|
|
167
167
|
callback(new Error("invalid chunk payload type"));
|
|
168
168
|
else {
|
|
169
169
|
try {
|
|
170
|
+
if (self.closing || self.filler === null)
|
|
171
|
+
throw new Error("stream already destroyed");
|
|
170
172
|
self.filler.add(chunk);
|
|
171
173
|
callback();
|
|
172
174
|
}
|
|
173
175
|
catch (error) {
|
|
174
|
-
callback(error);
|
|
176
|
+
callback(util.ensureError(error));
|
|
175
177
|
}
|
|
176
178
|
}
|
|
177
179
|
},
|
|
178
180
|
read(size) {
|
|
179
|
-
if (self.
|
|
181
|
+
if (self.closing || self.sendQueue === null) {
|
|
180
182
|
this.push(null);
|
|
181
183
|
return;
|
|
182
184
|
}
|
|
183
185
|
self.sendQueue.read().then((chunk) => {
|
|
184
|
-
if (self.
|
|
186
|
+
if (self.closing || self.sendQueue === null) {
|
|
185
187
|
this.push(null);
|
|
186
188
|
return;
|
|
187
189
|
}
|
|
@@ -194,12 +196,12 @@ class SpeechFlowNodeA2AFiller extends speechflow_node_1.default {
|
|
|
194
196
|
this.push(chunk);
|
|
195
197
|
}
|
|
196
198
|
}).catch((error) => {
|
|
197
|
-
if (!self.
|
|
199
|
+
if (!self.closing && self.sendQueue !== null)
|
|
198
200
|
self.log("error", `queue read error: ${util.ensureError(error).message}`);
|
|
199
201
|
});
|
|
200
202
|
},
|
|
201
203
|
final(callback) {
|
|
202
|
-
if (self.
|
|
204
|
+
if (self.closing) {
|
|
203
205
|
callback();
|
|
204
206
|
return;
|
|
205
207
|
}
|
|
@@ -210,8 +212,8 @@ class SpeechFlowNodeA2AFiller extends speechflow_node_1.default {
|
|
|
210
212
|
}
|
|
211
213
|
/* close node */
|
|
212
214
|
async close() {
|
|
213
|
-
/* indicate
|
|
214
|
-
this.
|
|
215
|
+
/* indicate closing */
|
|
216
|
+
this.closing = true;
|
|
215
217
|
/* destroy queues */
|
|
216
218
|
if (this.sendQueue !== null) {
|
|
217
219
|
this.sendQueue.destroy();
|
|
@@ -222,9 +224,9 @@ class SpeechFlowNodeA2AFiller extends speechflow_node_1.default {
|
|
|
222
224
|
this.filler.removeAllListeners();
|
|
223
225
|
this.filler = null;
|
|
224
226
|
}
|
|
225
|
-
/*
|
|
227
|
+
/* shutdown stream */
|
|
226
228
|
if (this.stream !== null) {
|
|
227
|
-
this.stream
|
|
229
|
+
await util.destroyStream(this.stream);
|
|
228
230
|
this.stream = null;
|
|
229
231
|
}
|
|
230
232
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"speechflow-node-a2a-filler.js","sourceRoot":"","sources":["../src/speechflow-node-a2a-filler.ts"],"names":[],"mappings":";AAAA;;;;EAIE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEF,6BAA6B;AAC7B,8DAA0C;AAC1C,6CAA0C;AAC1C,iCAAoC;AAEpC,6BAA6B;AAC7B,qEAAmE;AACnE,wDAAmE;AAEnE,MAAM,WAAY,SAAQ,0BAAY;IAMb;IAA4B;IALzC,iBAAiB,GAAG,CAAC,CAAA,CAAW,gDAAgD;IACvE,cAAc,GAAG,CAAC,CAAA,CAAK,aAAa;IACpC,aAAa,CAAQ;IACrB,eAAe,GAAG,GAAG,CAAA,CAAE,qDAAqD;IAE7F,YAAqB,aAAa,KAAK,EAAU,WAAW,CAAC;QACzD,KAAK,EAAE,CAAA;QADU,eAAU,GAAV,UAAU,CAAQ;QAAU,aAAQ,GAAR,QAAQ,CAAI;QAEzD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAA;IAC5D,CAAC;IAIM,EAAE,CAAC,KAAa,EAAE,QAAkC;QACvD,OAAO,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;IACpC,CAAC;IAED,8CAA8C;IACtC,mBAAmB,CAAC,QAAkB;QAC1C,MAAM,OAAO,GAAG,QAAQ,CAAC,EAAE,CAAC,SAAS,CAAC,CAAA;QACtC,MAAM,OAAO,GAAG,OAAO,GAAG,IAAI,CAAC,UAAU,CAAA;QACzC,OAAO,OAAO,CAAA;IAClB,CAAC;IAED,8CAA8C;IACtC,mBAAmB,CAAC,OAAe;QACvC,MAAM,OAAO,GAAG,OAAO,GAAG,IAAI,CAAC,UAAU,CAAA;QACzC,OAAO,gBAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;IAC3C,CAAC;IAED,+BAA+B;IACvB,WAAW,CAAE,WAAmB,EAAE,SAAiB;
|
|
1
|
+
{"version":3,"file":"speechflow-node-a2a-filler.js","sourceRoot":"","sources":["../src/speechflow-node-a2a-filler.ts"],"names":[],"mappings":"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"}
|
|
@@ -51,7 +51,7 @@ class SpeechFlowNodeA2AGain extends speechflow_node_1.default {
|
|
|
51
51
|
/* declare official node name */
|
|
52
52
|
static name = "a2a-gain";
|
|
53
53
|
/* internal state */
|
|
54
|
-
|
|
54
|
+
closing = false;
|
|
55
55
|
/* construct node */
|
|
56
56
|
constructor(id, cfg, opts, args) {
|
|
57
57
|
super(id, cfg, opts, args);
|
|
@@ -66,7 +66,7 @@ class SpeechFlowNodeA2AGain extends speechflow_node_1.default {
|
|
|
66
66
|
/* open node */
|
|
67
67
|
async open() {
|
|
68
68
|
/* clear destruction flag */
|
|
69
|
-
this.
|
|
69
|
+
this.closing = false;
|
|
70
70
|
/* adjust gain */
|
|
71
71
|
const adjustGain = (chunk, db) => {
|
|
72
72
|
const dv = new DataView(chunk.payload.buffer, chunk.payload.byteOffset, chunk.payload.byteLength);
|
|
@@ -85,7 +85,7 @@ class SpeechFlowNodeA2AGain extends speechflow_node_1.default {
|
|
|
85
85
|
writableObjectMode: true,
|
|
86
86
|
decodeStrings: false,
|
|
87
87
|
transform(chunk, encoding, callback) {
|
|
88
|
-
if (self.
|
|
88
|
+
if (self.closing) {
|
|
89
89
|
callback(new Error("stream already destroyed"));
|
|
90
90
|
return;
|
|
91
91
|
}
|
|
@@ -101,7 +101,7 @@ class SpeechFlowNodeA2AGain extends speechflow_node_1.default {
|
|
|
101
101
|
}
|
|
102
102
|
},
|
|
103
103
|
final(callback) {
|
|
104
|
-
if (self.
|
|
104
|
+
if (self.closing) {
|
|
105
105
|
callback();
|
|
106
106
|
return;
|
|
107
107
|
}
|
|
@@ -112,11 +112,11 @@ class SpeechFlowNodeA2AGain extends speechflow_node_1.default {
|
|
|
112
112
|
}
|
|
113
113
|
/* close node */
|
|
114
114
|
async close() {
|
|
115
|
-
/* indicate
|
|
116
|
-
this.
|
|
117
|
-
/*
|
|
115
|
+
/* indicate closing */
|
|
116
|
+
this.closing = true;
|
|
117
|
+
/* shutdown stream */
|
|
118
118
|
if (this.stream !== null) {
|
|
119
|
-
this.stream
|
|
119
|
+
await util.destroyStream(this.stream);
|
|
120
120
|
this.stream = null;
|
|
121
121
|
}
|
|
122
122
|
}
|