speechflow 1.3.2 → 1.4.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.
Files changed (155) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +3 -3
  3. package/etc/stx.conf +54 -58
  4. package/package.json +31 -102
  5. package/speechflow-cli/etc/stx.conf +77 -0
  6. package/speechflow-cli/package.json +116 -0
  7. package/speechflow-cli/src/speechflow-node-a2a-meter.ts +217 -0
  8. package/{src → speechflow-cli/src}/speechflow-node-a2a-vad.ts +14 -21
  9. package/{src → speechflow-cli/src}/speechflow-node-a2t-deepgram.ts +21 -38
  10. package/{src → speechflow-cli/src}/speechflow-node-t2a-elevenlabs.ts +10 -16
  11. package/speechflow-cli/src/speechflow-node-t2t-subtitle.ts +276 -0
  12. package/{src → speechflow-cli/src}/speechflow-node-x2x-filter.ts +5 -1
  13. package/{src → speechflow-cli/src}/speechflow-node-x2x-trace.ts +15 -7
  14. package/{src → speechflow-cli/src}/speechflow-node.ts +7 -0
  15. package/{src → speechflow-cli/src}/speechflow.ts +81 -25
  16. package/speechflow-ui-db/etc/eslint.mjs +106 -0
  17. package/speechflow-ui-db/etc/htmllint.json +55 -0
  18. package/speechflow-ui-db/etc/stx.conf +79 -0
  19. package/speechflow-ui-db/etc/stylelint.js +46 -0
  20. package/speechflow-ui-db/etc/stylelint.yaml +33 -0
  21. package/speechflow-ui-db/etc/tsc-client.json +30 -0
  22. package/speechflow-ui-db/etc/tsc.node.json +9 -0
  23. package/speechflow-ui-db/etc/vite-client.mts +63 -0
  24. package/speechflow-ui-db/package.d/htmllint-cli+0.0.7.patch +20 -0
  25. package/speechflow-ui-db/package.json +75 -0
  26. package/speechflow-ui-db/src/app-icon.ai +1989 -4
  27. package/speechflow-ui-db/src/app-icon.svg +26 -0
  28. package/speechflow-ui-db/src/app.styl +64 -0
  29. package/speechflow-ui-db/src/app.vue +221 -0
  30. package/speechflow-ui-db/src/index.html +23 -0
  31. package/speechflow-ui-db/src/index.ts +26 -0
  32. package/{dst/speechflow.d.ts → speechflow-ui-db/src/lib.d.ts} +5 -3
  33. package/speechflow-ui-db/src/tsconfig.json +3 -0
  34. package/speechflow-ui-st/etc/eslint.mjs +106 -0
  35. package/speechflow-ui-st/etc/htmllint.json +55 -0
  36. package/speechflow-ui-st/etc/stx.conf +79 -0
  37. package/speechflow-ui-st/etc/stylelint.js +46 -0
  38. package/speechflow-ui-st/etc/stylelint.yaml +33 -0
  39. package/speechflow-ui-st/etc/tsc-client.json +30 -0
  40. package/speechflow-ui-st/etc/tsc.node.json +9 -0
  41. package/speechflow-ui-st/etc/vite-client.mts +63 -0
  42. package/speechflow-ui-st/package.d/htmllint-cli+0.0.7.patch +20 -0
  43. package/speechflow-ui-st/package.json +79 -0
  44. package/speechflow-ui-st/src/app-icon.ai +1989 -4
  45. package/speechflow-ui-st/src/app-icon.svg +26 -0
  46. package/speechflow-ui-st/src/app.styl +64 -0
  47. package/speechflow-ui-st/src/app.vue +142 -0
  48. package/speechflow-ui-st/src/index.html +23 -0
  49. package/speechflow-ui-st/src/index.ts +26 -0
  50. package/speechflow-ui-st/src/lib.d.ts +9 -0
  51. package/speechflow-ui-st/src/tsconfig.json +3 -0
  52. package/dst/speechflow-node-a2a-ffmpeg.d.ts +0 -13
  53. package/dst/speechflow-node-a2a-ffmpeg.js +0 -153
  54. package/dst/speechflow-node-a2a-ffmpeg.js.map +0 -1
  55. package/dst/speechflow-node-a2a-gender.d.ts +0 -20
  56. package/dst/speechflow-node-a2a-gender.js +0 -349
  57. package/dst/speechflow-node-a2a-gender.js.map +0 -1
  58. package/dst/speechflow-node-a2a-meter.d.ts +0 -14
  59. package/dst/speechflow-node-a2a-meter.js +0 -196
  60. package/dst/speechflow-node-a2a-meter.js.map +0 -1
  61. package/dst/speechflow-node-a2a-mute.d.ts +0 -17
  62. package/dst/speechflow-node-a2a-mute.js +0 -117
  63. package/dst/speechflow-node-a2a-mute.js.map +0 -1
  64. package/dst/speechflow-node-a2a-vad.d.ts +0 -19
  65. package/dst/speechflow-node-a2a-vad.js +0 -383
  66. package/dst/speechflow-node-a2a-vad.js.map +0 -1
  67. package/dst/speechflow-node-a2a-wav.d.ts +0 -11
  68. package/dst/speechflow-node-a2a-wav.js +0 -211
  69. package/dst/speechflow-node-a2a-wav.js.map +0 -1
  70. package/dst/speechflow-node-a2t-deepgram.d.ts +0 -19
  71. package/dst/speechflow-node-a2t-deepgram.js +0 -345
  72. package/dst/speechflow-node-a2t-deepgram.js.map +0 -1
  73. package/dst/speechflow-node-t2a-elevenlabs.d.ts +0 -18
  74. package/dst/speechflow-node-t2a-elevenlabs.js +0 -244
  75. package/dst/speechflow-node-t2a-elevenlabs.js.map +0 -1
  76. package/dst/speechflow-node-t2a-kokoro.d.ts +0 -14
  77. package/dst/speechflow-node-t2a-kokoro.js +0 -155
  78. package/dst/speechflow-node-t2a-kokoro.js.map +0 -1
  79. package/dst/speechflow-node-t2t-deepl.d.ts +0 -15
  80. package/dst/speechflow-node-t2t-deepl.js +0 -146
  81. package/dst/speechflow-node-t2t-deepl.js.map +0 -1
  82. package/dst/speechflow-node-t2t-format.d.ts +0 -11
  83. package/dst/speechflow-node-t2t-format.js +0 -82
  84. package/dst/speechflow-node-t2t-format.js.map +0 -1
  85. package/dst/speechflow-node-t2t-ollama.d.ts +0 -13
  86. package/dst/speechflow-node-t2t-ollama.js +0 -247
  87. package/dst/speechflow-node-t2t-ollama.js.map +0 -1
  88. package/dst/speechflow-node-t2t-openai.d.ts +0 -13
  89. package/dst/speechflow-node-t2t-openai.js +0 -227
  90. package/dst/speechflow-node-t2t-openai.js.map +0 -1
  91. package/dst/speechflow-node-t2t-sentence.d.ts +0 -17
  92. package/dst/speechflow-node-t2t-sentence.js +0 -250
  93. package/dst/speechflow-node-t2t-sentence.js.map +0 -1
  94. package/dst/speechflow-node-t2t-subtitle.d.ts +0 -12
  95. package/dst/speechflow-node-t2t-subtitle.js +0 -166
  96. package/dst/speechflow-node-t2t-subtitle.js.map +0 -1
  97. package/dst/speechflow-node-t2t-transformers.d.ts +0 -14
  98. package/dst/speechflow-node-t2t-transformers.js +0 -265
  99. package/dst/speechflow-node-t2t-transformers.js.map +0 -1
  100. package/dst/speechflow-node-x2x-filter.d.ts +0 -11
  101. package/dst/speechflow-node-x2x-filter.js +0 -117
  102. package/dst/speechflow-node-x2x-filter.js.map +0 -1
  103. package/dst/speechflow-node-x2x-trace.d.ts +0 -11
  104. package/dst/speechflow-node-x2x-trace.js +0 -104
  105. package/dst/speechflow-node-x2x-trace.js.map +0 -1
  106. package/dst/speechflow-node-xio-device.d.ts +0 -13
  107. package/dst/speechflow-node-xio-device.js +0 -230
  108. package/dst/speechflow-node-xio-device.js.map +0 -1
  109. package/dst/speechflow-node-xio-file.d.ts +0 -11
  110. package/dst/speechflow-node-xio-file.js +0 -216
  111. package/dst/speechflow-node-xio-file.js.map +0 -1
  112. package/dst/speechflow-node-xio-mqtt.d.ts +0 -13
  113. package/dst/speechflow-node-xio-mqtt.js +0 -188
  114. package/dst/speechflow-node-xio-mqtt.js.map +0 -1
  115. package/dst/speechflow-node-xio-websocket.d.ts +0 -13
  116. package/dst/speechflow-node-xio-websocket.js +0 -278
  117. package/dst/speechflow-node-xio-websocket.js.map +0 -1
  118. package/dst/speechflow-node.d.ts +0 -63
  119. package/dst/speechflow-node.js +0 -177
  120. package/dst/speechflow-node.js.map +0 -1
  121. package/dst/speechflow-utils.d.ts +0 -74
  122. package/dst/speechflow-utils.js +0 -519
  123. package/dst/speechflow-utils.js.map +0 -1
  124. package/dst/speechflow.js +0 -787
  125. package/dst/speechflow.js.map +0 -1
  126. package/src/speechflow-node-a2a-meter.ts +0 -177
  127. package/src/speechflow-node-t2t-subtitle.ts +0 -149
  128. /package/{etc → speechflow-cli/etc}/biome.jsonc +0 -0
  129. /package/{etc → speechflow-cli/etc}/eslint.mjs +0 -0
  130. /package/{etc → speechflow-cli/etc}/oxlint.jsonc +0 -0
  131. /package/{etc → speechflow-cli/etc}/speechflow.bat +0 -0
  132. /package/{etc → speechflow-cli/etc}/speechflow.sh +0 -0
  133. /package/{etc → speechflow-cli/etc}/speechflow.yaml +0 -0
  134. /package/{etc → speechflow-cli/etc}/tsconfig.json +0 -0
  135. /package/{package.d → speechflow-cli/package.d}/@ericedouard+vad-node-realtime+0.2.0.patch +0 -0
  136. /package/{src → speechflow-cli/src}/lib.d.ts +0 -0
  137. /package/{src → speechflow-cli/src}/speechflow-logo.ai +0 -0
  138. /package/{src → speechflow-cli/src}/speechflow-logo.svg +0 -0
  139. /package/{src → speechflow-cli/src}/speechflow-node-a2a-ffmpeg.ts +0 -0
  140. /package/{src → speechflow-cli/src}/speechflow-node-a2a-gender.ts +0 -0
  141. /package/{src → speechflow-cli/src}/speechflow-node-a2a-mute.ts +0 -0
  142. /package/{src → speechflow-cli/src}/speechflow-node-a2a-wav.ts +0 -0
  143. /package/{src → speechflow-cli/src}/speechflow-node-t2a-kokoro.ts +0 -0
  144. /package/{src → speechflow-cli/src}/speechflow-node-t2t-deepl.ts +0 -0
  145. /package/{src → speechflow-cli/src}/speechflow-node-t2t-format.ts +0 -0
  146. /package/{src → speechflow-cli/src}/speechflow-node-t2t-ollama.ts +0 -0
  147. /package/{src → speechflow-cli/src}/speechflow-node-t2t-openai.ts +0 -0
  148. /package/{src → speechflow-cli/src}/speechflow-node-t2t-sentence.ts +0 -0
  149. /package/{src → speechflow-cli/src}/speechflow-node-t2t-transformers.ts +0 -0
  150. /package/{src → speechflow-cli/src}/speechflow-node-xio-device.ts +0 -0
  151. /package/{src → speechflow-cli/src}/speechflow-node-xio-file.ts +0 -0
  152. /package/{src → speechflow-cli/src}/speechflow-node-xio-mqtt.ts +0 -0
  153. /package/{src → speechflow-cli/src}/speechflow-node-xio-websocket.ts +0 -0
  154. /package/{src → speechflow-cli/src}/speechflow-utils.ts +0 -0
  155. /package/{tsconfig.json → speechflow-cli/tsconfig.json} +0 -0
@@ -1,250 +0,0 @@
1
- "use strict";
2
- /*
3
- ** SpeechFlow - Speech Processing Flow Graph
4
- ** Copyright (c) 2024-2025 Dr. Ralf S. Engelschall <rse@engelschall.com>
5
- ** Licensed under GPL 3.0 <https://spdx.org/licenses/GPL-3.0-only>
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
- })();
40
- var __importDefault = (this && this.__importDefault) || function (mod) {
41
- return (mod && mod.__esModule) ? mod : { "default": mod };
42
- };
43
- Object.defineProperty(exports, "__esModule", { value: true });
44
- /* standard dependencies */
45
- const node_stream_1 = __importDefault(require("node:stream"));
46
- /* external dependencies */
47
- const luxon_1 = require("luxon");
48
- /* internal dependencies */
49
- const speechflow_node_1 = __importDefault(require("./speechflow-node"));
50
- const utils = __importStar(require("./speechflow-utils"));
51
- /* SpeechFlow node for sentence splitting */
52
- class SpeechFlowNodeSentence extends speechflow_node_1.default {
53
- /* declare official node name */
54
- static name = "sentence";
55
- /* internal state */
56
- queue = new utils.Queue();
57
- queueRecv = this.queue.pointerUse("recv");
58
- queueSplit = this.queue.pointerUse("split");
59
- queueSend = this.queue.pointerUse("send");
60
- destroyed = false;
61
- workingOffTimer = null;
62
- /* construct node */
63
- constructor(id, cfg, opts, args) {
64
- super(id, cfg, opts, args);
65
- /* declare node configuration parameters */
66
- this.configure({});
67
- /* declare node input/output format */
68
- this.input = "text";
69
- this.output = "text";
70
- }
71
- /* open node */
72
- async open() {
73
- /* clear destruction flag */
74
- this.destroyed = false;
75
- /* work off queued audio frames */
76
- let workingOff = false;
77
- const workOffQueue = async () => {
78
- if (this.destroyed)
79
- return;
80
- /* control working off round */
81
- if (workingOff)
82
- return;
83
- workingOff = true;
84
- if (this.workingOffTimer !== null) {
85
- clearTimeout(this.workingOffTimer);
86
- this.workingOffTimer = null;
87
- }
88
- this.queue.off("write", workOffQueue);
89
- /* try to work off one or more chunks */
90
- while (!this.destroyed) {
91
- const element = this.queueSplit.peek();
92
- if (element === undefined)
93
- break;
94
- if (element.type === "text-eof") {
95
- this.queueSplit.walk(+1);
96
- break;
97
- }
98
- const chunk = element.chunk;
99
- const payload = chunk.payload;
100
- const m = payload.match(/^((?:.|\r?\n)+?[.;?!])\s*((?:.|\r?\n)*)$/);
101
- if (m !== null) {
102
- /* contains a sentence */
103
- const [, sentence, rest] = m;
104
- if (rest !== "") {
105
- /* contains more than a sentence */
106
- const chunk2 = chunk.clone();
107
- const duration = luxon_1.Duration.fromMillis(chunk.timestampEnd.minus(chunk.timestampStart).toMillis() *
108
- (sentence.length / payload.length));
109
- chunk2.timestampStart = chunk.timestampStart.plus(duration);
110
- chunk.timestampEnd = chunk2.timestampStart;
111
- chunk.payload = sentence;
112
- chunk2.payload = rest;
113
- element.complete = true;
114
- this.queueSplit.touch();
115
- this.queueSplit.walk(+1);
116
- this.queueSplit.insert({ type: "text-frame", chunk: chunk2 });
117
- }
118
- else {
119
- /* contains just the sentence */
120
- element.complete = true;
121
- this.queueSplit.touch();
122
- this.queueSplit.walk(+1);
123
- }
124
- }
125
- else {
126
- /* contains less than a sentence */
127
- const position = this.queueSplit.position();
128
- if (position < this.queueSplit.maxPosition() - 1) {
129
- /* merge into following chunk */
130
- const element2 = this.queueSplit.peek(position + 1);
131
- if (element2 === undefined)
132
- break;
133
- if (element2.type === "text-eof") {
134
- element.complete = true;
135
- this.queueSplit.touch();
136
- this.queueSplit.walk(+1);
137
- break;
138
- }
139
- element2.chunk.timestampStart = element.chunk.timestampStart;
140
- element2.chunk.payload =
141
- element.chunk.payload + " " +
142
- element2.chunk.payload;
143
- this.queueSplit.delete();
144
- this.queueSplit.touch();
145
- }
146
- else
147
- break;
148
- }
149
- }
150
- /* re-initiate working off round (if still not destroyed) */
151
- workingOff = false;
152
- if (!this.destroyed) {
153
- this.workingOffTimer = setTimeout(workOffQueue, 100);
154
- this.queue.once("write", workOffQueue);
155
- }
156
- };
157
- this.queue.once("write", workOffQueue);
158
- /* provide Duplex stream and internally attach to classifier */
159
- const self = this;
160
- this.stream = new node_stream_1.default.Duplex({
161
- writableObjectMode: true,
162
- readableObjectMode: true,
163
- decodeStrings: false,
164
- highWaterMark: 1,
165
- /* receive text chunk (writable side of stream) */
166
- write(chunk, encoding, callback) {
167
- if (self.destroyed)
168
- callback(new Error("stream already destroyed"));
169
- else if (Buffer.isBuffer(chunk.payload))
170
- callback(new Error("expected text input as string chunks"));
171
- else if (chunk.payload.length === 0)
172
- callback();
173
- else {
174
- self.log("info", `received text: ${JSON.stringify(chunk.payload)}`);
175
- self.queueRecv.append({ type: "text-frame", chunk });
176
- callback();
177
- }
178
- },
179
- /* receive no more text chunks (writable side of stream) */
180
- final(callback) {
181
- if (self.destroyed) {
182
- callback();
183
- return;
184
- }
185
- /* signal end of file */
186
- self.queueRecv.append({ type: "text-eof" });
187
- callback();
188
- },
189
- /* send text chunk(s) (readable side of stream) */
190
- read(_size) {
191
- /* flush pending text chunks */
192
- const flushPendingChunks = () => {
193
- if (self.destroyed) {
194
- this.push(null);
195
- return;
196
- }
197
- const element = self.queueSend.peek();
198
- if (element !== undefined
199
- && element.type === "text-eof") {
200
- this.push(null);
201
- self.queueSend.walk(+1);
202
- }
203
- else if (element !== undefined
204
- && element.type === "text-frame"
205
- && element.complete === true) {
206
- while (true) {
207
- const element = self.queueSend.peek();
208
- if (element === undefined)
209
- break;
210
- else if (element.type === "text-eof") {
211
- this.push(null);
212
- self.queueSend.walk(+1);
213
- break;
214
- }
215
- else if (element.type === "text-frame"
216
- && element.complete !== true)
217
- break;
218
- self.log("info", `send text: ${JSON.stringify(element.chunk.payload)}`);
219
- this.push(element.chunk);
220
- self.queueSend.walk(+1);
221
- self.queue.trim();
222
- }
223
- }
224
- else if (!self.destroyed)
225
- self.queue.once("write", flushPendingChunks);
226
- };
227
- flushPendingChunks();
228
- }
229
- });
230
- }
231
- /* close node */
232
- async close() {
233
- /* indicate destruction */
234
- this.destroyed = true;
235
- /* clean up timer */
236
- if (this.workingOffTimer !== null) {
237
- clearTimeout(this.workingOffTimer);
238
- this.workingOffTimer = null;
239
- }
240
- /* remove any pending event listeners */
241
- this.queue.removeAllListeners("write");
242
- /* close stream */
243
- if (this.stream !== null) {
244
- this.stream.destroy();
245
- this.stream = null;
246
- }
247
- }
248
- }
249
- exports.default = SpeechFlowNodeSentence;
250
- //# sourceMappingURL=speechflow-node-t2t-sentence.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"speechflow-node-t2t-sentence.js","sourceRoot":"","sources":["../src/speechflow-node-t2t-sentence.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- import SpeechFlowNode from "./speechflow-node";
2
- export default class SpeechFlowNodeSubtitle extends SpeechFlowNode {
3
- static name: string;
4
- private sequenceNo;
5
- constructor(id: string, cfg: {
6
- [id: string]: any;
7
- }, opts: {
8
- [id: string]: any;
9
- }, args: any[]);
10
- open(): Promise<void>;
11
- close(): Promise<void>;
12
- }
@@ -1,166 +0,0 @@
1
- "use strict";
2
- /*
3
- ** SpeechFlow - Speech Processing Flow Graph
4
- ** Copyright (c) 2024-2025 Dr. Ralf S. Engelschall <rse@engelschall.com>
5
- ** Licensed under GPL 3.0 <https://spdx.org/licenses/GPL-3.0-only>
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
- })();
40
- var __importDefault = (this && this.__importDefault) || function (mod) {
41
- return (mod && mod.__esModule) ? mod : { "default": mod };
42
- };
43
- Object.defineProperty(exports, "__esModule", { value: true });
44
- /* standard dependencies */
45
- const node_stream_1 = __importDefault(require("node:stream"));
46
- /* external dependencies */
47
- const luxon_1 = require("luxon");
48
- /* internal dependencies */
49
- const speechflow_node_1 = __importStar(require("./speechflow-node"));
50
- /* SpeechFlow node for subtitle (text-to-text) "translations" */
51
- class SpeechFlowNodeSubtitle extends speechflow_node_1.default {
52
- /* declare official node name */
53
- static name = "subtitle";
54
- /* internal state */
55
- sequenceNo = 1;
56
- /* construct node */
57
- constructor(id, cfg, opts, args) {
58
- super(id, cfg, opts, args);
59
- /* declare node configuration parameters */
60
- this.configure({
61
- format: { type: "string", pos: 0, val: "srt", match: /^(?:srt|vtt)$/ },
62
- words: { type: "boolean", val: false }
63
- });
64
- /* declare node input/output format */
65
- this.input = "text";
66
- this.output = "text";
67
- }
68
- /* open node */
69
- async open() {
70
- this.sequenceNo = 1;
71
- /* provide text-to-subtitle conversion */
72
- const convert = async (chunk) => {
73
- if (typeof chunk.payload !== "string")
74
- throw new Error("chunk payload type must be string");
75
- const convertSingle = (start, end, text, word, occurence) => {
76
- if (word) {
77
- occurence ??= 1;
78
- let match = 1;
79
- word = word.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
80
- text = text.replaceAll(new RegExp(`\\b${word}\\b`, "g"), (m) => {
81
- if (match++ === occurence)
82
- return `<b>${m}</b>`;
83
- else
84
- return m;
85
- });
86
- }
87
- if (this.params.format === "srt") {
88
- const startFmt = start.toFormat("hh:mm:ss,SSS");
89
- const endFmt = end.toFormat("hh:mm:ss,SSS");
90
- text = `${this.sequenceNo++}\n` +
91
- `${startFmt} --> ${endFmt}\n` +
92
- `${text}\n\n`;
93
- }
94
- else if (this.params.format === "vtt") {
95
- const startFmt = start.toFormat("hh:mm:ss.SSS");
96
- const endFmt = end.toFormat("hh:mm:ss.SSS");
97
- text = `${startFmt} --> ${endFmt}\n` +
98
- `${text}\n\n`;
99
- }
100
- return text;
101
- };
102
- let output = "";
103
- if (this.params.words) {
104
- output += convertSingle(chunk.timestampStart, chunk.timestampEnd, chunk.payload);
105
- const words = (chunk.meta.get("words") ?? []);
106
- const occurences = new Map();
107
- for (const word of words) {
108
- let occurence = occurences.get(word.word) ?? 0;
109
- occurence++;
110
- occurences.set(word.word, occurence);
111
- output += convertSingle(word.start, word.end, chunk.payload, word.word, occurence);
112
- }
113
- }
114
- else
115
- output += convertSingle(chunk.timestampStart, chunk.timestampEnd, chunk.payload);
116
- return output;
117
- };
118
- /* establish a duplex stream */
119
- const self = this;
120
- let firstChunk = true;
121
- this.stream = new node_stream_1.default.Transform({
122
- readableObjectMode: true,
123
- writableObjectMode: true,
124
- decodeStrings: false,
125
- highWaterMark: 1,
126
- transform(chunk, encoding, callback) {
127
- if (firstChunk && self.params.format === "vtt") {
128
- this.push(new speechflow_node_1.SpeechFlowChunk(luxon_1.Duration.fromMillis(0), luxon_1.Duration.fromMillis(0), "final", "text", "WEBVTT\n\n"));
129
- firstChunk = false;
130
- }
131
- if (Buffer.isBuffer(chunk.payload))
132
- callback(new Error("invalid chunk payload type"));
133
- else {
134
- if (chunk.payload === "") {
135
- this.push(chunk);
136
- callback();
137
- }
138
- else {
139
- convert(chunk).then((payload) => {
140
- const chunkNew = chunk.clone();
141
- chunkNew.payload = payload;
142
- this.push(chunkNew);
143
- callback();
144
- }).catch((err) => {
145
- callback(err);
146
- });
147
- }
148
- }
149
- },
150
- final(callback) {
151
- this.push(null);
152
- callback();
153
- }
154
- });
155
- }
156
- /* open node */
157
- async close() {
158
- /* close stream */
159
- if (this.stream !== null) {
160
- this.stream.destroy();
161
- this.stream = null;
162
- }
163
- }
164
- }
165
- exports.default = SpeechFlowNodeSubtitle;
166
- //# sourceMappingURL=speechflow-node-t2t-subtitle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"speechflow-node-t2t-subtitle.js","sourceRoot":"","sources":["../src/speechflow-node-t2t-subtitle.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- import SpeechFlowNode from "./speechflow-node";
2
- export default class SpeechFlowNodeTransformers extends SpeechFlowNode {
3
- static name: string;
4
- private translator;
5
- private generator;
6
- private setup;
7
- constructor(id: string, cfg: {
8
- [id: string]: any;
9
- }, opts: {
10
- [id: string]: any;
11
- }, args: any[]);
12
- open(): Promise<void>;
13
- close(): Promise<void>;
14
- }