speechflow 1.6.4 → 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 +22 -0
- package/README.md +28 -3
- package/etc/speechflow.yaml +15 -13
- package/etc/stx.conf +5 -0
- package/package.json +5 -5
- package/speechflow-cli/dst/speechflow-main-api.js +3 -7
- package/speechflow-cli/dst/speechflow-main-api.js.map +1 -1
- package/speechflow-cli/dst/speechflow-main-graph.js +1 -1
- package/speechflow-cli/dst/speechflow-main.js +6 -0
- package/speechflow-cli/dst/speechflow-main.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-a2a-compressor-wt.js +1 -21
- package/speechflow-cli/dst/speechflow-node-a2a-compressor-wt.js.map +1 -1
- 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-wt.js +1 -21
- package/speechflow-cli/dst/speechflow-node-a2a-expander-wt.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 +4 -10
- 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 +70 -60
- 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 +58 -42
- 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.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 +13 -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 +26 -25
- 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 -2
- package/speechflow-cli/dst/speechflow-node-a2t-openai.js +15 -21
- package/speechflow-cli/dst/speechflow-node-a2t-openai.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-t2a-amazon.d.ts +1 -2
- package/speechflow-cli/dst/speechflow-node-t2a-amazon.js +9 -15
- package/speechflow-cli/dst/speechflow-node-t2a-amazon.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-t2a-elevenlabs.d.ts +1 -2
- package/speechflow-cli/dst/speechflow-node-t2a-elevenlabs.js +13 -18
- package/speechflow-cli/dst/speechflow-node-t2a-elevenlabs.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-t2a-kokoro.d.ts +0 -1
- package/speechflow-cli/dst/speechflow-node-t2a-kokoro.js +4 -10
- 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 +3 -3
- 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 +8 -8
- 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 +6 -4
- 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.d.ts +1 -0
- package/speechflow-cli/dst/speechflow-util-audio.js +22 -1
- package/speechflow-cli/dst/speechflow-util-audio.js.map +1 -1
- package/speechflow-cli/dst/speechflow-util-error.d.ts +1 -1
- package/speechflow-cli/dst/speechflow-util-error.js +7 -1
- package/speechflow-cli/dst/speechflow-util-error.js.map +1 -1
- package/speechflow-cli/dst/speechflow-util-stream.d.ts +2 -1
- package/speechflow-cli/dst/speechflow-util-stream.js +23 -3
- package/speechflow-cli/dst/speechflow-util-stream.js.map +1 -1
- package/speechflow-cli/etc/oxlint.jsonc +2 -1
- package/speechflow-cli/etc/tsconfig.json +1 -0
- package/speechflow-cli/package.json +20 -20
- package/speechflow-cli/src/speechflow-main-api.ts +6 -13
- package/speechflow-cli/src/speechflow-main-graph.ts +1 -1
- package/speechflow-cli/src/speechflow-main.ts +4 -0
- package/speechflow-cli/src/speechflow-node-a2a-compressor-wt.ts +1 -29
- package/speechflow-cli/src/speechflow-node-a2a-compressor.ts +13 -12
- package/speechflow-cli/src/speechflow-node-a2a-expander-wt.ts +1 -29
- package/speechflow-cli/src/speechflow-node-a2a-expander.ts +13 -12
- package/speechflow-cli/src/speechflow-node-a2a-ffmpeg.ts +4 -10
- 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 +83 -72
- package/speechflow-cli/src/speechflow-node-a2a-meter.ts +66 -46
- 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 +14 -12
- package/speechflow-cli/src/speechflow-node-a2a-speex.ts +14 -13
- package/speechflow-cli/src/speechflow-node-a2a-vad.ts +26 -25
- 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 -21
- package/speechflow-cli/src/speechflow-node-t2a-amazon.ts +9 -15
- package/speechflow-cli/src/speechflow-node-t2a-elevenlabs.ts +13 -18
- package/speechflow-cli/src/speechflow-node-t2a-kokoro.ts +4 -10
- 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 +3 -3
- 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 +12 -16
- 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 +7 -5
- 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 +11 -11
- package/speechflow-cli/src/speechflow-node.ts +6 -6
- package/speechflow-cli/src/speechflow-util-audio.ts +31 -1
- package/speechflow-cli/src/speechflow-util-error.ts +9 -3
- package/speechflow-cli/src/speechflow-util-stream.ts +31 -6
- package/speechflow-ui-db/dst/index.js +25 -25
- package/speechflow-ui-db/package.json +11 -11
- package/speechflow-ui-db/src/app.vue +14 -5
- package/speechflow-ui-st/dst/index.js +460 -25
- package/speechflow-ui-st/package.json +13 -13
- package/speechflow-ui-st/src/app.vue +8 -3
- package/speechflow-cli/dst/speechflow-util-webaudio-wt.js +0 -124
- package/speechflow-cli/dst/speechflow-util-webaudio-wt.js.map +0 -1
- package/speechflow-cli/dst/speechflow-util-webaudio.d.ts +0 -13
- package/speechflow-cli/dst/speechflow-util-webaudio.js +0 -137
- package/speechflow-cli/dst/speechflow-util-webaudio.js.map +0 -1
- /package/speechflow-cli/dst/{speechflow-util-webaudio-wt.d.ts → speechflow-node-a2a-pitch2-wt.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"speechflow-util-audio.js","sourceRoot":"","sources":["../src/speechflow-util-audio.ts"],"names":[],"mappings":";AAAA;;;;EAIE;;;;;;AASF,kDAuBC;AAGD,gDAgBC;AAGD,0CAQC;AAGD,0CAWC;AAGD,0CAQC;AAGD,0CAWC;AAGD,kEAwBC;AAGD,wBAEC;AACD,wBAEC;
|
|
1
|
+
{"version":3,"file":"speechflow-util-audio.js","sourceRoot":"","sources":["../src/speechflow-util-audio.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare function timeoutPromise(duration?: number, info?: string): Promise<
|
|
1
|
+
export declare function timeoutPromise<T = void>(duration?: number, info?: string): Promise<T>;
|
|
2
2
|
export declare function ensureError(error: unknown, prefix?: string, debug?: boolean): Error;
|
|
3
3
|
export declare function ensurePromise<T>(arg: T | Promise<T>): Promise<T>;
|
|
4
4
|
type runNoPromise<T> = [
|
|
@@ -26,7 +26,13 @@ function ensureError(error, prefix, debug = false) {
|
|
|
26
26
|
msg = `${prefix}: ${msg}`;
|
|
27
27
|
if (debug && error instanceof Error)
|
|
28
28
|
msg = `${msg}\n${error.stack}`;
|
|
29
|
-
|
|
29
|
+
if (error instanceof Error) {
|
|
30
|
+
const err = new Error(msg, { cause: error });
|
|
31
|
+
err.stack = error.stack;
|
|
32
|
+
return err;
|
|
33
|
+
}
|
|
34
|
+
else
|
|
35
|
+
return new Error(msg);
|
|
30
36
|
}
|
|
31
37
|
/* helper function for retrieving a Promise object */
|
|
32
38
|
function ensurePromise(arg) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"speechflow-util-error.js","sourceRoot":"","sources":["../src/speechflow-util-error.ts"],"names":[],"mappings":";AAAA;;;;EAIE;;AAGF,wCAIC;AAGD,
|
|
1
|
+
{"version":3,"file":"speechflow-util-error.js","sourceRoot":"","sources":["../src/speechflow-util-error.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import Stream from "node:stream";
|
|
|
2
2
|
import { DateTime } from "luxon";
|
|
3
3
|
import { SpeechFlowChunk } from "./speechflow-node";
|
|
4
4
|
export declare function createTransformStreamForWritableSide(): Stream.Transform;
|
|
5
|
-
export declare function createTransformStreamForReadableSide(type: "text" | "audio", getTimeZero: () => DateTime): Stream.Transform;
|
|
5
|
+
export declare function createTransformStreamForReadableSide(type: "text" | "audio", getTimeZero: () => DateTime, highWaterMark?: number): Stream.Transform;
|
|
6
6
|
export declare function ensureStreamChunk(type: "audio" | "text", chunk: SpeechFlowChunk | Buffer | string): string | Buffer<ArrayBufferLike> | SpeechFlowChunk;
|
|
7
7
|
export declare function streamChunkEncode(chunk: SpeechFlowChunk): Uint8Array<ArrayBufferLike>;
|
|
8
8
|
export declare function streamChunkDecode(_data: Uint8Array): SpeechFlowChunk;
|
|
@@ -16,3 +16,4 @@ export declare class StreamWrapper extends Stream.Transform {
|
|
|
16
16
|
_flush(callback: Stream.TransformCallback): void;
|
|
17
17
|
_destroy(error: Error | null, callback: Stream.TransformCallback): void;
|
|
18
18
|
}
|
|
19
|
+
export declare function destroyStream(stream: Stream.Readable | Stream.Writable | Stream.Duplex | Stream.Transform): Promise<void>;
|
|
@@ -47,6 +47,7 @@ exports.createTransformStreamForReadableSide = createTransformStreamForReadableS
|
|
|
47
47
|
exports.ensureStreamChunk = ensureStreamChunk;
|
|
48
48
|
exports.streamChunkEncode = streamChunkEncode;
|
|
49
49
|
exports.streamChunkDecode = streamChunkDecode;
|
|
50
|
+
exports.destroyStream = destroyStream;
|
|
50
51
|
/* standard dependencies */
|
|
51
52
|
const node_stream_1 = __importDefault(require("node:stream"));
|
|
52
53
|
/* external dependencies */
|
|
@@ -75,12 +76,12 @@ function createTransformStreamForWritableSide() {
|
|
|
75
76
|
}
|
|
76
77
|
/* create a Duplex/Transform stream which has
|
|
77
78
|
object-mode on Readable side and buffer/string-mode on Writable side */
|
|
78
|
-
function createTransformStreamForReadableSide(type, getTimeZero) {
|
|
79
|
+
function createTransformStreamForReadableSide(type, getTimeZero, highWaterMark) {
|
|
79
80
|
return new node_stream_1.default.Transform({
|
|
80
81
|
readableObjectMode: true,
|
|
81
82
|
writableObjectMode: true,
|
|
82
83
|
decodeStrings: false,
|
|
83
|
-
highWaterMark: (type === "audio" ? 19200
|
|
84
|
+
highWaterMark: highWaterMark ?? (type === "audio" ? 19200 /* 400ms */ : 65536 /* 64KB */),
|
|
84
85
|
transform(chunk, encoding, callback) {
|
|
85
86
|
if (chunk === null) {
|
|
86
87
|
this.push(null);
|
|
@@ -135,6 +136,8 @@ function streamChunkEncode(chunk) {
|
|
|
135
136
|
type: chunk.type,
|
|
136
137
|
payload
|
|
137
138
|
};
|
|
139
|
+
if (chunk.meta.size > 0)
|
|
140
|
+
data.meta = Array.from(chunk.meta.entries());
|
|
138
141
|
const _data = CBOR.encode(data);
|
|
139
142
|
return _data;
|
|
140
143
|
}
|
|
@@ -152,7 +155,7 @@ function streamChunkDecode(_data) {
|
|
|
152
155
|
payload = Buffer.from(data.payload);
|
|
153
156
|
else
|
|
154
157
|
payload = (new TextDecoder()).decode(data.payload);
|
|
155
|
-
const chunk = new speechflow_node_1.SpeechFlowChunk(luxon_1.Duration.fromMillis(data.timestampStart), luxon_1.Duration.fromMillis(data.timestampEnd), data.kind, data.type, payload);
|
|
158
|
+
const chunk = new speechflow_node_1.SpeechFlowChunk(luxon_1.Duration.fromMillis(data.timestampStart), luxon_1.Duration.fromMillis(data.timestampEnd), data.kind, data.type, payload, data.meta ? new Map(data.meta) : undefined);
|
|
156
159
|
return chunk;
|
|
157
160
|
}
|
|
158
161
|
/* utility class for wrapping a custom stream into a regular Transform stream */
|
|
@@ -216,4 +219,21 @@ class StreamWrapper extends node_stream_1.default.Transform {
|
|
|
216
219
|
}
|
|
217
220
|
}
|
|
218
221
|
exports.StreamWrapper = StreamWrapper;
|
|
222
|
+
/* helper function for destruction of a stream */
|
|
223
|
+
async function destroyStream(stream) {
|
|
224
|
+
/* signal the end for a writable stream */
|
|
225
|
+
if ((stream instanceof node_stream_1.default.Duplex ||
|
|
226
|
+
stream instanceof node_stream_1.default.Transform ||
|
|
227
|
+
stream instanceof node_stream_1.default.Writable) &&
|
|
228
|
+
(!stream.writableEnded &&
|
|
229
|
+
!stream.destroyed))
|
|
230
|
+
await Promise.race([
|
|
231
|
+
new Promise((resolve) => {
|
|
232
|
+
stream.end(() => { resolve(); });
|
|
233
|
+
}),
|
|
234
|
+
util.timeoutPromise(5000, "stream end timeout")
|
|
235
|
+
]);
|
|
236
|
+
/* destroy the stream */
|
|
237
|
+
stream.destroy();
|
|
238
|
+
}
|
|
219
239
|
//# sourceMappingURL=speechflow-util-stream.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"speechflow-util-stream.js","sourceRoot":"","sources":["../src/speechflow-util-stream.ts"],"names":[],"mappings":";AAAA;;;;EAIE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeF,oFAeC;AAID,oFA6BC;AAGD,8CAYC;
|
|
1
|
+
{"version":3,"file":"speechflow-util-stream.js","sourceRoot":"","sources":["../src/speechflow-util-stream.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,21 +17,20 @@
|
|
|
17
17
|
"dependencies": {
|
|
18
18
|
"cli-io": "0.9.13",
|
|
19
19
|
"yargs": "18.0.0",
|
|
20
|
-
"flowlink": "1.2.
|
|
20
|
+
"flowlink": "1.2.3",
|
|
21
21
|
"js-yaml": "4.1.0",
|
|
22
22
|
"@gpeng/naudiodon": "2.4.1",
|
|
23
23
|
"@deepgram/sdk": "4.11.2",
|
|
24
|
-
"deepl-node": "1.19.
|
|
25
|
-
"@elevenlabs/elevenlabs-js": "2.
|
|
26
|
-
"stream-transform": "3.4.0",
|
|
24
|
+
"deepl-node": "1.19.1",
|
|
25
|
+
"@elevenlabs/elevenlabs-js": "2.16.0",
|
|
27
26
|
"get-stream": "9.0.1",
|
|
28
|
-
"@dotenvx/dotenvx": "1.
|
|
27
|
+
"@dotenvx/dotenvx": "1.51.0",
|
|
29
28
|
"speex-resampler": "3.0.1",
|
|
30
29
|
"@sapphi-red/speex-preprocess-wasm": "0.4.0",
|
|
31
30
|
"@shiguredo/rnnoise-wasm": "2025.1.5",
|
|
32
|
-
"@aws-sdk/client-transcribe-streaming": "3.
|
|
33
|
-
"@aws-sdk/client-translate": "3.
|
|
34
|
-
"@aws-sdk/client-polly": "3.
|
|
31
|
+
"@aws-sdk/client-transcribe-streaming": "3.896.0",
|
|
32
|
+
"@aws-sdk/client-translate": "3.896.0",
|
|
33
|
+
"@aws-sdk/client-polly": "3.896.0",
|
|
35
34
|
"@google-cloud/translate": "9.2.0",
|
|
36
35
|
"node-web-audio-api": "1.0.4",
|
|
37
36
|
"object-path": "0.11.8",
|
|
@@ -45,8 +44,8 @@
|
|
|
45
44
|
"hapi-plugin-header": "1.1.8",
|
|
46
45
|
"hapi-plugin-websocket": "2.4.11",
|
|
47
46
|
"@opensumi/reconnecting-websocket": "4.4.0",
|
|
48
|
-
"ollama": "0.
|
|
49
|
-
"openai": "5.
|
|
47
|
+
"ollama": "0.6.0",
|
|
48
|
+
"openai": "5.23.1",
|
|
50
49
|
"@rse/ffmpeg": "1.4.2",
|
|
51
50
|
"ffmpeg-stream": "1.0.1",
|
|
52
51
|
"installed-packages": "1.0.13",
|
|
@@ -66,24 +65,25 @@
|
|
|
66
65
|
"node-interval-tree": "2.1.2",
|
|
67
66
|
"wrap-text": "1.0.10",
|
|
68
67
|
"cli-table3": "0.6.5",
|
|
69
|
-
"@
|
|
68
|
+
"@soundtouchjs/audio-worklet": "0.2.1",
|
|
69
|
+
"@rse/stx": "1.1.2"
|
|
70
70
|
},
|
|
71
71
|
"devDependencies": {
|
|
72
|
-
"eslint": "9.
|
|
73
|
-
"@eslint/js": "9.
|
|
72
|
+
"eslint": "9.36.0",
|
|
73
|
+
"@eslint/js": "9.36.0",
|
|
74
74
|
"neostandard": "0.12.2",
|
|
75
75
|
"eslint-plugin-promise": "7.2.1",
|
|
76
76
|
"eslint-plugin-import": "2.32.0",
|
|
77
77
|
"eslint-plugin-node": "11.1.0",
|
|
78
|
-
"typescript-eslint": "8.
|
|
79
|
-
"@typescript-eslint/eslint-plugin": "8.
|
|
80
|
-
"@typescript-eslint/parser": "8.
|
|
81
|
-
"oxlint": "1.
|
|
82
|
-
"eslint-plugin-oxlint": "1.
|
|
78
|
+
"typescript-eslint": "8.44.1",
|
|
79
|
+
"@typescript-eslint/eslint-plugin": "8.44.1",
|
|
80
|
+
"@typescript-eslint/parser": "8.44.1",
|
|
81
|
+
"oxlint": "1.18.0",
|
|
82
|
+
"eslint-plugin-oxlint": "1.18.0",
|
|
83
83
|
"@biomejs/biome": "2.0.6",
|
|
84
84
|
"eslint-config-biome": "2.1.3",
|
|
85
85
|
|
|
86
|
-
"@types/node": "24.
|
|
86
|
+
"@types/node": "24.5.2",
|
|
87
87
|
"@types/yargs": "17.0.33",
|
|
88
88
|
"@types/js-yaml": "4.0.9",
|
|
89
89
|
"@types/object-path": "0.11.4",
|
|
@@ -97,7 +97,7 @@
|
|
|
97
97
|
"stmux": "1.8.11",
|
|
98
98
|
"nodemon": "3.1.10",
|
|
99
99
|
"shx": "0.4.0",
|
|
100
|
-
"@yao-pkg/pkg": "6.
|
|
100
|
+
"@yao-pkg/pkg": "6.7.0",
|
|
101
101
|
"typescript": "5.9.2",
|
|
102
102
|
"delay-cli": "2.0.0",
|
|
103
103
|
"cross-env": "10.0.0"
|
|
@@ -25,13 +25,10 @@ import { NodeGraph } from "./speechflow-main-graph"
|
|
|
25
25
|
import pkg from "../../package.json"
|
|
26
26
|
|
|
27
27
|
/* internal helper type definitions */
|
|
28
|
-
type WSPeerContext = {
|
|
29
|
-
peer: string
|
|
30
|
-
}
|
|
31
28
|
type WSPeerInfo = {
|
|
32
|
-
ctx:
|
|
33
|
-
ws:
|
|
34
|
-
req:
|
|
29
|
+
ctx: Record<string, any>
|
|
30
|
+
ws: WebSocket
|
|
31
|
+
req: http.IncomingMessage
|
|
35
32
|
}
|
|
36
33
|
|
|
37
34
|
/* Application Programming Interface (API) server management class */
|
|
@@ -76,6 +73,7 @@ export class APIServer {
|
|
|
76
73
|
reject(new Error("timeout")), 10 * 1000))
|
|
77
74
|
]).catch((err: Error) => {
|
|
78
75
|
this.cli.log("warning", `external request to node <${name}> failed: ${err.message}`)
|
|
76
|
+
throw err
|
|
79
77
|
})
|
|
80
78
|
}
|
|
81
79
|
}
|
|
@@ -177,18 +175,13 @@ export class APIServer {
|
|
|
177
175
|
plugins: {
|
|
178
176
|
websocket: {
|
|
179
177
|
autoping: 30 * 1000,
|
|
180
|
-
connect: (
|
|
181
|
-
const ctx: WSPeerContext = argList.ctx
|
|
182
|
-
const ws: WebSocket = argList.ws
|
|
183
|
-
const req: http.IncomingMessage = argList.req
|
|
178
|
+
connect: ({ ctx, ws, req }) => {
|
|
184
179
|
const peer = `${req.socket.remoteAddress}:${req.socket.remotePort}`
|
|
185
180
|
ctx.peer = peer
|
|
186
181
|
this.wsPeers.set(peer, { ctx, ws, req })
|
|
187
182
|
this.cli.log("info", `HAPI: WebSocket: connect: peer ${peer}`)
|
|
188
183
|
},
|
|
189
|
-
disconnect: (
|
|
190
|
-
const ctx: WSPeerContext = argList.ctx
|
|
191
|
-
const ws: WebSocket = argList.ws
|
|
184
|
+
disconnect: ({ ctx, ws }) => {
|
|
192
185
|
const peer = ctx.peer
|
|
193
186
|
this.wsPeers.delete(peer)
|
|
194
187
|
ws.removeAllListeners()
|
|
@@ -174,7 +174,7 @@ export class NodeGraph {
|
|
|
174
174
|
await Promise.race<void>([
|
|
175
175
|
node.open(),
|
|
176
176
|
new Promise<never>((resolve, reject) => setTimeout(() =>
|
|
177
|
-
reject(new Error("timeout")),
|
|
177
|
+
reject(new Error("timeout")), 30 * 1000))
|
|
178
178
|
]).catch((err: Error) => {
|
|
179
179
|
this.cli.log("error", `<${node.id}>: failed to open node <${node.id}>: ${err.message}`)
|
|
180
180
|
throw new Error(`failed to open node <${node.id}>: ${err.message}`)
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
/* standard dependencies */
|
|
8
8
|
import { EventEmitter } from "node:events"
|
|
9
|
+
import SpeexResampler from "speex-resampler"
|
|
9
10
|
|
|
10
11
|
/* internal dependencies */
|
|
11
12
|
import { CLIContext } from "./speechflow-main-cli"
|
|
@@ -83,6 +84,9 @@ export default class Main {
|
|
|
83
84
|
process.exit(0)
|
|
84
85
|
}
|
|
85
86
|
|
|
87
|
+
/* global library initialization */
|
|
88
|
+
await SpeexResampler.initPromise
|
|
89
|
+
|
|
86
90
|
/* initialize graph processor */
|
|
87
91
|
const graph = new NodeGraph(cli, debug)
|
|
88
92
|
|
|
@@ -61,34 +61,6 @@ class CompressorProcessor extends AudioWorkletProcessor {
|
|
|
61
61
|
return targetOut - levelDB
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
-
/* update envelope (smoothed amplitude contour) for single channel */
|
|
65
|
-
private updateEnvelopeForChannel (
|
|
66
|
-
chan: number,
|
|
67
|
-
samples: Float32Array,
|
|
68
|
-
attack: number,
|
|
69
|
-
release: number
|
|
70
|
-
): void {
|
|
71
|
-
/* fetch old envelope value */
|
|
72
|
-
if (this.env[chan] === undefined)
|
|
73
|
-
this.env[chan] = 1e-12
|
|
74
|
-
let env = this.env[chan]
|
|
75
|
-
|
|
76
|
-
/* calculate attack/release alpha values */
|
|
77
|
-
const alphaA = Math.exp(-1 / (attack * this.sampleRate))
|
|
78
|
-
const alphaR = Math.exp(-1 / (release * this.sampleRate))
|
|
79
|
-
|
|
80
|
-
/* iterate over all samples and calculate RMS */
|
|
81
|
-
for (const s of samples) {
|
|
82
|
-
const x = Math.abs(s)
|
|
83
|
-
const det = x * x
|
|
84
|
-
if (det > env)
|
|
85
|
-
env = alphaA * env + (1 - alphaA) * det
|
|
86
|
-
else
|
|
87
|
-
env = alphaR * env + (1 - alphaR) * det
|
|
88
|
-
}
|
|
89
|
-
this.env[chan] = Math.sqrt(Math.max(env, 1e-12))
|
|
90
|
-
}
|
|
91
|
-
|
|
92
64
|
/* process a single sample frame */
|
|
93
65
|
process(
|
|
94
66
|
inputs: Float32Array[][],
|
|
@@ -121,7 +93,7 @@ class CompressorProcessor extends AudioWorkletProcessor {
|
|
|
121
93
|
|
|
122
94
|
/* update envelope per channel */
|
|
123
95
|
for (let ch = 0; ch < nCh; ch++)
|
|
124
|
-
this.updateEnvelopeForChannel(ch, input[ch], attackS, releaseS)
|
|
96
|
+
this.env[ch] = util.updateEnvelopeForChannel(this.env, this.sampleRate, ch, input[ch], attackS, releaseS)
|
|
125
97
|
|
|
126
98
|
/* determine linear value from decibel makeup value */
|
|
127
99
|
const makeUpLin = util.dB2lin(makeupDB)
|
|
@@ -137,8 +137,6 @@ class AudioCompressor extends util.WebAudio {
|
|
|
137
137
|
|
|
138
138
|
/* destroy the compressor */
|
|
139
139
|
public async destroy (): Promise<void> {
|
|
140
|
-
await super.destroy()
|
|
141
|
-
|
|
142
140
|
/* destroy nodes */
|
|
143
141
|
if (this.compressorNode !== null) {
|
|
144
142
|
this.compressorNode.disconnect()
|
|
@@ -148,6 +146,9 @@ class AudioCompressor extends util.WebAudio {
|
|
|
148
146
|
this.gainNode.disconnect()
|
|
149
147
|
this.gainNode = null
|
|
150
148
|
}
|
|
149
|
+
|
|
150
|
+
/* destroy parent */
|
|
151
|
+
await super.destroy()
|
|
151
152
|
}
|
|
152
153
|
}
|
|
153
154
|
|
|
@@ -157,7 +158,7 @@ export default class SpeechFlowNodeA2ACompressor extends SpeechFlowNode {
|
|
|
157
158
|
public static name = "a2a-compressor"
|
|
158
159
|
|
|
159
160
|
/* internal state */
|
|
160
|
-
private
|
|
161
|
+
private closing = false
|
|
161
162
|
private compressor: AudioCompressor | null = null
|
|
162
163
|
private bus: EventEmitter | null = null
|
|
163
164
|
private intervalId: ReturnType<typeof setInterval> | null = null
|
|
@@ -193,7 +194,7 @@ export default class SpeechFlowNodeA2ACompressor extends SpeechFlowNode {
|
|
|
193
194
|
/* open node */
|
|
194
195
|
async open () {
|
|
195
196
|
/* clear destruction flag */
|
|
196
|
-
this.
|
|
197
|
+
this.closing = false
|
|
197
198
|
|
|
198
199
|
/* setup compressor */
|
|
199
200
|
this.compressor = new AudioCompressor(
|
|
@@ -234,7 +235,7 @@ export default class SpeechFlowNodeA2ACompressor extends SpeechFlowNode {
|
|
|
234
235
|
writableObjectMode: true,
|
|
235
236
|
decodeStrings: false,
|
|
236
237
|
transform (chunk: SpeechFlowChunk & { payload: Buffer }, encoding, callback) {
|
|
237
|
-
if (self.
|
|
238
|
+
if (self.closing) {
|
|
238
239
|
callback(new Error("stream already destroyed"))
|
|
239
240
|
return
|
|
240
241
|
}
|
|
@@ -244,7 +245,7 @@ export default class SpeechFlowNodeA2ACompressor extends SpeechFlowNode {
|
|
|
244
245
|
/* compress chunk */
|
|
245
246
|
const payload = util.convertBufToI16(chunk.payload)
|
|
246
247
|
self.compressor?.process(payload).then((result) => {
|
|
247
|
-
if (self.
|
|
248
|
+
if (self.closing)
|
|
248
249
|
throw new Error("stream already destroyed")
|
|
249
250
|
if ((self.params.type === "standalone" && self.params.mode === "compress") ||
|
|
250
251
|
(self.params.type === "sidechain" && self.params.mode === "adjust") ) {
|
|
@@ -255,13 +256,13 @@ export default class SpeechFlowNodeA2ACompressor extends SpeechFlowNode {
|
|
|
255
256
|
this.push(chunk)
|
|
256
257
|
callback()
|
|
257
258
|
}).catch((error: unknown) => {
|
|
258
|
-
if (!self.
|
|
259
|
+
if (!self.closing)
|
|
259
260
|
callback(util.ensureError(error, "compression failed"))
|
|
260
261
|
})
|
|
261
262
|
}
|
|
262
263
|
},
|
|
263
264
|
final (callback) {
|
|
264
|
-
if (self.
|
|
265
|
+
if (self.closing) {
|
|
265
266
|
callback()
|
|
266
267
|
return
|
|
267
268
|
}
|
|
@@ -273,8 +274,8 @@ export default class SpeechFlowNodeA2ACompressor extends SpeechFlowNode {
|
|
|
273
274
|
|
|
274
275
|
/* close node */
|
|
275
276
|
async close () {
|
|
276
|
-
/* indicate
|
|
277
|
-
this.
|
|
277
|
+
/* indicate closing */
|
|
278
|
+
this.closing = true
|
|
278
279
|
|
|
279
280
|
/* clear interval */
|
|
280
281
|
if (this.intervalId !== null) {
|
|
@@ -294,9 +295,9 @@ export default class SpeechFlowNodeA2ACompressor extends SpeechFlowNode {
|
|
|
294
295
|
this.compressor = null
|
|
295
296
|
}
|
|
296
297
|
|
|
297
|
-
/*
|
|
298
|
+
/* shutdown stream */
|
|
298
299
|
if (this.stream !== null) {
|
|
299
|
-
this.stream
|
|
300
|
+
await util.destroyStream(this.stream)
|
|
300
301
|
this.stream = null
|
|
301
302
|
}
|
|
302
303
|
}
|
|
@@ -61,34 +61,6 @@ class ExpanderProcessor extends AudioWorkletProcessor {
|
|
|
61
61
|
return targetOut - levelDB
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
-
/* update envelope (smoothed amplitude contour) for single channel */
|
|
65
|
-
private updateEnvelopeForChannel (
|
|
66
|
-
chan: number,
|
|
67
|
-
samples: Float32Array,
|
|
68
|
-
attack: number,
|
|
69
|
-
release: number
|
|
70
|
-
): void {
|
|
71
|
-
/* fetch old envelope value */
|
|
72
|
-
if (this.env[chan] === undefined)
|
|
73
|
-
this.env[chan] = 1e-12
|
|
74
|
-
let env = this.env[chan]
|
|
75
|
-
|
|
76
|
-
/* calculate attack/release alpha values */
|
|
77
|
-
const alphaA = Math.exp(-1 / (attack * this.sampleRate))
|
|
78
|
-
const alphaR = Math.exp(-1 / (release * this.sampleRate))
|
|
79
|
-
|
|
80
|
-
/* iterate over all samples and calculate RMS */
|
|
81
|
-
for (const s of samples) {
|
|
82
|
-
const x = Math.abs(s)
|
|
83
|
-
const det = x * x
|
|
84
|
-
if (det > env)
|
|
85
|
-
env = alphaA * env + (1 - alphaA) * det
|
|
86
|
-
else
|
|
87
|
-
env = alphaR * env + (1 - alphaR) * det
|
|
88
|
-
}
|
|
89
|
-
this.env[chan] = Math.sqrt(Math.max(env, 1e-12))
|
|
90
|
-
}
|
|
91
|
-
|
|
92
64
|
/* process a single sample frame */
|
|
93
65
|
process(
|
|
94
66
|
inputs: Float32Array[][],
|
|
@@ -126,7 +98,7 @@ class ExpanderProcessor extends AudioWorkletProcessor {
|
|
|
126
98
|
|
|
127
99
|
/* update envelope per channel */
|
|
128
100
|
for (let ch = 0; ch < nCh; ch++)
|
|
129
|
-
this.updateEnvelopeForChannel(ch, input[ch], attackS, releaseS)
|
|
101
|
+
this.env[ch] = util.updateEnvelopeForChannel(this.env, this.sampleRate, ch, input[ch], attackS, releaseS)
|
|
130
102
|
|
|
131
103
|
/* determine linear value from decibel makeup value */
|
|
132
104
|
const makeUpLin = util.dB2lin(makeupDB)
|