speechflow 1.3.0 → 1.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/CHANGELOG.md +9 -0
- package/README.md +165 -22
- package/dst/speechflow-node-a2a-meter.js +4 -1
- package/dst/speechflow-node-a2a-meter.js.map +1 -1
- package/dst/speechflow-node-a2t-deepgram.js +13 -5
- package/dst/speechflow-node-a2t-deepgram.js.map +1 -1
- package/dst/speechflow-node-t2t-sentence.js +1 -6
- package/dst/speechflow-node-t2t-sentence.js.map +1 -1
- package/dst/speechflow-node-t2t-subtitle.d.ts +1 -0
- package/dst/speechflow-node-t2t-subtitle.js +231 -51
- package/dst/speechflow-node-t2t-subtitle.js.map +1 -1
- package/dst/speechflow-node-x2x-trace.js +14 -7
- package/dst/speechflow-node-x2x-trace.js.map +1 -1
- package/dst/speechflow-node.d.ts +2 -0
- package/dst/speechflow-node.js +3 -0
- package/dst/speechflow-node.js.map +1 -1
- package/dst/speechflow.js +52 -1
- package/dst/speechflow.js.map +1 -1
- package/etc/speechflow.yaml +18 -7
- package/package.json +11 -10
- package/src/speechflow-node-a2t-deepgram.ts +9 -2
- package/src/speechflow-node-t2t-sentence.ts +1 -7
- package/src/speechflow-node-t2t-subtitle.ts +62 -15
- package/src/speechflow.ts +3 -1
|
@@ -4,86 +4,261 @@
|
|
|
4
4
|
** Copyright (c) 2024-2025 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
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
8
|
+
if (k2 === undefined) k2 = k;
|
|
9
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
10
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
11
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
12
|
+
}
|
|
13
|
+
Object.defineProperty(o, k2, desc);
|
|
14
|
+
}) : (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
o[k2] = m[k];
|
|
17
|
+
}));
|
|
18
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
19
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
20
|
+
}) : function(o, v) {
|
|
21
|
+
o["default"] = v;
|
|
22
|
+
});
|
|
23
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
24
|
+
var ownKeys = function(o) {
|
|
25
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
26
|
+
var ar = [];
|
|
27
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
28
|
+
return ar;
|
|
29
|
+
};
|
|
30
|
+
return ownKeys(o);
|
|
31
|
+
};
|
|
32
|
+
return function (mod) {
|
|
33
|
+
if (mod && mod.__esModule) return mod;
|
|
34
|
+
var result = {};
|
|
35
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
36
|
+
__setModuleDefault(result, mod);
|
|
37
|
+
return result;
|
|
38
|
+
};
|
|
39
|
+
})();
|
|
7
40
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
8
41
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
9
42
|
};
|
|
10
43
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
44
|
/* standard dependencies */
|
|
45
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
12
46
|
const node_stream_1 = __importDefault(require("node:stream"));
|
|
47
|
+
/* external dependencies */
|
|
48
|
+
const luxon_1 = require("luxon");
|
|
49
|
+
const HAPI = __importStar(require("@hapi/hapi"));
|
|
50
|
+
const inert_1 = __importDefault(require("@hapi/inert"));
|
|
51
|
+
const hapi_plugin_websocket_1 = __importDefault(require("hapi-plugin-websocket"));
|
|
13
52
|
/* internal dependencies */
|
|
14
|
-
const speechflow_node_1 =
|
|
53
|
+
const speechflow_node_1 = __importStar(require("./speechflow-node"));
|
|
15
54
|
/* SpeechFlow node for subtitle (text-to-text) "translations" */
|
|
16
55
|
class SpeechFlowNodeSubtitle extends speechflow_node_1.default {
|
|
17
56
|
/* declare official node name */
|
|
18
57
|
static name = "subtitle";
|
|
19
58
|
/* internal state */
|
|
20
59
|
sequenceNo = 1;
|
|
60
|
+
hapi = null;
|
|
21
61
|
/* construct node */
|
|
22
62
|
constructor(id, cfg, opts, args) {
|
|
23
63
|
super(id, cfg, opts, args);
|
|
24
64
|
/* declare node configuration parameters */
|
|
25
65
|
this.configure({
|
|
26
|
-
format: { type: "string", pos: 0, val: "srt", match: /^(?:srt|vtt)$/ }
|
|
66
|
+
format: { type: "string", pos: 0, val: "srt", match: /^(?:srt|vtt)$/ },
|
|
67
|
+
words: { type: "boolean", val: false },
|
|
68
|
+
mode: { type: "string", val: "export", match: /^(?:export|render)$/ },
|
|
69
|
+
addr: { type: "string", val: "127.0.0.1" },
|
|
70
|
+
port: { type: "number", val: 8585 }
|
|
27
71
|
});
|
|
28
72
|
/* declare node input/output format */
|
|
29
73
|
this.input = "text";
|
|
30
|
-
this.output = "text";
|
|
74
|
+
this.output = this.params.mode === "export" ? "text" : "none";
|
|
31
75
|
}
|
|
32
76
|
/* open node */
|
|
33
77
|
async open() {
|
|
34
|
-
this.
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
callback(new Error("invalid chunk payload type"));
|
|
65
|
-
else {
|
|
66
|
-
if (chunk.payload === "") {
|
|
67
|
-
this.push(chunk);
|
|
68
|
-
callback();
|
|
78
|
+
if (this.params.mode === "export") {
|
|
79
|
+
this.sequenceNo = 1;
|
|
80
|
+
/* provide text-to-subtitle conversion */
|
|
81
|
+
const convert = async (chunk) => {
|
|
82
|
+
if (typeof chunk.payload !== "string")
|
|
83
|
+
throw new Error("chunk payload type must be string");
|
|
84
|
+
const convertSingle = (start, end, text, word, occurence) => {
|
|
85
|
+
if (word) {
|
|
86
|
+
occurence ??= 1;
|
|
87
|
+
let match = 1;
|
|
88
|
+
word = word.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
89
|
+
text = text.replaceAll(new RegExp(`\\b${word}\\b`, "g"), (m) => {
|
|
90
|
+
if (match++ === occurence)
|
|
91
|
+
return `<b>${m}</b>`;
|
|
92
|
+
else
|
|
93
|
+
return m;
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
if (this.params.format === "srt") {
|
|
97
|
+
const startFmt = start.toFormat("hh:mm:ss,SSS");
|
|
98
|
+
const endFmt = end.toFormat("hh:mm:ss,SSS");
|
|
99
|
+
text = `${this.sequenceNo++}\n` +
|
|
100
|
+
`${startFmt} --> ${endFmt}\n` +
|
|
101
|
+
`${text}\n\n`;
|
|
102
|
+
}
|
|
103
|
+
else if (this.params.format === "vtt") {
|
|
104
|
+
const startFmt = start.toFormat("hh:mm:ss.SSS");
|
|
105
|
+
const endFmt = end.toFormat("hh:mm:ss.SSS");
|
|
106
|
+
text = `${startFmt} --> ${endFmt}\n` +
|
|
107
|
+
`${text}\n\n`;
|
|
69
108
|
}
|
|
109
|
+
return text;
|
|
110
|
+
};
|
|
111
|
+
let output = "";
|
|
112
|
+
if (this.params.words) {
|
|
113
|
+
output += convertSingle(chunk.timestampStart, chunk.timestampEnd, chunk.payload);
|
|
114
|
+
const words = (chunk.meta.get("words") ?? []);
|
|
115
|
+
const occurences = new Map();
|
|
116
|
+
for (const word of words) {
|
|
117
|
+
let occurence = occurences.get(word.word) ?? 0;
|
|
118
|
+
occurence++;
|
|
119
|
+
occurences.set(word.word, occurence);
|
|
120
|
+
output += convertSingle(word.start, word.end, chunk.payload, word.word, occurence);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
else
|
|
124
|
+
output += convertSingle(chunk.timestampStart, chunk.timestampEnd, chunk.payload);
|
|
125
|
+
return output;
|
|
126
|
+
};
|
|
127
|
+
/* establish a duplex stream */
|
|
128
|
+
const self = this;
|
|
129
|
+
let firstChunk = true;
|
|
130
|
+
this.stream = new node_stream_1.default.Transform({
|
|
131
|
+
readableObjectMode: true,
|
|
132
|
+
writableObjectMode: true,
|
|
133
|
+
decodeStrings: false,
|
|
134
|
+
highWaterMark: 1,
|
|
135
|
+
transform(chunk, encoding, callback) {
|
|
136
|
+
if (firstChunk && self.params.format === "vtt") {
|
|
137
|
+
this.push(new speechflow_node_1.SpeechFlowChunk(luxon_1.Duration.fromMillis(0), luxon_1.Duration.fromMillis(0), "final", "text", "WEBVTT\n\n"));
|
|
138
|
+
firstChunk = false;
|
|
139
|
+
}
|
|
140
|
+
if (Buffer.isBuffer(chunk.payload))
|
|
141
|
+
callback(new Error("invalid chunk payload type"));
|
|
70
142
|
else {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
chunkNew.payload = payload;
|
|
74
|
-
this.push(chunkNew);
|
|
143
|
+
if (chunk.payload === "") {
|
|
144
|
+
this.push(chunk);
|
|
75
145
|
callback();
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
convert(chunk).then((payload) => {
|
|
149
|
+
const chunkNew = chunk.clone();
|
|
150
|
+
chunkNew.payload = payload;
|
|
151
|
+
this.push(chunkNew);
|
|
152
|
+
callback();
|
|
153
|
+
}).catch((err) => {
|
|
154
|
+
callback(err);
|
|
155
|
+
});
|
|
156
|
+
}
|
|
79
157
|
}
|
|
158
|
+
},
|
|
159
|
+
final(callback) {
|
|
160
|
+
this.push(null);
|
|
161
|
+
callback();
|
|
80
162
|
}
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
else if (this.params.mode === "render") {
|
|
166
|
+
/* establish REST/WebSocket API */
|
|
167
|
+
const wsPeers = new Map();
|
|
168
|
+
this.hapi = new HAPI.Server({
|
|
169
|
+
address: this.params.addr,
|
|
170
|
+
port: this.params.port
|
|
171
|
+
});
|
|
172
|
+
await this.hapi.register({ plugin: inert_1.default });
|
|
173
|
+
await this.hapi.register({ plugin: hapi_plugin_websocket_1.default });
|
|
174
|
+
this.hapi.events.on({ name: "request", channels: ["error"] }, (request, event, tags) => {
|
|
175
|
+
if (event.error instanceof Error)
|
|
176
|
+
this.log("error", `HAPI: request-error: ${event.error.message}`);
|
|
177
|
+
else
|
|
178
|
+
this.log("error", `HAPI: request-error: ${event.error}`);
|
|
179
|
+
});
|
|
180
|
+
this.hapi.events.on("log", (event, tags) => {
|
|
181
|
+
if (tags.error) {
|
|
182
|
+
const err = event.error;
|
|
183
|
+
if (err instanceof Error)
|
|
184
|
+
this.log("error", `HAPI: log: ${err.message}`);
|
|
185
|
+
else
|
|
186
|
+
this.log("error", `HAPI: log: ${err}`);
|
|
187
|
+
}
|
|
188
|
+
});
|
|
189
|
+
this.hapi.route({
|
|
190
|
+
method: "GET",
|
|
191
|
+
path: "/{param*}",
|
|
192
|
+
handler: {
|
|
193
|
+
directory: {
|
|
194
|
+
path: node_path_1.default.join(__dirname, "../subtitle/dst"),
|
|
195
|
+
redirectToSlash: true,
|
|
196
|
+
index: true
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
});
|
|
200
|
+
this.hapi.route({
|
|
201
|
+
method: "POST",
|
|
202
|
+
path: "/api",
|
|
203
|
+
options: {
|
|
204
|
+
payload: {
|
|
205
|
+
output: "data",
|
|
206
|
+
parse: true,
|
|
207
|
+
allow: "application/json"
|
|
208
|
+
},
|
|
209
|
+
plugins: {
|
|
210
|
+
websocket: {
|
|
211
|
+
autoping: 30 * 1000,
|
|
212
|
+
connect: (args) => {
|
|
213
|
+
const ctx = args.ctx;
|
|
214
|
+
const ws = args.ws;
|
|
215
|
+
const req = args.req;
|
|
216
|
+
const peer = `${req.socket.remoteAddress}:${req.socket.remotePort}`;
|
|
217
|
+
ctx.peer = peer;
|
|
218
|
+
wsPeers.set(peer, { ctx, ws, req });
|
|
219
|
+
this.log("info", `HAPI: WebSocket: connect: peer ${peer}`);
|
|
220
|
+
},
|
|
221
|
+
disconnect: (args) => {
|
|
222
|
+
const ctx = args.ctx;
|
|
223
|
+
const peer = ctx.peer;
|
|
224
|
+
wsPeers.delete(peer);
|
|
225
|
+
this.log("info", `HAPI: WebSocket: disconnect: peer ${peer}`);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
},
|
|
230
|
+
handler: (request, h) => {
|
|
231
|
+
return h.response({}).code(204);
|
|
232
|
+
}
|
|
233
|
+
});
|
|
234
|
+
await this.hapi.start();
|
|
235
|
+
this.log("info", `HAPI: started REST/WebSocket network service: http://${this.params.addr}:${this.params.port}`);
|
|
236
|
+
const emit = (chunk) => {
|
|
237
|
+
const data = JSON.stringify(chunk);
|
|
238
|
+
for (const info of wsPeers.values())
|
|
239
|
+
info.ws.send(data);
|
|
240
|
+
};
|
|
241
|
+
this.stream = new node_stream_1.default.Writable({
|
|
242
|
+
objectMode: true,
|
|
243
|
+
decodeStrings: false,
|
|
244
|
+
highWaterMark: 1,
|
|
245
|
+
write(chunk, encoding, callback) {
|
|
246
|
+
if (Buffer.isBuffer(chunk.payload))
|
|
247
|
+
callback(new Error("invalid chunk payload type"));
|
|
248
|
+
else {
|
|
249
|
+
if (chunk.payload === "")
|
|
250
|
+
callback();
|
|
251
|
+
else {
|
|
252
|
+
emit(chunk);
|
|
253
|
+
callback();
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
},
|
|
257
|
+
final(callback) {
|
|
258
|
+
callback();
|
|
259
|
+
}
|
|
260
|
+
});
|
|
261
|
+
}
|
|
87
262
|
}
|
|
88
263
|
/* open node */
|
|
89
264
|
async close() {
|
|
@@ -92,6 +267,11 @@ class SpeechFlowNodeSubtitle extends speechflow_node_1.default {
|
|
|
92
267
|
this.stream.destroy();
|
|
93
268
|
this.stream = null;
|
|
94
269
|
}
|
|
270
|
+
/* shutdown HAPI */
|
|
271
|
+
if (this.hapi !== null) {
|
|
272
|
+
await this.hapi.stop();
|
|
273
|
+
this.hapi = null;
|
|
274
|
+
}
|
|
95
275
|
}
|
|
96
276
|
}
|
|
97
277
|
exports.default = SpeechFlowNodeSubtitle;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"speechflow-node-t2t-subtitle.js","sourceRoot":"","sources":["../src/speechflow-node-t2t-subtitle.ts"],"names":[],"mappings":";AAAA;;;;EAIE
|
|
1
|
+
{"version":3,"file":"speechflow-node-t2t-subtitle.js","sourceRoot":"","sources":["../src/speechflow-node-t2t-subtitle.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,8 +22,12 @@ class SpeechFlowNodeTrace extends speechflow_node_1.default {
|
|
|
22
22
|
/* declare node configuration parameters */
|
|
23
23
|
this.configure({
|
|
24
24
|
type: { type: "string", pos: 0, val: "audio", match: /^(?:audio|text)$/ },
|
|
25
|
-
name: { type: "string", pos: 1, val: "trace" }
|
|
25
|
+
name: { type: "string", pos: 1, val: "trace" },
|
|
26
|
+
dashboard: { type: "string", val: "" }
|
|
26
27
|
});
|
|
28
|
+
/* sanity check parameters */
|
|
29
|
+
if (this.params.dashboard !== "" && this.params.type === "audio")
|
|
30
|
+
throw new Error("only trace nodes of type \"text\" can export to dashboard");
|
|
27
31
|
/* declare node input/output format */
|
|
28
32
|
this.input = this.params.type;
|
|
29
33
|
this.output = this.params.type;
|
|
@@ -38,7 +42,7 @@ class SpeechFlowNodeTrace extends speechflow_node_1.default {
|
|
|
38
42
|
this.log(level, msg);
|
|
39
43
|
};
|
|
40
44
|
/* provide Transform stream */
|
|
41
|
-
const
|
|
45
|
+
const self = this;
|
|
42
46
|
this.stream = new node_stream_1.default.Transform({
|
|
43
47
|
writableObjectMode: true,
|
|
44
48
|
readableObjectMode: true,
|
|
@@ -56,7 +60,7 @@ class SpeechFlowNodeTrace extends speechflow_node_1.default {
|
|
|
56
60
|
.join(", ")} }`;
|
|
57
61
|
};
|
|
58
62
|
if (Buffer.isBuffer(chunk.payload)) {
|
|
59
|
-
if (type === "audio")
|
|
63
|
+
if (self.params.type === "audio")
|
|
60
64
|
log("debug", `chunk: type=${chunk.type} ` +
|
|
61
65
|
`kind=${chunk.kind} ` +
|
|
62
66
|
`start=${fmtTime(chunk.timestampStart)} ` +
|
|
@@ -64,19 +68,22 @@ class SpeechFlowNodeTrace extends speechflow_node_1.default {
|
|
|
64
68
|
`payload-type=Buffer payload-length=${chunk.payload.byteLength} ` +
|
|
65
69
|
`meta=${fmtMeta(chunk.meta)}`);
|
|
66
70
|
else
|
|
67
|
-
error = new Error(`${type} chunk: seen Buffer instead of String chunk type`);
|
|
71
|
+
error = new Error(`${self.params.type} chunk: seen Buffer instead of String chunk type`);
|
|
68
72
|
}
|
|
69
73
|
else {
|
|
70
|
-
if (type === "text")
|
|
71
|
-
log("debug",
|
|
74
|
+
if (self.params.type === "text") {
|
|
75
|
+
log("debug", `chunk: type=${chunk.type} ` +
|
|
72
76
|
`kind=${chunk.kind} ` +
|
|
73
77
|
`start=${fmtTime(chunk.timestampStart)} ` +
|
|
74
78
|
`end=${fmtTime(chunk.timestampEnd)} ` +
|
|
75
79
|
`payload-type=String payload-length=${chunk.payload.length} ` +
|
|
76
80
|
`payload-content="${chunk.payload.toString()}" ` +
|
|
77
81
|
`meta=${fmtMeta(chunk.meta)}`);
|
|
82
|
+
if (self.params.dashboard !== "")
|
|
83
|
+
self.dashboardInfo("text", self.params.dashboard, chunk.kind, chunk.payload.toString());
|
|
84
|
+
}
|
|
78
85
|
else
|
|
79
|
-
error = new Error(`${type} chunk: seen String instead of Buffer chunk type`);
|
|
86
|
+
error = new Error(`${self.params.type} chunk: seen String instead of Buffer chunk type`);
|
|
80
87
|
}
|
|
81
88
|
if (error !== undefined)
|
|
82
89
|
callback(error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"speechflow-node-x2x-trace.js","sourceRoot":"","sources":["../src/speechflow-node-x2x-trace.ts"],"names":[],"mappings":";AAAA;;;;EAIE;;;;;AAEF,6BAA6B;AAC7B,8DAAgC;AAKhC,6BAA6B;AAC7B,wEAAmE;AAEnE,6CAA6C;AAC7C,MAAqB,mBAAoB,SAAQ,yBAAc;IAC3D,kCAAkC;IAC3B,MAAM,CAAC,IAAI,GAAG,OAAO,CAAA;IAE5B,sBAAsB;IACtB,YAAa,EAAU,EAAE,GAA4B,EAAE,IAA6B,EAAE,IAAW;QAC7F,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QAE1B,6CAA6C;QAC7C,IAAI,CAAC,SAAS,CAAC;YACX,IAAI,
|
|
1
|
+
{"version":3,"file":"speechflow-node-x2x-trace.js","sourceRoot":"","sources":["../src/speechflow-node-x2x-trace.ts"],"names":[],"mappings":"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"}
|
package/dst/speechflow-node.d.ts
CHANGED
|
@@ -44,6 +44,8 @@ export default class SpeechFlowNode extends Events.EventEmitter {
|
|
|
44
44
|
setTimeZero(time: DateTime): void;
|
|
45
45
|
receiveRequest(args: any[]): Promise<void>;
|
|
46
46
|
sendResponse(args: any[]): void;
|
|
47
|
+
dashboardInfo(type: "audio", name: string, kind: "final" | "intermediate", value: number): void;
|
|
48
|
+
dashboardInfo(type: "text", name: string, kind: "final" | "intermediate", value: string): void;
|
|
47
49
|
configure(spec: {
|
|
48
50
|
[id: string]: {
|
|
49
51
|
type: string;
|
package/dst/speechflow-node.js
CHANGED
|
@@ -93,6 +93,9 @@ class SpeechFlowNode extends node_events_1.default.EventEmitter {
|
|
|
93
93
|
sendResponse(args) {
|
|
94
94
|
this.emit("send-response", args);
|
|
95
95
|
}
|
|
96
|
+
dashboardInfo(type, name, kind, value) {
|
|
97
|
+
this.emit("dashboard-info", { type, name, kind, value });
|
|
98
|
+
}
|
|
96
99
|
/* INTERNAL: utility function: create "params" attribute from constructor of sub-classes */
|
|
97
100
|
configure(spec) {
|
|
98
101
|
for (const name of Object.keys(spec)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"speechflow-node.js","sourceRoot":"","sources":["../src/speechflow-node.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"speechflow-node.js","sourceRoot":"","sources":["../src/speechflow-node.ts"],"names":[],"mappings":"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"}
|
package/dst/speechflow.js
CHANGED
|
@@ -47,6 +47,7 @@ const node_path_1 = __importDefault(require("node:path"));
|
|
|
47
47
|
const node_stream_1 = __importDefault(require("node:stream"));
|
|
48
48
|
const node_events_1 = require("node:events");
|
|
49
49
|
const HAPI = __importStar(require("@hapi/hapi"));
|
|
50
|
+
const inert_1 = __importDefault(require("@hapi/inert"));
|
|
50
51
|
const hapi_plugin_websocket_1 = __importDefault(require("hapi-plugin-websocket"));
|
|
51
52
|
const hapi_plugin_header_1 = __importDefault(require("hapi-plugin-header"));
|
|
52
53
|
/* external dependencies */
|
|
@@ -84,6 +85,7 @@ let cli = null;
|
|
|
84
85
|
"[-a|--address <ip-address>] " +
|
|
85
86
|
"[-p|--port <tcp-port>] " +
|
|
86
87
|
"[-C|--cache <directory>] " +
|
|
88
|
+
"[-d|--dashboard <type>:<name>[,...]] " +
|
|
87
89
|
"[-e|--expression <expression>] " +
|
|
88
90
|
"[-f|--file <file>] " +
|
|
89
91
|
"[-c|--config <id>@<yaml-config-file>] " +
|
|
@@ -140,6 +142,15 @@ let cli = null;
|
|
|
140
142
|
nargs: 1,
|
|
141
143
|
default: node_path_1.default.join(dataDir, "cache"),
|
|
142
144
|
describe: "directory for cached files (primarily AI model files)"
|
|
145
|
+
})
|
|
146
|
+
.option("d", {
|
|
147
|
+
alias: "dashboard",
|
|
148
|
+
type: "string",
|
|
149
|
+
array: false,
|
|
150
|
+
coerce,
|
|
151
|
+
nargs: 1,
|
|
152
|
+
default: "",
|
|
153
|
+
describe: "list of dashboard block types and names"
|
|
143
154
|
})
|
|
144
155
|
.option("e", {
|
|
145
156
|
alias: "expression",
|
|
@@ -500,8 +511,10 @@ let cli = null;
|
|
|
500
511
|
const name = req.node;
|
|
501
512
|
const args = req.args;
|
|
502
513
|
const foundNode = Array.from(graphNodes).find((node) => node.id === name);
|
|
503
|
-
if (foundNode === undefined)
|
|
514
|
+
if (foundNode === undefined) {
|
|
504
515
|
cli.log("warning", `external request failed: no such node <${name}>`);
|
|
516
|
+
throw new Error(`external request failed: no such node <${name}>`);
|
|
517
|
+
}
|
|
505
518
|
else {
|
|
506
519
|
await foundNode.receiveRequest(args).catch((err) => {
|
|
507
520
|
cli.log("warning", `external request to node <${name}> failed: ${err}`);
|
|
@@ -515,6 +528,7 @@ let cli = null;
|
|
|
515
528
|
address: args.a,
|
|
516
529
|
port: args.p
|
|
517
530
|
});
|
|
531
|
+
await hapi.register({ plugin: inert_1.default });
|
|
518
532
|
await hapi.register({ plugin: hapi_plugin_header_1.default, options: { Server: `${package_json_1.default.name}/${package_json_1.default.version}` } });
|
|
519
533
|
await hapi.register({ plugin: hapi_plugin_websocket_1.default });
|
|
520
534
|
hapi.events.on("response", (request) => {
|
|
@@ -547,6 +561,29 @@ let cli = null;
|
|
|
547
561
|
cli.log("error", `HAPI: log: ${err}`);
|
|
548
562
|
}
|
|
549
563
|
});
|
|
564
|
+
hapi.route({
|
|
565
|
+
method: "GET",
|
|
566
|
+
path: "/{param*}",
|
|
567
|
+
handler: {
|
|
568
|
+
directory: {
|
|
569
|
+
path: node_path_1.default.join(__dirname, "../dashboard/dst"),
|
|
570
|
+
redirectToSlash: true,
|
|
571
|
+
index: true
|
|
572
|
+
}
|
|
573
|
+
}
|
|
574
|
+
});
|
|
575
|
+
hapi.route({
|
|
576
|
+
method: "GET",
|
|
577
|
+
path: "/api/dashboard",
|
|
578
|
+
handler: (request, h) => {
|
|
579
|
+
const config = [];
|
|
580
|
+
for (const block of args.d.split(",")) {
|
|
581
|
+
const [type, name] = block.split(":");
|
|
582
|
+
config.push({ type, name });
|
|
583
|
+
}
|
|
584
|
+
return h.response(config).code(200);
|
|
585
|
+
}
|
|
586
|
+
});
|
|
550
587
|
hapi.route({
|
|
551
588
|
method: "GET",
|
|
552
589
|
path: "/api/{req}/{node}/{params*}",
|
|
@@ -622,6 +659,20 @@ let cli = null;
|
|
|
622
659
|
}
|
|
623
660
|
});
|
|
624
661
|
}
|
|
662
|
+
/* hook for dashboardInfo method of nodes */
|
|
663
|
+
for (const node of graphNodes) {
|
|
664
|
+
node.on("dashboard-info", (info) => {
|
|
665
|
+
const data = JSON.stringify({
|
|
666
|
+
response: "DASHBOARD",
|
|
667
|
+
node: "",
|
|
668
|
+
args: [info.type, info.name, info.kind, info.value]
|
|
669
|
+
});
|
|
670
|
+
for (const [peer, info] of wsPeers.entries()) {
|
|
671
|
+
cli.log("info", `HAPI: peer ${peer}: ${data}`);
|
|
672
|
+
info.ws.send(data);
|
|
673
|
+
}
|
|
674
|
+
});
|
|
675
|
+
}
|
|
625
676
|
/* start of internal stream processing */
|
|
626
677
|
cli.log("info", "**** everything established -- stream processing in SpeechFlow graph starts ****");
|
|
627
678
|
/* gracefully shutdown process */
|