speechflow 1.2.0 → 1.2.2
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 +13 -0
- package/README.md +4 -0
- package/dst/speechflow.js +61 -77
- package/dst/speechflow.js.map +1 -1
- package/etc/stx.conf +14 -0
- package/package.json +3 -2
- package/src/speechflow.ts +59 -75
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,19 @@
|
|
|
2
2
|
ChangeLog
|
|
3
3
|
=========
|
|
4
4
|
|
|
5
|
+
1.2.1 (2025-07-21)
|
|
6
|
+
------------------
|
|
7
|
+
|
|
8
|
+
- CLEANUP: cleanup usage information
|
|
9
|
+
- IMPROVEMENT: add optional "build-pkg" build target for creating an all-in-one-package
|
|
10
|
+
|
|
11
|
+
1.2.1 (2025-07-21)
|
|
12
|
+
------------------
|
|
13
|
+
|
|
14
|
+
- CLEANUP: refactor main cleanup procedure
|
|
15
|
+
- CLEANUP: consistenly use "<xxx>" for nodes in outputs
|
|
16
|
+
- UPGRADE: upgrade NPM dependencies
|
|
17
|
+
|
|
5
18
|
1.2.0 (2025-07-21)
|
|
6
19
|
------------------
|
|
7
20
|
|
package/README.md
CHANGED
|
@@ -60,7 +60,11 @@ Usage
|
|
|
60
60
|
$ speechflow
|
|
61
61
|
[-h|--help]
|
|
62
62
|
[-V|--version]
|
|
63
|
+
[-S|--status]
|
|
63
64
|
[-v|--verbose <level>]
|
|
65
|
+
[-a|--address <ip-address>]
|
|
66
|
+
[-p|--port <tcp-port>]
|
|
67
|
+
[-C|--cache <directory>]
|
|
64
68
|
[-e|--expression <expression>]
|
|
65
69
|
[-f|--file <file>]
|
|
66
70
|
[-c|--config <id>@<yaml-config-file>]
|
package/dst/speechflow.js
CHANGED
|
@@ -79,11 +79,11 @@ let cli = null;
|
|
|
79
79
|
.usage("Usage: $0 " +
|
|
80
80
|
"[-h|--help] " +
|
|
81
81
|
"[-V|--version] " +
|
|
82
|
+
"[-S|--status] " +
|
|
82
83
|
"[-v|--verbose <level>] " +
|
|
83
84
|
"[-a|--address <ip-address>] " +
|
|
84
85
|
"[-p|--port <tcp-port>] " +
|
|
85
86
|
"[-C|--cache <directory>] " +
|
|
86
|
-
"[-S|--status] " +
|
|
87
87
|
"[-e|--expression <expression>] " +
|
|
88
88
|
"[-f|--file <file>] " +
|
|
89
89
|
"[-c|--config <id>@<yaml-config-file>] " +
|
|
@@ -96,6 +96,14 @@ let cli = null;
|
|
|
96
96
|
coerce,
|
|
97
97
|
default: false,
|
|
98
98
|
describe: "show program version information"
|
|
99
|
+
})
|
|
100
|
+
.option("S", {
|
|
101
|
+
alias: "status",
|
|
102
|
+
type: "boolean",
|
|
103
|
+
array: false,
|
|
104
|
+
coerce,
|
|
105
|
+
default: false,
|
|
106
|
+
describe: "show one-time status of nodes"
|
|
99
107
|
})
|
|
100
108
|
.option("v", {
|
|
101
109
|
alias: "log-level",
|
|
@@ -132,14 +140,6 @@ let cli = null;
|
|
|
132
140
|
nargs: 1,
|
|
133
141
|
default: node_path_1.default.join(dataDir, "cache"),
|
|
134
142
|
describe: "directory for cached files (primarily AI model files)"
|
|
135
|
-
})
|
|
136
|
-
.option("S", {
|
|
137
|
-
alias: "status",
|
|
138
|
-
type: "boolean",
|
|
139
|
-
array: false,
|
|
140
|
-
coerce,
|
|
141
|
-
default: false,
|
|
142
|
-
describe: "show one-time status of nodes"
|
|
143
143
|
})
|
|
144
144
|
.option("e", {
|
|
145
145
|
alias: "expression",
|
|
@@ -241,20 +241,20 @@ let cli = null;
|
|
|
241
241
|
/* load internal SpeechFlow nodes */
|
|
242
242
|
const pkgsI = [
|
|
243
243
|
"./speechflow-node-a2a-ffmpeg.js",
|
|
244
|
-
"./speechflow-node-a2a-wav.js",
|
|
245
|
-
"./speechflow-node-a2a-mute.js",
|
|
246
|
-
"./speechflow-node-a2a-meter.js",
|
|
247
244
|
"./speechflow-node-a2a-gender.js",
|
|
245
|
+
"./speechflow-node-a2a-meter.js",
|
|
246
|
+
"./speechflow-node-a2a-mute.js",
|
|
248
247
|
"./speechflow-node-a2a-vad.js",
|
|
248
|
+
"./speechflow-node-a2a-wav.js",
|
|
249
249
|
"./speechflow-node-a2t-deepgram.js",
|
|
250
250
|
"./speechflow-node-t2a-elevenlabs.js",
|
|
251
251
|
"./speechflow-node-t2a-kokoro.js",
|
|
252
252
|
"./speechflow-node-t2t-deepl.js",
|
|
253
|
-
"./speechflow-node-t2t-
|
|
253
|
+
"./speechflow-node-t2t-format.js",
|
|
254
254
|
"./speechflow-node-t2t-ollama.js",
|
|
255
|
-
"./speechflow-node-t2t-
|
|
255
|
+
"./speechflow-node-t2t-openai.js",
|
|
256
256
|
"./speechflow-node-t2t-subtitle.js",
|
|
257
|
-
"./speechflow-node-t2t-
|
|
257
|
+
"./speechflow-node-t2t-transformers.js",
|
|
258
258
|
"./speechflow-node-x2x-filter.js",
|
|
259
259
|
"./speechflow-node-x2x-trace.js",
|
|
260
260
|
"./speechflow-node-xio-device.js",
|
|
@@ -267,7 +267,7 @@ let cli = null;
|
|
|
267
267
|
while (node.default !== undefined)
|
|
268
268
|
node = node.default;
|
|
269
269
|
if (typeof node === "function" && typeof node.name === "string") {
|
|
270
|
-
cli.log("info", `loading SpeechFlow node
|
|
270
|
+
cli.log("info", `loading SpeechFlow node <${node.name}> from internal module`);
|
|
271
271
|
nodes[node.name] = node;
|
|
272
272
|
}
|
|
273
273
|
}
|
|
@@ -280,11 +280,11 @@ let cli = null;
|
|
|
280
280
|
node = node.default;
|
|
281
281
|
if (typeof node === "function" && typeof node.name === "string") {
|
|
282
282
|
if (nodes[node.name] !== undefined) {
|
|
283
|
-
cli.log("warning", `failed loading SpeechFlow node
|
|
283
|
+
cli.log("warning", `failed loading SpeechFlow node <${node.name}> ` +
|
|
284
284
|
`from external module "${pkg}" -- node already exists`);
|
|
285
285
|
continue;
|
|
286
286
|
}
|
|
287
|
-
cli.log("info", `loading SpeechFlow node
|
|
287
|
+
cli.log("info", `loading SpeechFlow node <${node.name}> from external module "${pkg}"`);
|
|
288
288
|
nodes[node.name] = node;
|
|
289
289
|
}
|
|
290
290
|
}
|
|
@@ -359,7 +359,7 @@ let cli = null;
|
|
|
359
359
|
},
|
|
360
360
|
createNode(id, opts, args) {
|
|
361
361
|
if (nodes[id] === undefined)
|
|
362
|
-
throw new Error(`unknown node
|
|
362
|
+
throw new Error(`unknown node <${id}>`);
|
|
363
363
|
let node;
|
|
364
364
|
try {
|
|
365
365
|
let num = nodeNums.get(nodes[id]) ?? 0;
|
|
@@ -370,19 +370,19 @@ let cli = null;
|
|
|
370
370
|
catch (err) {
|
|
371
371
|
/* fatal error */
|
|
372
372
|
if (err instanceof Error)
|
|
373
|
-
cli.log("error", `creation of <${id}>
|
|
373
|
+
cli.log("error", `creation of node <${id}> failed: ${err.message}`);
|
|
374
374
|
else
|
|
375
|
-
cli.log("error", `creation of <${id}>
|
|
375
|
+
cli.log("error", `creation of node <${id}> failed: ${err}`);
|
|
376
376
|
process.exit(1);
|
|
377
377
|
}
|
|
378
378
|
const params = Object.keys(node.params)
|
|
379
379
|
.map((key) => `${key}: ${JSON.stringify(node.params[key])}`).join(", ");
|
|
380
|
-
cli.log("info", `create node
|
|
380
|
+
cli.log("info", `create node <${node.id}> (${params})`);
|
|
381
381
|
graphNodes.add(node);
|
|
382
382
|
return node;
|
|
383
383
|
},
|
|
384
384
|
connectNode(node1, node2) {
|
|
385
|
-
cli.log("info", `connect node
|
|
385
|
+
cli.log("info", `connect node <${node1.id}> to node <${node2.id}>`);
|
|
386
386
|
node1.connect(node2);
|
|
387
387
|
}
|
|
388
388
|
});
|
|
@@ -403,13 +403,13 @@ let cli = null;
|
|
|
403
403
|
let connectionsOut = Array.from(node.connectionsOut);
|
|
404
404
|
/* ensure necessary incoming links */
|
|
405
405
|
if (node.input !== "none" && connectionsIn.length === 0)
|
|
406
|
-
throw new Error(`node
|
|
406
|
+
throw new Error(`node <${node.id}> requires input but has no input nodes connected`);
|
|
407
407
|
/* prune unnecessary incoming links */
|
|
408
408
|
if (node.input === "none" && connectionsIn.length > 0)
|
|
409
409
|
connectionsIn.forEach((other) => { other.disconnect(node); });
|
|
410
410
|
/* ensure necessary outgoing links */
|
|
411
411
|
if (node.output !== "none" && connectionsOut.length === 0)
|
|
412
|
-
throw new Error(`node
|
|
412
|
+
throw new Error(`node <${node.id}> requires output but has no output nodes connected`);
|
|
413
413
|
/* prune unnecessary outgoing links */
|
|
414
414
|
if (node.output === "none" && connectionsOut.length > 0)
|
|
415
415
|
connectionsOut.forEach((other) => { node.disconnect(other); });
|
|
@@ -418,8 +418,8 @@ let cli = null;
|
|
|
418
418
|
connectionsOut = Array.from(node.connectionsOut);
|
|
419
419
|
for (const other of connectionsOut)
|
|
420
420
|
if (other.input !== node.output)
|
|
421
|
-
throw new Error(`${node.output} output node
|
|
422
|
-
`connected to ${other.input} input node
|
|
421
|
+
throw new Error(`${node.output} output node <${node.id}> cannot be ` +
|
|
422
|
+
`connected to ${other.input} input node <${other.id}> (payload is incompatible)`);
|
|
423
423
|
}
|
|
424
424
|
/* graph processing: PASS 3: open nodes */
|
|
425
425
|
for (const node of graphNodes) {
|
|
@@ -431,32 +431,32 @@ let cli = null;
|
|
|
431
431
|
cli.log(level, str);
|
|
432
432
|
});
|
|
433
433
|
/* open node */
|
|
434
|
-
cli.log("info", `open node
|
|
434
|
+
cli.log("info", `open node <${node.id}>`);
|
|
435
435
|
await node.open().catch((err) => {
|
|
436
436
|
cli.log("error", `[${node.id}]: ${err.message}`);
|
|
437
|
-
throw new Error(`failed to open node
|
|
437
|
+
throw new Error(`failed to open node <${node.id}>`);
|
|
438
438
|
});
|
|
439
439
|
}
|
|
440
440
|
/* graph processing: PASS 4: set time zero in all nodes */
|
|
441
441
|
const timeZero = luxon_1.DateTime.now();
|
|
442
442
|
for (const node of graphNodes) {
|
|
443
|
-
cli.log("info", `set time zero in node
|
|
443
|
+
cli.log("info", `set time zero in node <${node.id}>`);
|
|
444
444
|
node.setTimeZero(timeZero);
|
|
445
445
|
}
|
|
446
446
|
/* graph processing: PASS 5: connect node streams */
|
|
447
447
|
for (const node of graphNodes) {
|
|
448
448
|
if (node.stream === null)
|
|
449
|
-
throw new Error(`stream of node
|
|
449
|
+
throw new Error(`stream of node <${node.id}> still not initialized`);
|
|
450
450
|
for (const other of Array.from(node.connectionsOut)) {
|
|
451
451
|
if (other.stream === null)
|
|
452
|
-
throw new Error(`stream of incoming node
|
|
453
|
-
cli.log("info", `connect stream of node
|
|
452
|
+
throw new Error(`stream of incoming node <${other.id}> still not initialized`);
|
|
453
|
+
cli.log("info", `connect stream of node <${node.id}> to stream of node <${other.id}>`);
|
|
454
454
|
if (!(node.stream instanceof node_stream_1.default.Readable
|
|
455
455
|
|| node.stream instanceof node_stream_1.default.Duplex))
|
|
456
|
-
throw new Error(`stream of output node
|
|
456
|
+
throw new Error(`stream of output node <${node.id}> is neither of Readable nor Duplex type`);
|
|
457
457
|
if (!(other.stream instanceof node_stream_1.default.Writable
|
|
458
458
|
|| other.stream instanceof node_stream_1.default.Duplex))
|
|
459
|
-
throw new Error(`stream of input node
|
|
459
|
+
throw new Error(`stream of input node <${other.id}> is neither of Writable nor Duplex type`);
|
|
460
460
|
node.stream.pipe(other.stream);
|
|
461
461
|
}
|
|
462
462
|
}
|
|
@@ -465,32 +465,26 @@ let cli = null;
|
|
|
465
465
|
const finishEvents = new node_events_1.EventEmitter();
|
|
466
466
|
for (const node of graphNodes) {
|
|
467
467
|
if (node.stream === null)
|
|
468
|
-
throw new Error(`stream of node
|
|
469
|
-
cli.log("info", `observe stream of node
|
|
468
|
+
throw new Error(`stream of node <${node.id}> still not initialized`);
|
|
469
|
+
cli.log("info", `observe stream of node <${node.id}> for finish event`);
|
|
470
470
|
activeNodes.add(node);
|
|
471
|
-
node
|
|
471
|
+
const deactivateNode = (node, msg) => {
|
|
472
472
|
if (activeNodes.has(node))
|
|
473
473
|
activeNodes.delete(node);
|
|
474
|
-
cli.log("info",
|
|
474
|
+
cli.log("info", `${msg} (${activeNodes.size} active nodes remaining)`);
|
|
475
475
|
if (activeNodes.size === 0) {
|
|
476
476
|
const timeFinished = luxon_1.DateTime.now();
|
|
477
477
|
const duration = timeFinished.diff(timeZero);
|
|
478
|
-
cli.log("info", "everything finished -- stream processing in SpeechFlow graph stops " +
|
|
479
|
-
`(total duration: ${duration.toFormat("hh:mm:ss.SSS")})
|
|
478
|
+
cli.log("info", "**** everything finished -- stream processing in SpeechFlow graph stops " +
|
|
479
|
+
`(total duration: ${duration.toFormat("hh:mm:ss.SSS")}) ****`);
|
|
480
480
|
finishEvents.emit("finished");
|
|
481
481
|
}
|
|
482
|
+
};
|
|
483
|
+
node.stream.on("end", () => {
|
|
484
|
+
deactivateNode(node, `readable stream side of node <${node.id}> raised "end" event`);
|
|
482
485
|
});
|
|
483
486
|
node.stream.on("finish", () => {
|
|
484
|
-
|
|
485
|
-
activeNodes.delete(node);
|
|
486
|
-
cli.log("info", `writable stream of node "${node.id}" finished (${activeNodes.size} nodes remaining active)`);
|
|
487
|
-
if (activeNodes.size === 0) {
|
|
488
|
-
const timeFinished = luxon_1.DateTime.now();
|
|
489
|
-
const duration = timeFinished.diff(timeZero);
|
|
490
|
-
cli.log("info", "everything finished -- stream processing in SpeechFlow graph stops " +
|
|
491
|
-
`(total duration: ${duration.toFormat("hh:mm:ss.SSS")})`);
|
|
492
|
-
finishEvents.emit("finished");
|
|
493
|
-
}
|
|
487
|
+
deactivateNode(node, `writable stream side of node <${node.id}> raised "finish" event`);
|
|
494
488
|
});
|
|
495
489
|
}
|
|
496
490
|
/* define external request/response structure */
|
|
@@ -649,38 +643,38 @@ let cli = null;
|
|
|
649
643
|
/* graph processing: PASS 1: disconnect node streams */
|
|
650
644
|
for (const node of graphNodes) {
|
|
651
645
|
if (node.stream === null) {
|
|
652
|
-
cli.log("warning", `stream of node
|
|
646
|
+
cli.log("warning", `stream of node <${node.id}> no longer initialized`);
|
|
653
647
|
continue;
|
|
654
648
|
}
|
|
655
649
|
for (const other of Array.from(node.connectionsOut)) {
|
|
656
650
|
if (other.stream === null) {
|
|
657
|
-
cli.log("warning", `stream of incoming node
|
|
651
|
+
cli.log("warning", `stream of incoming node <${other.id}> no longer initialized`);
|
|
658
652
|
continue;
|
|
659
653
|
}
|
|
660
654
|
if (!(node.stream instanceof node_stream_1.default.Readable
|
|
661
655
|
|| node.stream instanceof node_stream_1.default.Duplex)) {
|
|
662
|
-
cli.log("warning", `stream of output node
|
|
656
|
+
cli.log("warning", `stream of output node <${node.id}> is neither of Readable nor Duplex type`);
|
|
663
657
|
continue;
|
|
664
658
|
}
|
|
665
659
|
if (!(other.stream instanceof node_stream_1.default.Writable
|
|
666
660
|
|| other.stream instanceof node_stream_1.default.Duplex)) {
|
|
667
|
-
cli.log("warning", `stream of input node
|
|
661
|
+
cli.log("warning", `stream of input node <${other.id}> is neither of Writable nor Duplex type`);
|
|
668
662
|
continue;
|
|
669
663
|
}
|
|
670
|
-
cli.log("info", `disconnect stream of node
|
|
664
|
+
cli.log("info", `disconnect stream of node <${node.id}> from stream of node <${other.id}>`);
|
|
671
665
|
node.stream.unpipe(other.stream);
|
|
672
666
|
}
|
|
673
667
|
}
|
|
674
668
|
/* graph processing: PASS 2: close nodes */
|
|
675
669
|
for (const node of graphNodes) {
|
|
676
|
-
cli.log("info", `close node
|
|
670
|
+
cli.log("info", `close node <${node.id}>`);
|
|
677
671
|
await node.close().catch((err) => {
|
|
678
|
-
cli.log("warning", `node
|
|
672
|
+
cli.log("warning", `node <${node.id}> failed to close: ${err}`);
|
|
679
673
|
});
|
|
680
674
|
}
|
|
681
675
|
/* graph processing: PASS 3: disconnect nodes */
|
|
682
676
|
for (const node of graphNodes) {
|
|
683
|
-
cli.log("info", `disconnect node
|
|
677
|
+
cli.log("info", `disconnect node <${node.id}>`);
|
|
684
678
|
const connectionsIn = Array.from(node.connectionsIn);
|
|
685
679
|
const connectionsOut = Array.from(node.connectionsOut);
|
|
686
680
|
connectionsIn.forEach((other) => { other.disconnect(node); });
|
|
@@ -688,34 +682,24 @@ let cli = null;
|
|
|
688
682
|
}
|
|
689
683
|
/* graph processing: PASS 4: shutdown nodes */
|
|
690
684
|
for (const node of graphNodes) {
|
|
691
|
-
cli.log("info", `destroy node
|
|
685
|
+
cli.log("info", `destroy node <${node.id}>`);
|
|
692
686
|
graphNodes.delete(node);
|
|
693
687
|
}
|
|
694
688
|
/* terminate process */
|
|
695
689
|
if (signal === "finished") {
|
|
696
|
-
cli.log("info", "
|
|
690
|
+
cli.log("info", "terminate process (exit code 0)");
|
|
697
691
|
process.exit(0);
|
|
698
692
|
}
|
|
699
693
|
else {
|
|
700
|
-
cli.log("info", "
|
|
694
|
+
cli.log("info", "terminate process (exit code 1)");
|
|
701
695
|
process.exit(1);
|
|
702
696
|
}
|
|
703
697
|
};
|
|
704
|
-
finishEvents.on("finished", () => {
|
|
705
|
-
|
|
706
|
-
});
|
|
707
|
-
process.on("
|
|
708
|
-
|
|
709
|
-
});
|
|
710
|
-
process.on("SIGUSR1", () => {
|
|
711
|
-
shutdown("SIGUSR1");
|
|
712
|
-
});
|
|
713
|
-
process.on("SIGUSR2", () => {
|
|
714
|
-
shutdown("SIGUSR2");
|
|
715
|
-
});
|
|
716
|
-
process.on("SIGTERM", () => {
|
|
717
|
-
shutdown("SIGTERM");
|
|
718
|
-
});
|
|
698
|
+
finishEvents.on("finished", () => { shutdown("finished"); });
|
|
699
|
+
process.on("SIGINT", () => { shutdown("SIGINT"); });
|
|
700
|
+
process.on("SIGUSR1", () => { shutdown("SIGUSR1"); });
|
|
701
|
+
process.on("SIGUSR2", () => { shutdown("SIGUSR2"); });
|
|
702
|
+
process.on("SIGTERM", () => { shutdown("SIGTERM"); });
|
|
719
703
|
})().catch((err) => {
|
|
720
704
|
if (cli !== null)
|
|
721
705
|
cli.log("error", err.message);
|
package/dst/speechflow.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"speechflow.js","sourceRoot":"","sources":["../src/speechflow.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"speechflow.js","sourceRoot":"","sources":["../src/speechflow.ts"],"names":[],"mappings":"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"}
|
package/etc/stx.conf
CHANGED
|
@@ -42,6 +42,20 @@ build
|
|
|
42
42
|
build-watch
|
|
43
43
|
nodemon --exec "stx build" --watch src --ext ts
|
|
44
44
|
|
|
45
|
+
# build all-in-one packages
|
|
46
|
+
build-pkg
|
|
47
|
+
cd dst && \
|
|
48
|
+
targets="node24-linux-x64,node24-linux-arm64"
|
|
49
|
+
targets="$targets,node24-win-x64,node24-win-arm64"
|
|
50
|
+
targets="$targets,node24-macos-x64,node24-macos-arm64"
|
|
51
|
+
pkg --sea --public -c ../package.json -t "$targets" speechflow.js && \
|
|
52
|
+
shx mv speechflow-linux-x64 speechflow-lnx-x64 && \
|
|
53
|
+
shx mv speechflow-linux-arm64 speechflow-lnx-a64 && \
|
|
54
|
+
shx mv speechflow-win-x64.exe speechflow-win-x64.exe && \
|
|
55
|
+
shx mv speechflow-win-arm64.exe speechflow-win-a64.exe && \
|
|
56
|
+
shx mv speechflow-macos-x64 speechflow-mac-x64 && \
|
|
57
|
+
shx mv speechflow-macos-arm64 speechflow-mac-a64
|
|
58
|
+
|
|
45
59
|
# [INTERNAL] wait for server
|
|
46
60
|
server-delay
|
|
47
61
|
delay 2.0
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "speechflow",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.2",
|
|
4
4
|
"x-stdver": "1.2.0-GA",
|
|
5
5
|
"x-release": "2025-07-21",
|
|
6
6
|
"homepage": "https://github.com/rse/speechflow",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"@elevenlabs/elevenlabs-js": "2.6.0",
|
|
27
27
|
"stream-transform": "3.4.0",
|
|
28
28
|
"get-stream": "9.0.1",
|
|
29
|
-
"@dotenvx/dotenvx": "1.48.
|
|
29
|
+
"@dotenvx/dotenvx": "1.48.2",
|
|
30
30
|
"speex-resampler": "3.0.1",
|
|
31
31
|
"pcm-convert": "1.6.5",
|
|
32
32
|
"object-path": "0.11.8",
|
|
@@ -87,6 +87,7 @@
|
|
|
87
87
|
"stmux": "1.8.11",
|
|
88
88
|
"nodemon": "3.1.10",
|
|
89
89
|
"shx": "0.4.0",
|
|
90
|
+
"@yao-pkg/pkg": "6.6.0",
|
|
90
91
|
"typescript": "5.8.3",
|
|
91
92
|
"delay-cli": "2.0.0",
|
|
92
93
|
"@rse/stx": "1.0.2",
|
package/src/speechflow.ts
CHANGED
|
@@ -61,11 +61,11 @@ type wsPeerInfo = {
|
|
|
61
61
|
"Usage: $0 " +
|
|
62
62
|
"[-h|--help] " +
|
|
63
63
|
"[-V|--version] " +
|
|
64
|
+
"[-S|--status] " +
|
|
64
65
|
"[-v|--verbose <level>] " +
|
|
65
66
|
"[-a|--address <ip-address>] " +
|
|
66
67
|
"[-p|--port <tcp-port>] " +
|
|
67
68
|
"[-C|--cache <directory>] " +
|
|
68
|
-
"[-S|--status] " +
|
|
69
69
|
"[-e|--expression <expression>] " +
|
|
70
70
|
"[-f|--file <file>] " +
|
|
71
71
|
"[-c|--config <id>@<yaml-config-file>] " +
|
|
@@ -80,6 +80,14 @@ type wsPeerInfo = {
|
|
|
80
80
|
default: false,
|
|
81
81
|
describe: "show program version information"
|
|
82
82
|
})
|
|
83
|
+
.option("S", {
|
|
84
|
+
alias: "status",
|
|
85
|
+
type: "boolean",
|
|
86
|
+
array: false,
|
|
87
|
+
coerce,
|
|
88
|
+
default: false,
|
|
89
|
+
describe: "show one-time status of nodes"
|
|
90
|
+
})
|
|
83
91
|
.option("v", {
|
|
84
92
|
alias: "log-level",
|
|
85
93
|
type: "string",
|
|
@@ -116,14 +124,6 @@ type wsPeerInfo = {
|
|
|
116
124
|
default: path.join(dataDir, "cache"),
|
|
117
125
|
describe: "directory for cached files (primarily AI model files)"
|
|
118
126
|
})
|
|
119
|
-
.option("S", {
|
|
120
|
-
alias: "status",
|
|
121
|
-
type: "boolean",
|
|
122
|
-
array: false,
|
|
123
|
-
coerce,
|
|
124
|
-
default: false,
|
|
125
|
-
describe: "show one-time status of nodes"
|
|
126
|
-
})
|
|
127
127
|
.option("e", {
|
|
128
128
|
alias: "expression",
|
|
129
129
|
type: "string",
|
|
@@ -231,20 +231,20 @@ type wsPeerInfo = {
|
|
|
231
231
|
/* load internal SpeechFlow nodes */
|
|
232
232
|
const pkgsI = [
|
|
233
233
|
"./speechflow-node-a2a-ffmpeg.js",
|
|
234
|
-
"./speechflow-node-a2a-wav.js",
|
|
235
|
-
"./speechflow-node-a2a-mute.js",
|
|
236
|
-
"./speechflow-node-a2a-meter.js",
|
|
237
234
|
"./speechflow-node-a2a-gender.js",
|
|
235
|
+
"./speechflow-node-a2a-meter.js",
|
|
236
|
+
"./speechflow-node-a2a-mute.js",
|
|
238
237
|
"./speechflow-node-a2a-vad.js",
|
|
238
|
+
"./speechflow-node-a2a-wav.js",
|
|
239
239
|
"./speechflow-node-a2t-deepgram.js",
|
|
240
240
|
"./speechflow-node-t2a-elevenlabs.js",
|
|
241
241
|
"./speechflow-node-t2a-kokoro.js",
|
|
242
242
|
"./speechflow-node-t2t-deepl.js",
|
|
243
|
-
"./speechflow-node-t2t-
|
|
243
|
+
"./speechflow-node-t2t-format.js",
|
|
244
244
|
"./speechflow-node-t2t-ollama.js",
|
|
245
|
-
"./speechflow-node-t2t-
|
|
245
|
+
"./speechflow-node-t2t-openai.js",
|
|
246
246
|
"./speechflow-node-t2t-subtitle.js",
|
|
247
|
-
"./speechflow-node-t2t-
|
|
247
|
+
"./speechflow-node-t2t-transformers.js",
|
|
248
248
|
"./speechflow-node-x2x-filter.js",
|
|
249
249
|
"./speechflow-node-x2x-trace.js",
|
|
250
250
|
"./speechflow-node-xio-device.js",
|
|
@@ -257,7 +257,7 @@ type wsPeerInfo = {
|
|
|
257
257
|
while (node.default !== undefined)
|
|
258
258
|
node = node.default
|
|
259
259
|
if (typeof node === "function" && typeof node.name === "string") {
|
|
260
|
-
cli.log("info", `loading SpeechFlow node
|
|
260
|
+
cli.log("info", `loading SpeechFlow node <${node.name}> from internal module`)
|
|
261
261
|
nodes[node.name] = node as typeof SpeechFlowNode
|
|
262
262
|
}
|
|
263
263
|
}
|
|
@@ -271,11 +271,11 @@ type wsPeerInfo = {
|
|
|
271
271
|
node = node.default
|
|
272
272
|
if (typeof node === "function" && typeof node.name === "string") {
|
|
273
273
|
if (nodes[node.name] !== undefined) {
|
|
274
|
-
cli.log("warning", `failed loading SpeechFlow node
|
|
274
|
+
cli.log("warning", `failed loading SpeechFlow node <${node.name}> ` +
|
|
275
275
|
`from external module "${pkg}" -- node already exists`)
|
|
276
276
|
continue
|
|
277
277
|
}
|
|
278
|
-
cli.log("info", `loading SpeechFlow node
|
|
278
|
+
cli.log("info", `loading SpeechFlow node <${node.name}> from external module "${pkg}"`)
|
|
279
279
|
nodes[node.name] = node as typeof SpeechFlowNode
|
|
280
280
|
}
|
|
281
281
|
}
|
|
@@ -353,7 +353,7 @@ type wsPeerInfo = {
|
|
|
353
353
|
},
|
|
354
354
|
createNode (id: string, opts: { [ id: string ]: any }, args: any[]) {
|
|
355
355
|
if (nodes[id] === undefined)
|
|
356
|
-
throw new Error(`unknown node
|
|
356
|
+
throw new Error(`unknown node <${id}>`)
|
|
357
357
|
let node: SpeechFlowNode
|
|
358
358
|
try {
|
|
359
359
|
let num = nodeNums.get(nodes[id]) ?? 0
|
|
@@ -364,19 +364,19 @@ type wsPeerInfo = {
|
|
|
364
364
|
catch (err) {
|
|
365
365
|
/* fatal error */
|
|
366
366
|
if (err instanceof Error)
|
|
367
|
-
cli!.log("error", `creation of <${id}>
|
|
367
|
+
cli!.log("error", `creation of node <${id}> failed: ${err.message}`)
|
|
368
368
|
else
|
|
369
|
-
cli!.log("error", `creation of <${id}>
|
|
369
|
+
cli!.log("error", `creation of node <${id}> failed: ${err}`)
|
|
370
370
|
process.exit(1)
|
|
371
371
|
}
|
|
372
372
|
const params = Object.keys(node.params)
|
|
373
373
|
.map((key) => `${key}: ${JSON.stringify(node.params[key])}`).join(", ")
|
|
374
|
-
cli!.log("info", `create node
|
|
374
|
+
cli!.log("info", `create node <${node.id}> (${params})`)
|
|
375
375
|
graphNodes.add(node)
|
|
376
376
|
return node
|
|
377
377
|
},
|
|
378
378
|
connectNode (node1: SpeechFlowNode, node2: SpeechFlowNode) {
|
|
379
|
-
cli!.log("info", `connect node
|
|
379
|
+
cli!.log("info", `connect node <${node1.id}> to node <${node2.id}>`)
|
|
380
380
|
node1.connect(node2)
|
|
381
381
|
}
|
|
382
382
|
})
|
|
@@ -399,7 +399,7 @@ type wsPeerInfo = {
|
|
|
399
399
|
|
|
400
400
|
/* ensure necessary incoming links */
|
|
401
401
|
if (node.input !== "none" && connectionsIn.length === 0)
|
|
402
|
-
throw new Error(`node
|
|
402
|
+
throw new Error(`node <${node.id}> requires input but has no input nodes connected`)
|
|
403
403
|
|
|
404
404
|
/* prune unnecessary incoming links */
|
|
405
405
|
if (node.input === "none" && connectionsIn.length > 0)
|
|
@@ -407,7 +407,7 @@ type wsPeerInfo = {
|
|
|
407
407
|
|
|
408
408
|
/* ensure necessary outgoing links */
|
|
409
409
|
if (node.output !== "none" && connectionsOut.length === 0)
|
|
410
|
-
throw new Error(`node
|
|
410
|
+
throw new Error(`node <${node.id}> requires output but has no output nodes connected`)
|
|
411
411
|
|
|
412
412
|
/* prune unnecessary outgoing links */
|
|
413
413
|
if (node.output === "none" && connectionsOut.length > 0)
|
|
@@ -418,8 +418,8 @@ type wsPeerInfo = {
|
|
|
418
418
|
connectionsOut = Array.from(node.connectionsOut)
|
|
419
419
|
for (const other of connectionsOut)
|
|
420
420
|
if (other.input !== node.output)
|
|
421
|
-
throw new Error(`${node.output} output node
|
|
422
|
-
`connected to ${other.input} input node
|
|
421
|
+
throw new Error(`${node.output} output node <${node.id}> cannot be ` +
|
|
422
|
+
`connected to ${other.input} input node <${other.id}> (payload is incompatible)`)
|
|
423
423
|
}
|
|
424
424
|
|
|
425
425
|
/* graph processing: PASS 3: open nodes */
|
|
@@ -433,34 +433,34 @@ type wsPeerInfo = {
|
|
|
433
433
|
})
|
|
434
434
|
|
|
435
435
|
/* open node */
|
|
436
|
-
cli!.log("info", `open node
|
|
436
|
+
cli!.log("info", `open node <${node.id}>`)
|
|
437
437
|
await node.open().catch((err: Error) => {
|
|
438
438
|
cli!.log("error", `[${node.id}]: ${err.message}`)
|
|
439
|
-
throw new Error(`failed to open node
|
|
439
|
+
throw new Error(`failed to open node <${node.id}>`)
|
|
440
440
|
})
|
|
441
441
|
}
|
|
442
442
|
|
|
443
443
|
/* graph processing: PASS 4: set time zero in all nodes */
|
|
444
444
|
const timeZero = DateTime.now()
|
|
445
445
|
for (const node of graphNodes) {
|
|
446
|
-
cli!.log("info", `set time zero in node
|
|
446
|
+
cli!.log("info", `set time zero in node <${node.id}>`)
|
|
447
447
|
node.setTimeZero(timeZero)
|
|
448
448
|
}
|
|
449
449
|
|
|
450
450
|
/* graph processing: PASS 5: connect node streams */
|
|
451
451
|
for (const node of graphNodes) {
|
|
452
452
|
if (node.stream === null)
|
|
453
|
-
throw new Error(`stream of node
|
|
453
|
+
throw new Error(`stream of node <${node.id}> still not initialized`)
|
|
454
454
|
for (const other of Array.from(node.connectionsOut)) {
|
|
455
455
|
if (other.stream === null)
|
|
456
|
-
throw new Error(`stream of incoming node
|
|
457
|
-
cli!.log("info", `connect stream of node
|
|
456
|
+
throw new Error(`stream of incoming node <${other.id}> still not initialized`)
|
|
457
|
+
cli!.log("info", `connect stream of node <${node.id}> to stream of node <${other.id}>`)
|
|
458
458
|
if (!( node.stream instanceof Stream.Readable
|
|
459
459
|
|| node.stream instanceof Stream.Duplex ))
|
|
460
|
-
throw new Error(`stream of output node
|
|
460
|
+
throw new Error(`stream of output node <${node.id}> is neither of Readable nor Duplex type`)
|
|
461
461
|
if (!( other.stream instanceof Stream.Writable
|
|
462
462
|
|| other.stream instanceof Stream.Duplex ))
|
|
463
|
-
throw new Error(`stream of input node
|
|
463
|
+
throw new Error(`stream of input node <${other.id}> is neither of Writable nor Duplex type`)
|
|
464
464
|
node.stream.pipe(other.stream)
|
|
465
465
|
}
|
|
466
466
|
}
|
|
@@ -470,32 +470,26 @@ type wsPeerInfo = {
|
|
|
470
470
|
const finishEvents = new EventEmitter()
|
|
471
471
|
for (const node of graphNodes) {
|
|
472
472
|
if (node.stream === null)
|
|
473
|
-
throw new Error(`stream of node
|
|
474
|
-
cli!.log("info", `observe stream of node
|
|
473
|
+
throw new Error(`stream of node <${node.id}> still not initialized`)
|
|
474
|
+
cli!.log("info", `observe stream of node <${node.id}> for finish event`)
|
|
475
475
|
activeNodes.add(node)
|
|
476
|
-
node
|
|
476
|
+
const deactivateNode = (node: SpeechFlowNode, msg: string) => {
|
|
477
477
|
if (activeNodes.has(node))
|
|
478
478
|
activeNodes.delete(node)
|
|
479
|
-
cli!.log("info",
|
|
479
|
+
cli!.log("info", `${msg} (${activeNodes.size} active nodes remaining)`)
|
|
480
480
|
if (activeNodes.size === 0) {
|
|
481
481
|
const timeFinished = DateTime.now()
|
|
482
482
|
const duration = timeFinished.diff(timeZero)
|
|
483
|
-
cli!.log("info", "everything finished -- stream processing in SpeechFlow graph stops " +
|
|
484
|
-
`(total duration: ${duration.toFormat("hh:mm:ss.SSS")})
|
|
483
|
+
cli!.log("info", "**** everything finished -- stream processing in SpeechFlow graph stops " +
|
|
484
|
+
`(total duration: ${duration.toFormat("hh:mm:ss.SSS")}) ****`)
|
|
485
485
|
finishEvents.emit("finished")
|
|
486
486
|
}
|
|
487
|
+
}
|
|
488
|
+
node.stream.on("end", () => {
|
|
489
|
+
deactivateNode(node, `readable stream side of node <${node.id}> raised "end" event`)
|
|
487
490
|
})
|
|
488
491
|
node.stream.on("finish", () => {
|
|
489
|
-
|
|
490
|
-
activeNodes.delete(node)
|
|
491
|
-
cli!.log("info", `writable stream of node "${node.id}" finished (${activeNodes.size} nodes remaining active)`)
|
|
492
|
-
if (activeNodes.size === 0) {
|
|
493
|
-
const timeFinished = DateTime.now()
|
|
494
|
-
const duration = timeFinished.diff(timeZero)
|
|
495
|
-
cli!.log("info", "everything finished -- stream processing in SpeechFlow graph stops " +
|
|
496
|
-
`(total duration: ${duration.toFormat("hh:mm:ss.SSS")})`)
|
|
497
|
-
finishEvents.emit("finished")
|
|
498
|
-
}
|
|
492
|
+
deactivateNode(node, `writable stream side of node <${node.id}> raised "finish" event`)
|
|
499
493
|
})
|
|
500
494
|
}
|
|
501
495
|
|
|
@@ -664,40 +658,40 @@ type wsPeerInfo = {
|
|
|
664
658
|
/* graph processing: PASS 1: disconnect node streams */
|
|
665
659
|
for (const node of graphNodes) {
|
|
666
660
|
if (node.stream === null) {
|
|
667
|
-
cli!.log("warning", `stream of node
|
|
661
|
+
cli!.log("warning", `stream of node <${node.id}> no longer initialized`)
|
|
668
662
|
continue
|
|
669
663
|
}
|
|
670
664
|
for (const other of Array.from(node.connectionsOut)) {
|
|
671
665
|
if (other.stream === null) {
|
|
672
|
-
cli!.log("warning", `stream of incoming node
|
|
666
|
+
cli!.log("warning", `stream of incoming node <${other.id}> no longer initialized`)
|
|
673
667
|
continue
|
|
674
668
|
}
|
|
675
669
|
if (!( node.stream instanceof Stream.Readable
|
|
676
670
|
|| node.stream instanceof Stream.Duplex )) {
|
|
677
|
-
cli!.log("warning", `stream of output node
|
|
671
|
+
cli!.log("warning", `stream of output node <${node.id}> is neither of Readable nor Duplex type`)
|
|
678
672
|
continue
|
|
679
673
|
}
|
|
680
674
|
if (!( other.stream instanceof Stream.Writable
|
|
681
675
|
|| other.stream instanceof Stream.Duplex )) {
|
|
682
|
-
cli!.log("warning", `stream of input node
|
|
676
|
+
cli!.log("warning", `stream of input node <${other.id}> is neither of Writable nor Duplex type`)
|
|
683
677
|
continue
|
|
684
678
|
}
|
|
685
|
-
cli!.log("info", `disconnect stream of node
|
|
679
|
+
cli!.log("info", `disconnect stream of node <${node.id}> from stream of node <${other.id}>`)
|
|
686
680
|
node.stream.unpipe(other.stream)
|
|
687
681
|
}
|
|
688
682
|
}
|
|
689
683
|
|
|
690
684
|
/* graph processing: PASS 2: close nodes */
|
|
691
685
|
for (const node of graphNodes) {
|
|
692
|
-
cli!.log("info", `close node
|
|
686
|
+
cli!.log("info", `close node <${node.id}>`)
|
|
693
687
|
await node.close().catch((err) => {
|
|
694
|
-
cli!.log("warning", `node
|
|
688
|
+
cli!.log("warning", `node <${node.id}> failed to close: ${err}`)
|
|
695
689
|
})
|
|
696
690
|
}
|
|
697
691
|
|
|
698
692
|
/* graph processing: PASS 3: disconnect nodes */
|
|
699
693
|
for (const node of graphNodes) {
|
|
700
|
-
cli!.log("info", `disconnect node
|
|
694
|
+
cli!.log("info", `disconnect node <${node.id}>`)
|
|
701
695
|
const connectionsIn = Array.from(node.connectionsIn)
|
|
702
696
|
const connectionsOut = Array.from(node.connectionsOut)
|
|
703
697
|
connectionsIn.forEach((other) => { other.disconnect(node) })
|
|
@@ -706,7 +700,7 @@ type wsPeerInfo = {
|
|
|
706
700
|
|
|
707
701
|
/* graph processing: PASS 4: shutdown nodes */
|
|
708
702
|
for (const node of graphNodes) {
|
|
709
|
-
cli!.log("info", `destroy node
|
|
703
|
+
cli!.log("info", `destroy node <${node.id}>`)
|
|
710
704
|
graphNodes.delete(node)
|
|
711
705
|
}
|
|
712
706
|
|
|
@@ -720,21 +714,11 @@ type wsPeerInfo = {
|
|
|
720
714
|
process.exit(1)
|
|
721
715
|
}
|
|
722
716
|
}
|
|
723
|
-
finishEvents.on("finished", () => {
|
|
724
|
-
shutdown("
|
|
725
|
-
})
|
|
726
|
-
process.on("
|
|
727
|
-
|
|
728
|
-
})
|
|
729
|
-
process.on("SIGUSR1", () => {
|
|
730
|
-
shutdown("SIGUSR1")
|
|
731
|
-
})
|
|
732
|
-
process.on("SIGUSR2", () => {
|
|
733
|
-
shutdown("SIGUSR2")
|
|
734
|
-
})
|
|
735
|
-
process.on("SIGTERM", () => {
|
|
736
|
-
shutdown("SIGTERM")
|
|
737
|
-
})
|
|
717
|
+
finishEvents.on("finished", () => { shutdown("finished") })
|
|
718
|
+
process.on("SIGINT", () => { shutdown("SIGINT") })
|
|
719
|
+
process.on("SIGUSR1", () => { shutdown("SIGUSR1") })
|
|
720
|
+
process.on("SIGUSR2", () => { shutdown("SIGUSR2") })
|
|
721
|
+
process.on("SIGTERM", () => { shutdown("SIGTERM") })
|
|
738
722
|
})().catch((err: Error) => {
|
|
739
723
|
if (cli !== null)
|
|
740
724
|
cli.log("error", err.message)
|