speechflow 2.2.1 → 2.3.1
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/{etc/claude.md → AGENTS.md} +8 -3
- package/CHANGELOG.md +98 -1
- package/README.md +28 -4
- package/etc/speechflow.yaml +3 -1
- package/etc/stx.conf +1 -1
- package/package.json +6 -6
- package/speechflow-cli/dst/speechflow-main-api.d.ts +2 -1
- package/speechflow-cli/dst/speechflow-main-api.js +57 -16
- package/speechflow-cli/dst/speechflow-main-api.js.map +1 -1
- package/speechflow-cli/dst/speechflow-main-cli.js +2 -2
- package/speechflow-cli/dst/speechflow-main-config.js +1 -1
- package/speechflow-cli/dst/speechflow-main-graph.js +55 -21
- package/speechflow-cli/dst/speechflow-main-graph.js.map +1 -1
- package/speechflow-cli/dst/speechflow-main-nodes.js +1 -1
- package/speechflow-cli/dst/speechflow-main-status.js +6 -3
- package/speechflow-cli/dst/speechflow-main-status.js.map +1 -1
- package/speechflow-cli/dst/speechflow-main.js +1 -1
- package/speechflow-cli/dst/speechflow-node-a2a-compressor-wt.js +17 -19
- package/speechflow-cli/dst/speechflow-node-a2a-compressor-wt.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-a2a-compressor.js +25 -8
- package/speechflow-cli/dst/speechflow-node-a2a-compressor.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-a2a-expander-wt.js +16 -13
- package/speechflow-cli/dst/speechflow-node-a2a-expander-wt.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-a2a-expander.js +6 -5
- package/speechflow-cli/dst/speechflow-node-a2a-expander.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-a2a-ffmpeg.js +7 -7
- package/speechflow-cli/dst/speechflow-node-a2a-ffmpeg.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-a2a-filler.js +7 -4
- package/speechflow-cli/dst/speechflow-node-a2a-filler.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-a2a-gain.js +1 -1
- package/speechflow-cli/dst/speechflow-node-a2a-gender.js +21 -16
- package/speechflow-cli/dst/speechflow-node-a2a-gender.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-a2a-gtcrn-wt.js +1 -1
- package/speechflow-cli/dst/speechflow-node-a2a-gtcrn.js +33 -11
- package/speechflow-cli/dst/speechflow-node-a2a-gtcrn.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-a2a-meter.js +2 -2
- package/speechflow-cli/dst/speechflow-node-a2a-meter.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-a2a-mute.js +1 -1
- package/speechflow-cli/dst/speechflow-node-a2a-pitch.js +4 -3
- package/speechflow-cli/dst/speechflow-node-a2a-pitch.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-a2a-rnnoise-wt.js +2 -2
- package/speechflow-cli/dst/speechflow-node-a2a-rnnoise-wt.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-a2a-rnnoise.js +19 -11
- package/speechflow-cli/dst/speechflow-node-a2a-rnnoise.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-a2a-speex.js +8 -8
- package/speechflow-cli/dst/speechflow-node-a2a-speex.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-a2a-vad.js +33 -29
- package/speechflow-cli/dst/speechflow-node-a2a-vad.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-a2a-wav.js +6 -5
- package/speechflow-cli/dst/speechflow-node-a2a-wav.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-a2t-amazon.d.ts +2 -1
- package/speechflow-cli/dst/speechflow-node-a2t-amazon.js +42 -23
- package/speechflow-cli/dst/speechflow-node-a2t-amazon.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-a2t-deepgram.js +13 -5
- package/speechflow-cli/dst/speechflow-node-a2t-deepgram.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-a2t-google.d.ts +1 -0
- package/speechflow-cli/dst/speechflow-node-a2t-google.js +8 -2
- package/speechflow-cli/dst/speechflow-node-a2t-google.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-a2t-openai.js +33 -27
- package/speechflow-cli/dst/speechflow-node-a2t-openai.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-t2a-amazon.js +16 -5
- package/speechflow-cli/dst/speechflow-node-t2a-amazon.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-t2a-elevenlabs.js +17 -5
- package/speechflow-cli/dst/speechflow-node-t2a-elevenlabs.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-t2a-google.js +17 -5
- package/speechflow-cli/dst/speechflow-node-t2a-google.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-t2a-kitten.d.ts +15 -0
- package/speechflow-cli/dst/speechflow-node-t2a-kitten.js +194 -0
- package/speechflow-cli/dst/speechflow-node-t2a-kitten.js.map +1 -0
- package/speechflow-cli/dst/speechflow-node-t2a-kokoro.js +24 -10
- package/speechflow-cli/dst/speechflow-node-t2a-kokoro.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-t2a-openai.js +17 -5
- package/speechflow-cli/dst/speechflow-node-t2a-openai.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-t2a-supertonic.js +22 -7
- package/speechflow-cli/dst/speechflow-node-t2a-supertonic.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-t2t-amazon.js +1 -1
- package/speechflow-cli/dst/speechflow-node-t2t-deepl.js +1 -1
- package/speechflow-cli/dst/speechflow-node-t2t-format.js +1 -1
- package/speechflow-cli/dst/speechflow-node-t2t-google.js +4 -2
- package/speechflow-cli/dst/speechflow-node-t2t-google.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-t2t-modify.js +1 -1
- package/speechflow-cli/dst/speechflow-node-t2t-opus.js +10 -2
- package/speechflow-cli/dst/speechflow-node-t2t-opus.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-t2t-profanity.js +1 -1
- package/speechflow-cli/dst/speechflow-node-t2t-punctuation.js +1 -1
- package/speechflow-cli/dst/speechflow-node-t2t-sentence.d.ts +3 -0
- package/speechflow-cli/dst/speechflow-node-t2t-sentence.js +160 -57
- package/speechflow-cli/dst/speechflow-node-t2t-sentence.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-t2t-spellcheck.js +1 -1
- package/speechflow-cli/dst/speechflow-node-t2t-subtitle.js +34 -14
- package/speechflow-cli/dst/speechflow-node-t2t-subtitle.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-t2t-summary.js +3 -3
- package/speechflow-cli/dst/speechflow-node-t2t-summary.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-t2t-translate.js +1 -1
- package/speechflow-cli/dst/speechflow-node-x2x-filter.js +3 -2
- package/speechflow-cli/dst/speechflow-node-x2x-filter.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-x2x-trace.js +1 -1
- package/speechflow-cli/dst/speechflow-node-xio-device.js +18 -7
- package/speechflow-cli/dst/speechflow-node-xio-device.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-xio-exec.js +27 -15
- package/speechflow-cli/dst/speechflow-node-xio-exec.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-xio-file.js +13 -7
- package/speechflow-cli/dst/speechflow-node-xio-file.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-xio-mqtt.js +25 -12
- package/speechflow-cli/dst/speechflow-node-xio-mqtt.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-xio-vban.js +32 -20
- package/speechflow-cli/dst/speechflow-node-xio-vban.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-xio-webrtc.d.ts +1 -0
- package/speechflow-cli/dst/speechflow-node-xio-webrtc.js +84 -63
- package/speechflow-cli/dst/speechflow-node-xio-webrtc.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-xio-websocket.d.ts +1 -0
- package/speechflow-cli/dst/speechflow-node-xio-websocket.js +75 -20
- package/speechflow-cli/dst/speechflow-node-xio-websocket.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node.js +5 -7
- package/speechflow-cli/dst/speechflow-node.js.map +1 -1
- package/speechflow-cli/dst/speechflow-util-audio-wt.js +31 -5
- package/speechflow-cli/dst/speechflow-util-audio-wt.js.map +1 -1
- package/speechflow-cli/dst/speechflow-util-audio.d.ts +1 -1
- package/speechflow-cli/dst/speechflow-util-audio.js +28 -15
- 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 +2 -2
- package/speechflow-cli/dst/speechflow-util-error.js.map +1 -1
- package/speechflow-cli/dst/speechflow-util-llm.js +13 -3
- package/speechflow-cli/dst/speechflow-util-llm.js.map +1 -1
- package/speechflow-cli/dst/speechflow-util-misc.d.ts +3 -2
- package/speechflow-cli/dst/speechflow-util-misc.js +63 -6
- package/speechflow-cli/dst/speechflow-util-misc.js.map +1 -1
- package/speechflow-cli/dst/speechflow-util-queue.d.ts +9 -17
- package/speechflow-cli/dst/speechflow-util-queue.js +98 -78
- package/speechflow-cli/dst/speechflow-util-queue.js.map +1 -1
- package/speechflow-cli/dst/speechflow-util-stream.d.ts +1 -1
- package/speechflow-cli/dst/speechflow-util-stream.js +35 -8
- package/speechflow-cli/dst/speechflow-util-stream.js.map +1 -1
- package/speechflow-cli/dst/speechflow-util.js +1 -1
- package/speechflow-cli/dst/speechflow.d.ts +1 -1
- package/speechflow-cli/dst/speechflow.js +1 -1
- package/speechflow-cli/etc/eslint.mjs +1 -1
- package/speechflow-cli/etc/oxlint.jsonc +2 -1
- package/speechflow-cli/etc/stx.conf +8 -2
- package/speechflow-cli/package.d/@ericedouard+vad-node-realtime+0.2.0.patch +2 -1
- package/speechflow-cli/package.d/@typescript-eslint+typescript-estree+8.57.2.patch +12 -0
- package/speechflow-cli/package.d/kitten-tts-js+0.1.2.patch +24 -0
- package/speechflow-cli/package.d/speex-resampler+3.0.1.patch +56 -0
- package/speechflow-cli/package.json +40 -30
- package/speechflow-cli/src/lib.d.ts +19 -1
- package/speechflow-cli/src/speechflow-main-api.ts +64 -19
- package/speechflow-cli/src/speechflow-main-cli.ts +2 -2
- package/speechflow-cli/src/speechflow-main-config.ts +1 -1
- package/speechflow-cli/src/speechflow-main-graph.ts +56 -22
- package/speechflow-cli/src/speechflow-main-nodes.ts +1 -1
- package/speechflow-cli/src/speechflow-main-status.ts +6 -3
- package/speechflow-cli/src/speechflow-main.ts +1 -1
- package/speechflow-cli/src/speechflow-node-a2a-compressor-wt.ts +19 -20
- package/speechflow-cli/src/speechflow-node-a2a-compressor.ts +31 -13
- package/speechflow-cli/src/speechflow-node-a2a-expander-wt.ts +17 -13
- package/speechflow-cli/src/speechflow-node-a2a-expander.ts +6 -5
- package/speechflow-cli/src/speechflow-node-a2a-ffmpeg.ts +9 -8
- package/speechflow-cli/src/speechflow-node-a2a-filler.ts +8 -4
- package/speechflow-cli/src/speechflow-node-a2a-gain.ts +1 -1
- package/speechflow-cli/src/speechflow-node-a2a-gender.ts +22 -18
- package/speechflow-cli/src/speechflow-node-a2a-gtcrn-wt.ts +1 -1
- package/speechflow-cli/src/speechflow-node-a2a-gtcrn.ts +43 -16
- package/speechflow-cli/src/speechflow-node-a2a-meter.ts +2 -2
- package/speechflow-cli/src/speechflow-node-a2a-mute.ts +1 -1
- package/speechflow-cli/src/speechflow-node-a2a-pitch.ts +4 -3
- package/speechflow-cli/src/speechflow-node-a2a-rnnoise-wt.ts +2 -2
- package/speechflow-cli/src/speechflow-node-a2a-rnnoise.ts +24 -12
- package/speechflow-cli/src/speechflow-node-a2a-speex.ts +10 -9
- package/speechflow-cli/src/speechflow-node-a2a-vad.ts +38 -31
- package/speechflow-cli/src/speechflow-node-a2a-wav.ts +6 -5
- package/speechflow-cli/src/speechflow-node-a2t-amazon.ts +47 -25
- package/speechflow-cli/src/speechflow-node-a2t-deepgram.ts +17 -6
- package/speechflow-cli/src/speechflow-node-a2t-google.ts +12 -4
- package/speechflow-cli/src/speechflow-node-a2t-openai.ts +39 -31
- package/speechflow-cli/src/speechflow-node-t2a-amazon.ts +16 -5
- package/speechflow-cli/src/speechflow-node-t2a-elevenlabs.ts +17 -5
- package/speechflow-cli/src/speechflow-node-t2a-google.ts +17 -5
- package/speechflow-cli/src/speechflow-node-t2a-kitten.ts +178 -0
- package/speechflow-cli/src/speechflow-node-t2a-kokoro.ts +24 -10
- package/speechflow-cli/src/speechflow-node-t2a-openai.ts +17 -5
- package/speechflow-cli/src/speechflow-node-t2a-supertonic.ts +22 -7
- package/speechflow-cli/src/speechflow-node-t2t-amazon.ts +1 -1
- package/speechflow-cli/src/speechflow-node-t2t-deepl.ts +1 -1
- package/speechflow-cli/src/speechflow-node-t2t-format.ts +1 -1
- package/speechflow-cli/src/speechflow-node-t2t-google.ts +4 -2
- package/speechflow-cli/src/speechflow-node-t2t-modify.ts +1 -1
- package/speechflow-cli/src/speechflow-node-t2t-opus.ts +10 -2
- package/speechflow-cli/src/speechflow-node-t2t-profanity.ts +1 -1
- package/speechflow-cli/src/speechflow-node-t2t-punctuation.ts +1 -1
- package/speechflow-cli/src/speechflow-node-t2t-sentence.ts +215 -62
- package/speechflow-cli/src/speechflow-node-t2t-spellcheck.ts +1 -1
- package/speechflow-cli/src/speechflow-node-t2t-subtitle.ts +39 -15
- package/speechflow-cli/src/speechflow-node-t2t-summary.ts +3 -3
- package/speechflow-cli/src/speechflow-node-t2t-translate.ts +1 -1
- package/speechflow-cli/src/speechflow-node-x2x-filter.ts +4 -3
- package/speechflow-cli/src/speechflow-node-x2x-trace.ts +1 -1
- package/speechflow-cli/src/speechflow-node-xio-device.ts +21 -7
- package/speechflow-cli/src/speechflow-node-xio-exec.ts +30 -16
- package/speechflow-cli/src/speechflow-node-xio-file.ts +15 -7
- package/speechflow-cli/src/speechflow-node-xio-mqtt.ts +28 -15
- package/speechflow-cli/src/speechflow-node-xio-vban.ts +35 -22
- package/speechflow-cli/src/speechflow-node-xio-webrtc.ts +92 -70
- package/speechflow-cli/src/speechflow-node-xio-websocket.ts +79 -22
- package/speechflow-cli/src/speechflow-node.ts +7 -8
- package/speechflow-cli/src/speechflow-util-audio-wt.ts +46 -7
- package/speechflow-cli/src/speechflow-util-audio.ts +31 -17
- package/speechflow-cli/src/speechflow-util-error.ts +3 -3
- package/speechflow-cli/src/speechflow-util-llm.ts +14 -3
- package/speechflow-cli/src/speechflow-util-misc.ts +63 -6
- package/speechflow-cli/src/speechflow-util-queue.ts +103 -81
- package/speechflow-cli/src/speechflow-util-stream.ts +40 -8
- package/speechflow-cli/src/speechflow-util.ts +1 -1
- package/speechflow-cli/src/speechflow.ts +1 -1
- package/speechflow-ui-db/dst/index.html +1 -1
- package/speechflow-ui-db/dst/index.js +15 -15
- package/speechflow-ui-db/etc/eslint.mjs +1 -1
- package/speechflow-ui-db/etc/oxlint.jsonc +1 -1
- package/speechflow-ui-db/etc/stx.conf +1 -1
- package/speechflow-ui-db/etc/stylelint.js +1 -1
- package/speechflow-ui-db/etc/stylelint.yaml +1 -1
- package/speechflow-ui-db/etc/vite-client.mts +1 -1
- package/speechflow-ui-db/package.d/@typescript-eslint+typescript-estree+8.57.2.patch +12 -0
- package/speechflow-ui-db/package.json +22 -16
- package/speechflow-ui-db/src/app.styl +1 -1
- package/speechflow-ui-db/src/app.vue +1 -1
- package/speechflow-ui-db/src/index.html +1 -1
- package/speechflow-ui-db/src/index.ts +1 -1
- package/speechflow-ui-st/dst/index.html +1 -1
- package/speechflow-ui-st/dst/index.js +31 -31
- package/speechflow-ui-st/etc/eslint.mjs +1 -1
- package/speechflow-ui-st/etc/oxlint.jsonc +1 -1
- package/speechflow-ui-st/etc/stx.conf +1 -1
- package/speechflow-ui-st/etc/stylelint.js +1 -1
- package/speechflow-ui-st/etc/stylelint.yaml +1 -1
- package/speechflow-ui-st/etc/vite-client.mts +1 -1
- package/speechflow-ui-st/package.d/@typescript-eslint+typescript-estree+8.57.2.patch +12 -0
- package/speechflow-ui-st/package.json +23 -17
- package/speechflow-ui-st/src/app.styl +1 -1
- package/speechflow-ui-st/src/app.vue +1 -1
- package/speechflow-ui-st/src/index.html +1 -1
- package/speechflow-ui-st/src/index.ts +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/*
|
|
3
3
|
** SpeechFlow - Speech Processing Flow Graph
|
|
4
|
-
** Copyright (c) 2024-
|
|
4
|
+
** Copyright (c) 2024-2026 Dr. Ralf S. Engelschall <rse@engelschall.com>
|
|
5
5
|
** Licensed under GPL 3.0 <https://spdx.org/licenses/GPL-3.0-only>
|
|
6
6
|
*/
|
|
7
7
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
@@ -92,7 +92,7 @@ function ensureStreamChunk(type, chunk) {
|
|
|
92
92
|
/* create a Duplex/Transform stream which has
|
|
93
93
|
buffer/string-mode on Writable side and
|
|
94
94
|
object-mode on Readable side */
|
|
95
|
-
function createTransformStreamForReadableSide(type, getTimeZero, writableHighWaterMark) {
|
|
95
|
+
function createTransformStreamForReadableSide(type, getTimeZero, writableHighWaterMark, sampleRate, bitDepth, channels) {
|
|
96
96
|
return new node_stream_1.default.Transform({
|
|
97
97
|
writableObjectMode: false,
|
|
98
98
|
readableObjectMode: true,
|
|
@@ -104,7 +104,7 @@ function createTransformStreamForReadableSide(type, getTimeZero, writableHighWat
|
|
|
104
104
|
const start = luxon_1.DateTime.now().diff(timeZero);
|
|
105
105
|
let end = start;
|
|
106
106
|
if (type === "audio") {
|
|
107
|
-
const duration = util.audioBufferDuration(chunk);
|
|
107
|
+
const duration = util.audioBufferDuration(chunk, sampleRate, bitDepth, channels);
|
|
108
108
|
end = start.plus(duration * 1000);
|
|
109
109
|
}
|
|
110
110
|
const payload = ensureStreamChunk(type, chunk);
|
|
@@ -197,9 +197,32 @@ class StreamWrapper extends node_stream_1.default.Transform {
|
|
|
197
197
|
return;
|
|
198
198
|
}
|
|
199
199
|
try {
|
|
200
|
-
if (typeof this.foreignStream.end === "function")
|
|
200
|
+
if (typeof this.foreignStream.end === "function") {
|
|
201
201
|
this.foreignStream.end();
|
|
202
|
-
|
|
202
|
+
/* wait for the foreign stream to finish flushing
|
|
203
|
+
before signaling completion of this Transform stream */
|
|
204
|
+
const ac = new AbortController();
|
|
205
|
+
Promise.race([
|
|
206
|
+
new Promise((resolve, reject) => {
|
|
207
|
+
if (typeof this.foreignStream.once === "function") {
|
|
208
|
+
this.foreignStream.once("finish", () => { resolve(); });
|
|
209
|
+
this.foreignStream.once("error", (err) => { reject(err); });
|
|
210
|
+
}
|
|
211
|
+
else
|
|
212
|
+
resolve();
|
|
213
|
+
}),
|
|
214
|
+
util.timeout(5000, "foreign stream flush timeout", ac.signal)
|
|
215
|
+
]).finally(() => {
|
|
216
|
+
ac.abort();
|
|
217
|
+
}).then(() => {
|
|
218
|
+
callback();
|
|
219
|
+
}).catch(() => {
|
|
220
|
+
/* ignore timeout -- stream will be destroyed anyway */
|
|
221
|
+
callback();
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
else
|
|
225
|
+
callback();
|
|
203
226
|
}
|
|
204
227
|
catch (err) {
|
|
205
228
|
callback(util.ensureError(err));
|
|
@@ -221,15 +244,19 @@ async function destroyStream(stream) {
|
|
|
221
244
|
if ((stream instanceof node_stream_1.default.Duplex
|
|
222
245
|
|| stream instanceof node_stream_1.default.Transform
|
|
223
246
|
|| stream instanceof node_stream_1.default.Writable)
|
|
224
|
-
&& (!stream.writableEnded && !stream.destroyed))
|
|
247
|
+
&& (!stream.writableEnded && !stream.destroyed)) {
|
|
248
|
+
const ac = new AbortController();
|
|
225
249
|
await Promise.race([
|
|
226
250
|
new Promise((resolve) => {
|
|
227
251
|
stream.end(() => { resolve(); });
|
|
228
252
|
}),
|
|
229
|
-
util.timeout(5000, "stream end timeout")
|
|
230
|
-
]).
|
|
253
|
+
util.timeout(5000, "stream end timeout", ac.signal)
|
|
254
|
+
]).finally(() => {
|
|
255
|
+
ac.abort();
|
|
256
|
+
}).catch(() => {
|
|
231
257
|
/* ignore timeout -- stream will be destroyed anyway */
|
|
232
258
|
});
|
|
259
|
+
}
|
|
233
260
|
/* destroy the stream */
|
|
234
261
|
stream.destroy();
|
|
235
262
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"speechflow-util-stream.js","sourceRoot":"","sources":["../src/speechflow-util-stream.ts"],"names":[],"mappings":";AAAA;;;;EAIE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBF,oFAkBC;AAGD,8CAYC;AAKD,
|
|
1
|
+
{"version":3,"file":"speechflow-util-stream.js","sourceRoot":"","sources":["../src/speechflow-util-stream.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/*
|
|
3
3
|
** SpeechFlow - Speech Processing Flow Graph
|
|
4
|
-
** Copyright (c) 2024-
|
|
4
|
+
** Copyright (c) 2024-2026 Dr. Ralf S. Engelschall <rse@engelschall.com>
|
|
5
5
|
** Licensed under GPL 3.0 <https://spdx.org/licenses/GPL-3.0-only>
|
|
6
6
|
*/
|
|
7
7
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/*!
|
|
3
3
|
** SpeechFlow - Speech Processing Flow Graph
|
|
4
|
-
** Copyright (c) 2024-
|
|
4
|
+
** Copyright (c) 2024-2026 Dr. Ralf S. Engelschall <rse@engelschall.com>
|
|
5
5
|
** Licensed under GPL 3.0 <https://spdx.org/licenses/GPL-3.0-only>
|
|
6
6
|
*/
|
|
7
7
|
export {};
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
/*!
|
|
4
4
|
** SpeechFlow - Speech Processing Flow Graph
|
|
5
|
-
** Copyright (c) 2024-
|
|
5
|
+
** Copyright (c) 2024-2026 Dr. Ralf S. Engelschall <rse@engelschall.com>
|
|
6
6
|
** Licensed under GPL 3.0 <https://spdx.org/licenses/GPL-3.0-only>
|
|
7
7
|
*/
|
|
8
8
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*
|
|
2
2
|
** SpeechFlow - Speech Processing Flow Graph
|
|
3
|
-
** Copyright (c) 2024-
|
|
3
|
+
** Copyright (c) 2024-2026 Dr. Ralf S. Engelschall <rse@engelschall.com>
|
|
4
4
|
** Licensed under GPL 3.0 <https://spdx.org/licenses/GPL-3.0-only>
|
|
5
5
|
*/
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*
|
|
2
2
|
** SpeechFlow - Speech Processing Flow Graph
|
|
3
|
-
** Copyright (c) 2024-
|
|
3
|
+
** Copyright (c) 2024-2026 Dr. Ralf S. Engelschall <rse@engelschall.com>
|
|
4
4
|
** Licensed under GPL 3.0 <https://spdx.org/licenses/GPL-3.0-only>
|
|
5
5
|
*/
|
|
6
6
|
|
|
@@ -141,6 +141,7 @@
|
|
|
141
141
|
"no-relative-parent-imports": "off",
|
|
142
142
|
"prefer-module": "off",
|
|
143
143
|
"prefer-ternary": "off",
|
|
144
|
+
"no-multiple-resolved": "off",
|
|
144
145
|
|
|
145
146
|
"complexity": [ "error", { "max": 35 } ]
|
|
146
147
|
}
|
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
##
|
|
2
2
|
## SpeechFlow - Speech Processing Flow Graph
|
|
3
|
-
## Copyright (c) 2024-
|
|
3
|
+
## Copyright (c) 2024-2026 Dr. Ralf S. Engelschall <rse@engelschall.com>
|
|
4
4
|
## Licensed under GPL 3.0 <https://spdx.org/licenses/GPL-3.0-only>
|
|
5
5
|
##
|
|
6
6
|
|
|
7
7
|
# [speechflow-cli] make patches
|
|
8
8
|
patch-make
|
|
9
9
|
npm shrinkwrap && \
|
|
10
|
-
patch-package --patch-dir package.d
|
|
10
|
+
patch-package --patch-dir package.d \
|
|
11
|
+
"@ericedouard/vad-node-realtime" \
|
|
12
|
+
"@shiguredo" \
|
|
13
|
+
"sherpa-onnx" \
|
|
14
|
+
"kitten-tts-js" \
|
|
15
|
+
"speex-resampler" \
|
|
16
|
+
"@typescript-eslint/typescript-estree" && \
|
|
11
17
|
shx rm -f npm-shrinkwrap.json
|
|
12
18
|
|
|
13
19
|
# [speechflow-cli] (internal) apply patches
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
diff --git a/node_modules/@ericedouard/vad-node-realtime/dist/common/models/v5.js b/node_modules/@ericedouard/vad-node-realtime/dist/common/models/v5.js
|
|
2
|
-
index 4a75457..
|
|
2
|
+
index 4a75457..a26285b 100644
|
|
3
3
|
--- a/node_modules/@ericedouard/vad-node-realtime/dist/common/models/v5.js
|
|
4
4
|
+++ b/node_modules/@ericedouard/vad-node-realtime/dist/common/models/v5.js
|
|
5
5
|
@@ -39,13 +39,11 @@ class SileroV5 {
|
|
@@ -16,3 +16,4 @@ index 4a75457..e3a4e9a 100644
|
|
|
16
16
|
return new _a(_session, _state, _sr, ortInstance);
|
|
17
17
|
};
|
|
18
18
|
//# sourceMappingURL=v5.js.map
|
|
19
|
+
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/warnAboutTSVersion.js b/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/warnAboutTSVersion.js
|
|
2
|
+
index 8b0402b..b83ef25 100644
|
|
3
|
+
--- a/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/warnAboutTSVersion.js
|
|
4
|
+
+++ b/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/warnAboutTSVersion.js
|
|
5
|
+
@@ -75,7 +75,6 @@ function warnAboutTSVersion(parseSettings, passedLoggerFn) {
|
|
6
|
+
'\n',
|
|
7
|
+
border,
|
|
8
|
+
].join('\n');
|
|
9
|
+
- parseSettings.log(versionWarning);
|
|
10
|
+
}
|
|
11
|
+
warnedAboutTSVersion = true;
|
|
12
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
diff --git a/node_modules/kitten-tts-js/src/kitten-tts.js b/node_modules/kitten-tts-js/src/kitten-tts.js
|
|
2
|
+
index 63e4d2a..9c6544a 100644
|
|
3
|
+
--- a/node_modules/kitten-tts-js/src/kitten-tts.js
|
|
4
|
+
+++ b/node_modules/kitten-tts-js/src/kitten-tts.js
|
|
5
|
+
@@ -59,8 +59,10 @@ export class KittenTTS {
|
|
6
|
+
|
|
7
|
+
// Load ONNX runtime (Node vs browser via conditional exports)
|
|
8
|
+
let ort;
|
|
9
|
+
+ let isNode = false;
|
|
10
|
+
try {
|
|
11
|
+
ort = await import('onnxruntime-node');
|
|
12
|
+
+ isNode = true;
|
|
13
|
+
} catch {
|
|
14
|
+
ort = await import('onnxruntime-web');
|
|
15
|
+
// Tell onnxruntime-web where its .wasm files live.
|
|
16
|
+
@@ -81,7 +83,7 @@ export class KittenTTS {
|
|
17
|
+
ort.env.wasm.simd = true;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
- const sessionOptions = ort.env.wasm ? { executionProviders: ['wasm'] } : {};
|
|
21
|
+
+ const sessionOptions = isNode ? {} : { executionProviders: ['wasm'] };
|
|
22
|
+
const session = await ort.InferenceSession.create(modelBuffer, sessionOptions);
|
|
23
|
+
const voices = await loadNpz(voicesBuffer);
|
|
24
|
+
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
diff --git a/node_modules/speex-resampler/app/index.d.ts b/node_modules/speex-resampler/app/index.d.ts
|
|
2
|
+
index ef85876..fdf42d0 100644
|
|
3
|
+
--- a/node_modules/speex-resampler/app/index.d.ts
|
|
4
|
+
+++ b/node_modules/speex-resampler/app/index.d.ts
|
|
5
|
+
@@ -26,6 +26,10 @@ declare class SpeexResampler {
|
|
6
|
+
* @param chunk interleaved PCM data in signed 16bits int
|
|
7
|
+
*/
|
|
8
|
+
processChunk(chunk: Buffer): Buffer;
|
|
9
|
+
+ /**
|
|
10
|
+
+ * Destroy the resampler and free all WASM memory.
|
|
11
|
+
+ */
|
|
12
|
+
+ destroy(): void;
|
|
13
|
+
}
|
|
14
|
+
export declare class SpeexResamplerTransform extends Transform {
|
|
15
|
+
channels: any;
|
|
16
|
+
diff --git a/node_modules/speex-resampler/app/index.js b/node_modules/speex-resampler/app/index.js
|
|
17
|
+
index 509ec36..434b152 100644
|
|
18
|
+
--- a/node_modules/speex-resampler/app/index.js
|
|
19
|
+
+++ b/node_modules/speex-resampler/app/index.js
|
|
20
|
+
@@ -82,6 +82,36 @@ class SpeexResampler {
|
|
21
|
+
// we are copying the info in a new buffer here, we could just pass a buffer pointing to the same memory space if needed
|
|
22
|
+
return Buffer.from(speexModule.HEAPU8.slice(this._outBufferPtr, this._outBufferPtr + outSamplesPerChannelsWritten * this.channels * Uint16Array.BYTES_PER_ELEMENT).buffer);
|
|
23
|
+
}
|
|
24
|
+
+ /**
|
|
25
|
+
+ * Destroy the resampler and free all WASM memory.
|
|
26
|
+
+ */
|
|
27
|
+
+ destroy() {
|
|
28
|
+
+ if (!speexModule) {
|
|
29
|
+
+ return;
|
|
30
|
+
+ }
|
|
31
|
+
+ if (this._resamplerPtr) {
|
|
32
|
+
+ speexModule._speex_resampler_destroy(this._resamplerPtr);
|
|
33
|
+
+ this._resamplerPtr = 0;
|
|
34
|
+
+ }
|
|
35
|
+
+ if (this._inBufferPtr !== -1) {
|
|
36
|
+
+ speexModule._free(this._inBufferPtr);
|
|
37
|
+
+ this._inBufferPtr = -1;
|
|
38
|
+
+ this._inBufferSize = -1;
|
|
39
|
+
+ }
|
|
40
|
+
+ if (this._outBufferPtr !== -1) {
|
|
41
|
+
+ speexModule._free(this._outBufferPtr);
|
|
42
|
+
+ this._outBufferPtr = -1;
|
|
43
|
+
+ this._outBufferSize = -1;
|
|
44
|
+
+ }
|
|
45
|
+
+ if (this._inLengthPtr !== -1) {
|
|
46
|
+
+ speexModule._free(this._inLengthPtr);
|
|
47
|
+
+ this._inLengthPtr = -1;
|
|
48
|
+
+ }
|
|
49
|
+
+ if (this._outLengthPtr !== -1) {
|
|
50
|
+
+ speexModule._free(this._outLengthPtr);
|
|
51
|
+
+ this._outLengthPtr = -1;
|
|
52
|
+
+ }
|
|
53
|
+
+ }
|
|
54
|
+
}
|
|
55
|
+
SpeexResampler.initPromise = globalModulePromise;
|
|
56
|
+
const EMPTY_BUFFER = Buffer.alloc(0);
|
|
@@ -24,78 +24,79 @@
|
|
|
24
24
|
"shell-parser": "1.0.0",
|
|
25
25
|
"@deepgram/sdk": "4.11.3",
|
|
26
26
|
"deepl-node": "1.24.0",
|
|
27
|
-
"@elevenlabs/elevenlabs-js": "2.
|
|
27
|
+
"@elevenlabs/elevenlabs-js": "2.40.0",
|
|
28
28
|
"get-stream": "9.0.1",
|
|
29
|
-
"@dotenvx/dotenvx": "1.
|
|
29
|
+
"@dotenvx/dotenvx": "1.58.0",
|
|
30
30
|
"speex-resampler": "3.0.1",
|
|
31
31
|
"@sapphi-red/speex-preprocess-wasm": "0.4.0",
|
|
32
32
|
"@shiguredo/rnnoise-wasm": "2025.1.5",
|
|
33
33
|
"sherpa-onnx": "1.12.25",
|
|
34
|
-
"axios": "1.
|
|
35
|
-
"@aws-sdk/client-transcribe-streaming": "3.
|
|
36
|
-
"@aws-sdk/client-translate": "3.
|
|
37
|
-
"@aws-sdk/client-polly": "3.
|
|
34
|
+
"axios": "1.14.0",
|
|
35
|
+
"@aws-sdk/client-transcribe-streaming": "3.1019.0",
|
|
36
|
+
"@aws-sdk/client-translate": "3.1019.0",
|
|
37
|
+
"@aws-sdk/client-polly": "3.1019.0",
|
|
38
38
|
"@google-cloud/translate": "9.3.0",
|
|
39
|
-
"@google-cloud/speech": "7.
|
|
39
|
+
"@google-cloud/speech": "7.3.0",
|
|
40
40
|
"@google-cloud/text-to-speech": "6.4.0",
|
|
41
|
-
"node-web-audio-api": "1.0.
|
|
41
|
+
"node-web-audio-api": "1.0.9",
|
|
42
42
|
"object-path": "0.11.8",
|
|
43
43
|
"glob": "13.0.6",
|
|
44
|
-
"ws": "8.
|
|
44
|
+
"ws": "8.20.0",
|
|
45
45
|
"bufferutil": "4.1.0",
|
|
46
46
|
"utf-8-validate": "6.0.6",
|
|
47
|
-
"@hapi/hapi": "21.4.
|
|
47
|
+
"@hapi/hapi": "21.4.7",
|
|
48
48
|
"@hapi/boom": "10.0.1",
|
|
49
49
|
"@hapi/inert": "7.1.0",
|
|
50
50
|
"hapi-plugin-header": "1.1.8",
|
|
51
51
|
"hapi-plugin-websocket": "2.4.11",
|
|
52
52
|
"@opensumi/reconnecting-websocket": "4.4.0",
|
|
53
53
|
"ollama": "0.6.3",
|
|
54
|
-
"openai": "6.
|
|
55
|
-
"@anthropic-ai/sdk": "0.
|
|
56
|
-
"@google/genai": "1.
|
|
54
|
+
"openai": "6.33.0",
|
|
55
|
+
"@anthropic-ai/sdk": "0.80.0",
|
|
56
|
+
"@google/genai": "1.46.0",
|
|
57
57
|
"@rse/ffmpeg": "1.4.2",
|
|
58
58
|
"ffmpeg-stream": "1.0.1",
|
|
59
59
|
"installed-packages": "1.0.13",
|
|
60
60
|
"syspath": "1.0.8",
|
|
61
61
|
"wav": "1.0.2",
|
|
62
|
-
"mqtt": "5.15.
|
|
62
|
+
"mqtt": "5.15.1",
|
|
63
63
|
"vban": "1.5.6",
|
|
64
|
-
"cbor2": "2.
|
|
65
|
-
"arktype": "2.
|
|
64
|
+
"cbor2": "2.3.0",
|
|
65
|
+
"arktype": "2.2.0",
|
|
66
66
|
"pure-uuid": "2.0.0",
|
|
67
67
|
"wavefile": "11.0.0",
|
|
68
68
|
"audio-inspect": "0.0.4",
|
|
69
69
|
"@huggingface/transformers": "3.8.1",
|
|
70
|
-
"@huggingface/hub": "2.
|
|
70
|
+
"@huggingface/hub": "2.11.0",
|
|
71
71
|
"kokoro-js": "1.2.1",
|
|
72
|
+
"kitten-tts-js": "0.1.2",
|
|
72
73
|
"@ericedouard/vad-node-realtime": "0.2.0",
|
|
73
74
|
"osc-js": "2.4.1",
|
|
74
75
|
"luxon": "3.7.2",
|
|
75
76
|
"node-interval-tree": "2.1.2",
|
|
76
77
|
"wrap-text": "1.0.10",
|
|
77
78
|
"bad-words-next": "3.2.0",
|
|
78
|
-
"@2toad/profanity": "3.
|
|
79
|
+
"@2toad/profanity": "3.3.0",
|
|
79
80
|
"cli-table3": "0.6.5",
|
|
80
81
|
"mkdirp": "3.0.1",
|
|
81
|
-
"@soundtouchjs/audio-worklet": "0.
|
|
82
|
+
"@soundtouchjs/audio-worklet": "1.0.8",
|
|
82
83
|
"werift": "0.22.9",
|
|
83
84
|
"@discordjs/opus": "0.10.0",
|
|
84
85
|
"@rse/stx": "1.1.4"
|
|
85
86
|
},
|
|
86
87
|
"devDependencies": {
|
|
87
|
-
"eslint": "9.39.
|
|
88
|
-
"@eslint/js": "9.39.
|
|
89
|
-
"neostandard": "0.
|
|
88
|
+
"eslint": "9.39.4",
|
|
89
|
+
"@eslint/js": "9.39.4",
|
|
90
|
+
"neostandard": "0.13.0",
|
|
90
91
|
"eslint-plugin-promise": "7.2.1",
|
|
91
92
|
"eslint-plugin-import": "2.32.0",
|
|
92
93
|
"eslint-plugin-node": "11.1.0",
|
|
93
|
-
"typescript-eslint": "8.
|
|
94
|
-
"@typescript-eslint/eslint-plugin": "8.
|
|
95
|
-
"@typescript-eslint/parser": "8.
|
|
96
|
-
"oxlint": "1.
|
|
97
|
-
"oxlint-plugin-complexity": "2.0.
|
|
98
|
-
"eslint-plugin-oxlint": "1.
|
|
94
|
+
"typescript-eslint": "8.57.2",
|
|
95
|
+
"@typescript-eslint/eslint-plugin": "8.57.2",
|
|
96
|
+
"@typescript-eslint/parser": "8.57.2",
|
|
97
|
+
"oxlint": "1.57.0",
|
|
98
|
+
"oxlint-plugin-complexity": "2.0.3",
|
|
99
|
+
"eslint-plugin-oxlint": "1.57.0",
|
|
99
100
|
|
|
100
101
|
"@types/node": "24.10.1",
|
|
101
102
|
"@types/yargs": "17.0.35",
|
|
@@ -113,20 +114,29 @@
|
|
|
113
114
|
"nodemon": "3.1.14",
|
|
114
115
|
"shx": "0.4.0",
|
|
115
116
|
"@yao-pkg/pkg": "6.14.1",
|
|
116
|
-
"typescript": "
|
|
117
|
+
"typescript": "6.0.2",
|
|
117
118
|
"delay-cli": "3.0.0",
|
|
118
119
|
"cross-env": "10.1.0"
|
|
119
120
|
},
|
|
120
121
|
"overrides": {
|
|
121
122
|
"@huggingface/transformers": { "onnxruntime-node": "1.22.0", "onnxruntime-web": "1.22.0" },
|
|
122
123
|
"@ericedouard/vad-node-realtime": { "onnxruntime-node": "1.22.0", "onnxruntime-web": "1.22.0" },
|
|
124
|
+
"typescript-eslint": { "typescript": ">=5.0.0" },
|
|
125
|
+
"@typescript-eslint/parser": { "typescript": ">=5.0.0" },
|
|
126
|
+
"@typescript-eslint/eslint-plugin": { "typescript": ">=5.0.0" },
|
|
127
|
+
"@typescript-eslint/typescript-estree": { "typescript": ">=5.0.0" },
|
|
123
128
|
"eslint-plugin-promise": { "eslint": ">=9.0.0" },
|
|
124
129
|
"eslint-plugin-import": { "eslint": ">=9.0.0" },
|
|
125
130
|
"neostandard": { "eslint": ">=9.0.0" }
|
|
126
131
|
},
|
|
127
132
|
"upd": [
|
|
128
133
|
"!onnxruntime-node",
|
|
129
|
-
"!@types/node"
|
|
134
|
+
"!@types/node",
|
|
135
|
+
"!audio-inspect",
|
|
136
|
+
"!@deepgram/sdk",
|
|
137
|
+
"!sherpa-onnx",
|
|
138
|
+
"!eslint",
|
|
139
|
+
"!@eslint/js"
|
|
130
140
|
],
|
|
131
141
|
"engines": {
|
|
132
142
|
"node": ">=22.0.0"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*
|
|
2
2
|
** SpeechFlow - Speech Processing Flow Graph
|
|
3
|
-
** Copyright (c) 2024-
|
|
3
|
+
** Copyright (c) 2024-2026 Dr. Ralf S. Engelschall <rse@engelschall.com>
|
|
4
4
|
** Licensed under GPL 3.0 <https://spdx.org/licenses/GPL-3.0-only>
|
|
5
5
|
*/
|
|
6
6
|
|
|
@@ -68,5 +68,23 @@ declare module "sherpa-onnx" {
|
|
|
68
68
|
export default SherpaOnnx
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
+
/* type definition for "kitten-tts-js" */
|
|
72
|
+
declare module "kitten-tts-js" {
|
|
73
|
+
export interface RawAudio {
|
|
74
|
+
data: Float32Array
|
|
75
|
+
sampling_rate: number
|
|
76
|
+
duration: number
|
|
77
|
+
toWav(): ArrayBuffer
|
|
78
|
+
save(filePath: string): Promise<void>
|
|
79
|
+
}
|
|
80
|
+
export class KittenTTS {
|
|
81
|
+
static from_pretrained (modelId: string): Promise<KittenTTS>
|
|
82
|
+
generate (text: string, opts?: { voice?: string, speed?: number, clean?: boolean }): Promise<RawAudio>
|
|
83
|
+
stream (text: string, opts?: { voice?: string, speed?: number, clean?: boolean }): AsyncGenerator<RawAudio>
|
|
84
|
+
list_voices (): string[]
|
|
85
|
+
release (): void
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
71
89
|
/* eslint-enable no-unused-vars */
|
|
72
90
|
|