speechflow 1.3.2 → 1.4.0

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 (154) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/etc/stx.conf +54 -58
  3. package/package.json +25 -106
  4. package/speechflow-cli/etc/stx.conf +77 -0
  5. package/speechflow-cli/package.json +116 -0
  6. package/speechflow-cli/src/speechflow-node-a2a-meter.ts +217 -0
  7. package/{src → speechflow-cli/src}/speechflow-node-a2a-vad.ts +14 -21
  8. package/{src → speechflow-cli/src}/speechflow-node-a2t-deepgram.ts +21 -38
  9. package/{src → speechflow-cli/src}/speechflow-node-t2a-elevenlabs.ts +10 -16
  10. package/speechflow-cli/src/speechflow-node-t2t-subtitle.ts +276 -0
  11. package/{src → speechflow-cli/src}/speechflow-node-x2x-filter.ts +5 -1
  12. package/{src → speechflow-cli/src}/speechflow-node-x2x-trace.ts +15 -7
  13. package/{src → speechflow-cli/src}/speechflow-node.ts +7 -0
  14. package/{src → speechflow-cli/src}/speechflow.ts +81 -25
  15. package/speechflow-ui-db/etc/eslint.mjs +106 -0
  16. package/speechflow-ui-db/etc/htmllint.json +55 -0
  17. package/speechflow-ui-db/etc/stx.conf +79 -0
  18. package/speechflow-ui-db/etc/stylelint.js +46 -0
  19. package/speechflow-ui-db/etc/stylelint.yaml +33 -0
  20. package/speechflow-ui-db/etc/tsc-client.json +30 -0
  21. package/speechflow-ui-db/etc/tsc.node.json +9 -0
  22. package/speechflow-ui-db/etc/vite-client.mts +63 -0
  23. package/speechflow-ui-db/package.d/htmllint-cli+0.0.7.patch +20 -0
  24. package/speechflow-ui-db/package.json +75 -0
  25. package/speechflow-ui-db/src/app-icon.ai +1989 -4
  26. package/speechflow-ui-db/src/app-icon.svg +26 -0
  27. package/speechflow-ui-db/src/app.styl +64 -0
  28. package/speechflow-ui-db/src/app.vue +221 -0
  29. package/speechflow-ui-db/src/index.html +23 -0
  30. package/speechflow-ui-db/src/index.ts +26 -0
  31. package/{dst/speechflow.d.ts → speechflow-ui-db/src/lib.d.ts} +5 -3
  32. package/speechflow-ui-db/src/tsconfig.json +3 -0
  33. package/speechflow-ui-st/etc/eslint.mjs +106 -0
  34. package/speechflow-ui-st/etc/htmllint.json +55 -0
  35. package/speechflow-ui-st/etc/stx.conf +79 -0
  36. package/speechflow-ui-st/etc/stylelint.js +46 -0
  37. package/speechflow-ui-st/etc/stylelint.yaml +33 -0
  38. package/speechflow-ui-st/etc/tsc-client.json +30 -0
  39. package/speechflow-ui-st/etc/tsc.node.json +9 -0
  40. package/speechflow-ui-st/etc/vite-client.mts +63 -0
  41. package/speechflow-ui-st/package.d/htmllint-cli+0.0.7.patch +20 -0
  42. package/speechflow-ui-st/package.json +79 -0
  43. package/speechflow-ui-st/src/app-icon.ai +1989 -4
  44. package/speechflow-ui-st/src/app-icon.svg +26 -0
  45. package/speechflow-ui-st/src/app.styl +64 -0
  46. package/speechflow-ui-st/src/app.vue +142 -0
  47. package/speechflow-ui-st/src/index.html +23 -0
  48. package/speechflow-ui-st/src/index.ts +26 -0
  49. package/speechflow-ui-st/src/lib.d.ts +9 -0
  50. package/speechflow-ui-st/src/tsconfig.json +3 -0
  51. package/dst/speechflow-node-a2a-ffmpeg.d.ts +0 -13
  52. package/dst/speechflow-node-a2a-ffmpeg.js +0 -153
  53. package/dst/speechflow-node-a2a-ffmpeg.js.map +0 -1
  54. package/dst/speechflow-node-a2a-gender.d.ts +0 -20
  55. package/dst/speechflow-node-a2a-gender.js +0 -349
  56. package/dst/speechflow-node-a2a-gender.js.map +0 -1
  57. package/dst/speechflow-node-a2a-meter.d.ts +0 -14
  58. package/dst/speechflow-node-a2a-meter.js +0 -196
  59. package/dst/speechflow-node-a2a-meter.js.map +0 -1
  60. package/dst/speechflow-node-a2a-mute.d.ts +0 -17
  61. package/dst/speechflow-node-a2a-mute.js +0 -117
  62. package/dst/speechflow-node-a2a-mute.js.map +0 -1
  63. package/dst/speechflow-node-a2a-vad.d.ts +0 -19
  64. package/dst/speechflow-node-a2a-vad.js +0 -383
  65. package/dst/speechflow-node-a2a-vad.js.map +0 -1
  66. package/dst/speechflow-node-a2a-wav.d.ts +0 -11
  67. package/dst/speechflow-node-a2a-wav.js +0 -211
  68. package/dst/speechflow-node-a2a-wav.js.map +0 -1
  69. package/dst/speechflow-node-a2t-deepgram.d.ts +0 -19
  70. package/dst/speechflow-node-a2t-deepgram.js +0 -345
  71. package/dst/speechflow-node-a2t-deepgram.js.map +0 -1
  72. package/dst/speechflow-node-t2a-elevenlabs.d.ts +0 -18
  73. package/dst/speechflow-node-t2a-elevenlabs.js +0 -244
  74. package/dst/speechflow-node-t2a-elevenlabs.js.map +0 -1
  75. package/dst/speechflow-node-t2a-kokoro.d.ts +0 -14
  76. package/dst/speechflow-node-t2a-kokoro.js +0 -155
  77. package/dst/speechflow-node-t2a-kokoro.js.map +0 -1
  78. package/dst/speechflow-node-t2t-deepl.d.ts +0 -15
  79. package/dst/speechflow-node-t2t-deepl.js +0 -146
  80. package/dst/speechflow-node-t2t-deepl.js.map +0 -1
  81. package/dst/speechflow-node-t2t-format.d.ts +0 -11
  82. package/dst/speechflow-node-t2t-format.js +0 -82
  83. package/dst/speechflow-node-t2t-format.js.map +0 -1
  84. package/dst/speechflow-node-t2t-ollama.d.ts +0 -13
  85. package/dst/speechflow-node-t2t-ollama.js +0 -247
  86. package/dst/speechflow-node-t2t-ollama.js.map +0 -1
  87. package/dst/speechflow-node-t2t-openai.d.ts +0 -13
  88. package/dst/speechflow-node-t2t-openai.js +0 -227
  89. package/dst/speechflow-node-t2t-openai.js.map +0 -1
  90. package/dst/speechflow-node-t2t-sentence.d.ts +0 -17
  91. package/dst/speechflow-node-t2t-sentence.js +0 -250
  92. package/dst/speechflow-node-t2t-sentence.js.map +0 -1
  93. package/dst/speechflow-node-t2t-subtitle.d.ts +0 -12
  94. package/dst/speechflow-node-t2t-subtitle.js +0 -166
  95. package/dst/speechflow-node-t2t-subtitle.js.map +0 -1
  96. package/dst/speechflow-node-t2t-transformers.d.ts +0 -14
  97. package/dst/speechflow-node-t2t-transformers.js +0 -265
  98. package/dst/speechflow-node-t2t-transformers.js.map +0 -1
  99. package/dst/speechflow-node-x2x-filter.d.ts +0 -11
  100. package/dst/speechflow-node-x2x-filter.js +0 -117
  101. package/dst/speechflow-node-x2x-filter.js.map +0 -1
  102. package/dst/speechflow-node-x2x-trace.d.ts +0 -11
  103. package/dst/speechflow-node-x2x-trace.js +0 -104
  104. package/dst/speechflow-node-x2x-trace.js.map +0 -1
  105. package/dst/speechflow-node-xio-device.d.ts +0 -13
  106. package/dst/speechflow-node-xio-device.js +0 -230
  107. package/dst/speechflow-node-xio-device.js.map +0 -1
  108. package/dst/speechflow-node-xio-file.d.ts +0 -11
  109. package/dst/speechflow-node-xio-file.js +0 -216
  110. package/dst/speechflow-node-xio-file.js.map +0 -1
  111. package/dst/speechflow-node-xio-mqtt.d.ts +0 -13
  112. package/dst/speechflow-node-xio-mqtt.js +0 -188
  113. package/dst/speechflow-node-xio-mqtt.js.map +0 -1
  114. package/dst/speechflow-node-xio-websocket.d.ts +0 -13
  115. package/dst/speechflow-node-xio-websocket.js +0 -278
  116. package/dst/speechflow-node-xio-websocket.js.map +0 -1
  117. package/dst/speechflow-node.d.ts +0 -63
  118. package/dst/speechflow-node.js +0 -177
  119. package/dst/speechflow-node.js.map +0 -1
  120. package/dst/speechflow-utils.d.ts +0 -74
  121. package/dst/speechflow-utils.js +0 -519
  122. package/dst/speechflow-utils.js.map +0 -1
  123. package/dst/speechflow.js +0 -787
  124. package/dst/speechflow.js.map +0 -1
  125. package/src/speechflow-node-a2a-meter.ts +0 -177
  126. package/src/speechflow-node-t2t-subtitle.ts +0 -149
  127. /package/{etc → speechflow-cli/etc}/biome.jsonc +0 -0
  128. /package/{etc → speechflow-cli/etc}/eslint.mjs +0 -0
  129. /package/{etc → speechflow-cli/etc}/oxlint.jsonc +0 -0
  130. /package/{etc → speechflow-cli/etc}/speechflow.bat +0 -0
  131. /package/{etc → speechflow-cli/etc}/speechflow.sh +0 -0
  132. /package/{etc → speechflow-cli/etc}/speechflow.yaml +0 -0
  133. /package/{etc → speechflow-cli/etc}/tsconfig.json +0 -0
  134. /package/{package.d → speechflow-cli/package.d}/@ericedouard+vad-node-realtime+0.2.0.patch +0 -0
  135. /package/{src → speechflow-cli/src}/lib.d.ts +0 -0
  136. /package/{src → speechflow-cli/src}/speechflow-logo.ai +0 -0
  137. /package/{src → speechflow-cli/src}/speechflow-logo.svg +0 -0
  138. /package/{src → speechflow-cli/src}/speechflow-node-a2a-ffmpeg.ts +0 -0
  139. /package/{src → speechflow-cli/src}/speechflow-node-a2a-gender.ts +0 -0
  140. /package/{src → speechflow-cli/src}/speechflow-node-a2a-mute.ts +0 -0
  141. /package/{src → speechflow-cli/src}/speechflow-node-a2a-wav.ts +0 -0
  142. /package/{src → speechflow-cli/src}/speechflow-node-t2a-kokoro.ts +0 -0
  143. /package/{src → speechflow-cli/src}/speechflow-node-t2t-deepl.ts +0 -0
  144. /package/{src → speechflow-cli/src}/speechflow-node-t2t-format.ts +0 -0
  145. /package/{src → speechflow-cli/src}/speechflow-node-t2t-ollama.ts +0 -0
  146. /package/{src → speechflow-cli/src}/speechflow-node-t2t-openai.ts +0 -0
  147. /package/{src → speechflow-cli/src}/speechflow-node-t2t-sentence.ts +0 -0
  148. /package/{src → speechflow-cli/src}/speechflow-node-t2t-transformers.ts +0 -0
  149. /package/{src → speechflow-cli/src}/speechflow-node-xio-device.ts +0 -0
  150. /package/{src → speechflow-cli/src}/speechflow-node-xio-file.ts +0 -0
  151. /package/{src → speechflow-cli/src}/speechflow-node-xio-mqtt.ts +0 -0
  152. /package/{src → speechflow-cli/src}/speechflow-node-xio-websocket.ts +0 -0
  153. /package/{src → speechflow-cli/src}/speechflow-utils.ts +0 -0
  154. /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
- }