speechflow 1.3.1 → 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 (156) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/etc/stx.conf +54 -58
  3. package/package.json +25 -106
  4. package/{etc → speechflow-cli/etc}/eslint.mjs +1 -2
  5. package/speechflow-cli/etc/stx.conf +77 -0
  6. package/speechflow-cli/package.json +116 -0
  7. package/{src → speechflow-cli/src}/speechflow-node-a2a-gender.ts +148 -64
  8. package/speechflow-cli/src/speechflow-node-a2a-meter.ts +217 -0
  9. package/{src → speechflow-cli/src}/speechflow-node-a2a-mute.ts +39 -11
  10. package/speechflow-cli/src/speechflow-node-a2a-vad.ts +384 -0
  11. package/{src → speechflow-cli/src}/speechflow-node-a2a-wav.ts +27 -11
  12. package/speechflow-cli/src/speechflow-node-a2t-deepgram.ts +313 -0
  13. package/{src → speechflow-cli/src}/speechflow-node-t2a-elevenlabs.ts +59 -12
  14. package/{src → speechflow-cli/src}/speechflow-node-t2a-kokoro.ts +11 -4
  15. package/{src → speechflow-cli/src}/speechflow-node-t2t-deepl.ts +9 -4
  16. package/{src → speechflow-cli/src}/speechflow-node-t2t-format.ts +2 -2
  17. package/{src → speechflow-cli/src}/speechflow-node-t2t-ollama.ts +1 -1
  18. package/{src → speechflow-cli/src}/speechflow-node-t2t-openai.ts +1 -1
  19. package/{src → speechflow-cli/src}/speechflow-node-t2t-sentence.ts +37 -20
  20. package/speechflow-cli/src/speechflow-node-t2t-subtitle.ts +276 -0
  21. package/{src → speechflow-cli/src}/speechflow-node-t2t-transformers.ts +4 -3
  22. package/{src → speechflow-cli/src}/speechflow-node-x2x-filter.ts +9 -5
  23. package/{src → speechflow-cli/src}/speechflow-node-x2x-trace.ts +16 -8
  24. package/{src → speechflow-cli/src}/speechflow-node-xio-device.ts +12 -8
  25. package/{src → speechflow-cli/src}/speechflow-node-xio-file.ts +9 -3
  26. package/{src → speechflow-cli/src}/speechflow-node-xio-mqtt.ts +5 -2
  27. package/{src → speechflow-cli/src}/speechflow-node-xio-websocket.ts +12 -12
  28. package/{src → speechflow-cli/src}/speechflow-node.ts +7 -0
  29. package/{src → speechflow-cli/src}/speechflow-utils.ts +78 -44
  30. package/{src → speechflow-cli/src}/speechflow.ts +188 -53
  31. package/speechflow-ui-db/etc/eslint.mjs +106 -0
  32. package/speechflow-ui-db/etc/htmllint.json +55 -0
  33. package/speechflow-ui-db/etc/stx.conf +79 -0
  34. package/speechflow-ui-db/etc/stylelint.js +46 -0
  35. package/speechflow-ui-db/etc/stylelint.yaml +33 -0
  36. package/speechflow-ui-db/etc/tsc-client.json +30 -0
  37. package/speechflow-ui-db/etc/tsc.node.json +9 -0
  38. package/speechflow-ui-db/etc/vite-client.mts +63 -0
  39. package/speechflow-ui-db/package.d/htmllint-cli+0.0.7.patch +20 -0
  40. package/speechflow-ui-db/package.json +75 -0
  41. package/speechflow-ui-db/src/app-icon.ai +1989 -4
  42. package/speechflow-ui-db/src/app-icon.svg +26 -0
  43. package/speechflow-ui-db/src/app.styl +64 -0
  44. package/speechflow-ui-db/src/app.vue +221 -0
  45. package/speechflow-ui-db/src/index.html +23 -0
  46. package/speechflow-ui-db/src/index.ts +26 -0
  47. package/{dst/speechflow.d.ts → speechflow-ui-db/src/lib.d.ts} +5 -3
  48. package/speechflow-ui-db/src/tsconfig.json +3 -0
  49. package/speechflow-ui-st/etc/eslint.mjs +106 -0
  50. package/speechflow-ui-st/etc/htmllint.json +55 -0
  51. package/speechflow-ui-st/etc/stx.conf +79 -0
  52. package/speechflow-ui-st/etc/stylelint.js +46 -0
  53. package/speechflow-ui-st/etc/stylelint.yaml +33 -0
  54. package/speechflow-ui-st/etc/tsc-client.json +30 -0
  55. package/speechflow-ui-st/etc/tsc.node.json +9 -0
  56. package/speechflow-ui-st/etc/vite-client.mts +63 -0
  57. package/speechflow-ui-st/package.d/htmllint-cli+0.0.7.patch +20 -0
  58. package/speechflow-ui-st/package.json +79 -0
  59. package/speechflow-ui-st/src/app-icon.ai +1989 -4
  60. package/speechflow-ui-st/src/app-icon.svg +26 -0
  61. package/speechflow-ui-st/src/app.styl +64 -0
  62. package/speechflow-ui-st/src/app.vue +142 -0
  63. package/speechflow-ui-st/src/index.html +23 -0
  64. package/speechflow-ui-st/src/index.ts +26 -0
  65. package/speechflow-ui-st/src/lib.d.ts +9 -0
  66. package/speechflow-ui-st/src/tsconfig.json +3 -0
  67. package/dst/speechflow-node-a2a-ffmpeg.d.ts +0 -13
  68. package/dst/speechflow-node-a2a-ffmpeg.js +0 -153
  69. package/dst/speechflow-node-a2a-ffmpeg.js.map +0 -1
  70. package/dst/speechflow-node-a2a-gender.d.ts +0 -18
  71. package/dst/speechflow-node-a2a-gender.js +0 -271
  72. package/dst/speechflow-node-a2a-gender.js.map +0 -1
  73. package/dst/speechflow-node-a2a-meter.d.ts +0 -12
  74. package/dst/speechflow-node-a2a-meter.js +0 -155
  75. package/dst/speechflow-node-a2a-meter.js.map +0 -1
  76. package/dst/speechflow-node-a2a-mute.d.ts +0 -16
  77. package/dst/speechflow-node-a2a-mute.js +0 -91
  78. package/dst/speechflow-node-a2a-mute.js.map +0 -1
  79. package/dst/speechflow-node-a2a-vad.d.ts +0 -16
  80. package/dst/speechflow-node-a2a-vad.js +0 -285
  81. package/dst/speechflow-node-a2a-vad.js.map +0 -1
  82. package/dst/speechflow-node-a2a-wav.d.ts +0 -11
  83. package/dst/speechflow-node-a2a-wav.js +0 -195
  84. package/dst/speechflow-node-a2a-wav.js.map +0 -1
  85. package/dst/speechflow-node-a2t-deepgram.d.ts +0 -15
  86. package/dst/speechflow-node-a2t-deepgram.js +0 -255
  87. package/dst/speechflow-node-a2t-deepgram.js.map +0 -1
  88. package/dst/speechflow-node-t2a-elevenlabs.d.ts +0 -16
  89. package/dst/speechflow-node-t2a-elevenlabs.js +0 -195
  90. package/dst/speechflow-node-t2a-elevenlabs.js.map +0 -1
  91. package/dst/speechflow-node-t2a-kokoro.d.ts +0 -13
  92. package/dst/speechflow-node-t2a-kokoro.js +0 -149
  93. package/dst/speechflow-node-t2a-kokoro.js.map +0 -1
  94. package/dst/speechflow-node-t2t-deepl.d.ts +0 -15
  95. package/dst/speechflow-node-t2t-deepl.js +0 -142
  96. package/dst/speechflow-node-t2t-deepl.js.map +0 -1
  97. package/dst/speechflow-node-t2t-format.d.ts +0 -11
  98. package/dst/speechflow-node-t2t-format.js +0 -82
  99. package/dst/speechflow-node-t2t-format.js.map +0 -1
  100. package/dst/speechflow-node-t2t-ollama.d.ts +0 -13
  101. package/dst/speechflow-node-t2t-ollama.js +0 -247
  102. package/dst/speechflow-node-t2t-ollama.js.map +0 -1
  103. package/dst/speechflow-node-t2t-openai.d.ts +0 -13
  104. package/dst/speechflow-node-t2t-openai.js +0 -227
  105. package/dst/speechflow-node-t2t-openai.js.map +0 -1
  106. package/dst/speechflow-node-t2t-sentence.d.ts +0 -17
  107. package/dst/speechflow-node-t2t-sentence.js +0 -234
  108. package/dst/speechflow-node-t2t-sentence.js.map +0 -1
  109. package/dst/speechflow-node-t2t-subtitle.d.ts +0 -13
  110. package/dst/speechflow-node-t2t-subtitle.js +0 -278
  111. package/dst/speechflow-node-t2t-subtitle.js.map +0 -1
  112. package/dst/speechflow-node-t2t-transformers.d.ts +0 -14
  113. package/dst/speechflow-node-t2t-transformers.js +0 -265
  114. package/dst/speechflow-node-t2t-transformers.js.map +0 -1
  115. package/dst/speechflow-node-x2x-filter.d.ts +0 -11
  116. package/dst/speechflow-node-x2x-filter.js +0 -117
  117. package/dst/speechflow-node-x2x-filter.js.map +0 -1
  118. package/dst/speechflow-node-x2x-trace.d.ts +0 -11
  119. package/dst/speechflow-node-x2x-trace.js +0 -111
  120. package/dst/speechflow-node-x2x-trace.js.map +0 -1
  121. package/dst/speechflow-node-xio-device.d.ts +0 -13
  122. package/dst/speechflow-node-xio-device.js +0 -226
  123. package/dst/speechflow-node-xio-device.js.map +0 -1
  124. package/dst/speechflow-node-xio-file.d.ts +0 -11
  125. package/dst/speechflow-node-xio-file.js +0 -210
  126. package/dst/speechflow-node-xio-file.js.map +0 -1
  127. package/dst/speechflow-node-xio-mqtt.d.ts +0 -13
  128. package/dst/speechflow-node-xio-mqtt.js +0 -185
  129. package/dst/speechflow-node-xio-mqtt.js.map +0 -1
  130. package/dst/speechflow-node-xio-websocket.d.ts +0 -13
  131. package/dst/speechflow-node-xio-websocket.js +0 -278
  132. package/dst/speechflow-node-xio-websocket.js.map +0 -1
  133. package/dst/speechflow-node.d.ts +0 -65
  134. package/dst/speechflow-node.js +0 -180
  135. package/dst/speechflow-node.js.map +0 -1
  136. package/dst/speechflow-utils.d.ts +0 -69
  137. package/dst/speechflow-utils.js +0 -486
  138. package/dst/speechflow-utils.js.map +0 -1
  139. package/dst/speechflow.js +0 -768
  140. package/dst/speechflow.js.map +0 -1
  141. package/src/speechflow-node-a2a-meter.ts +0 -130
  142. package/src/speechflow-node-a2a-vad.ts +0 -285
  143. package/src/speechflow-node-a2t-deepgram.ts +0 -234
  144. package/src/speechflow-node-t2t-subtitle.ts +0 -149
  145. /package/{etc → speechflow-cli/etc}/biome.jsonc +0 -0
  146. /package/{etc → speechflow-cli/etc}/oxlint.jsonc +0 -0
  147. /package/{etc → speechflow-cli/etc}/speechflow.bat +0 -0
  148. /package/{etc → speechflow-cli/etc}/speechflow.sh +0 -0
  149. /package/{etc → speechflow-cli/etc}/speechflow.yaml +0 -0
  150. /package/{etc → speechflow-cli/etc}/tsconfig.json +0 -0
  151. /package/{package.d → speechflow-cli/package.d}/@ericedouard+vad-node-realtime+0.2.0.patch +0 -0
  152. /package/{src → speechflow-cli/src}/lib.d.ts +0 -0
  153. /package/{src → speechflow-cli/src}/speechflow-logo.ai +0 -0
  154. /package/{src → speechflow-cli/src}/speechflow-logo.svg +0 -0
  155. /package/{src → speechflow-cli/src}/speechflow-node-a2a-ffmpeg.ts +0 -0
  156. /package/{tsconfig.json → speechflow-cli/tsconfig.json} +0 -0
@@ -1,227 +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 __importDefault = (this && this.__importDefault) || function (mod) {
8
- return (mod && mod.__esModule) ? mod : { "default": mod };
9
- };
10
- Object.defineProperty(exports, "__esModule", { value: true });
11
- /* standard dependencies */
12
- const node_stream_1 = __importDefault(require("node:stream"));
13
- /* external dependencies */
14
- const openai_1 = __importDefault(require("openai"));
15
- /* internal dependencies */
16
- const speechflow_node_1 = __importDefault(require("./speechflow-node"));
17
- /* SpeechFlow node for OpenAI/GPT text-to-text translation */
18
- class SpeechFlowNodeOpenAI extends speechflow_node_1.default {
19
- /* declare official node name */
20
- static name = "openai";
21
- /* internal state */
22
- openai = null;
23
- /* internal LLM setup */
24
- setup = {
25
- /* English (EN) spellchecking only */
26
- "en-en": {
27
- systemPrompt: "You are a proofreader and spellchecker for English.\n" +
28
- "Output only the corrected text.\n" +
29
- "Do NOT use markdown.\n" +
30
- "Do NOT give any explanations.\n" +
31
- "Do NOT give any introduction.\n" +
32
- "Do NOT give any comments.\n" +
33
- "Do NOT give any preamble.\n" +
34
- "Do NOT give any prolog.\n" +
35
- "Do NOT give any epilog.\n" +
36
- "Do NOT change the gammar.\n" +
37
- "Do NOT use synonyms for words.\n" +
38
- "Keep all words.\n" +
39
- "Fill in missing commas.\n" +
40
- "Fill in missing points.\n" +
41
- "Fill in missing question marks.\n" +
42
- "Fill in missing hyphens.\n" +
43
- "Focus ONLY on the word spelling.\n" +
44
- "The text you have to correct is:\n",
45
- chat: [
46
- { role: "user", content: "I luve my wyfe" },
47
- { role: "system", content: "I love my wife." },
48
- { role: "user", content: "The weether is wunderfull!" },
49
- { role: "system", content: "The weather is wonderful!" },
50
- { role: "user", content: "The live awesome but I'm hungry." },
51
- { role: "system", content: "The live is awesome, but I'm hungry." }
52
- ]
53
- },
54
- /* German (DE) spellchecking only */
55
- "de-de": {
56
- systemPrompt: "Du bist ein Korrekturleser und Rechtschreibprüfer für Deutsch.\n" +
57
- "Gib nur den korrigierten Text aus.\n" +
58
- "Benutze KEIN Markdown.\n" +
59
- "Gib KEINE Erklärungen.\n" +
60
- "Gib KEINE Einleitung.\n" +
61
- "Gib KEINE Kommentare.\n" +
62
- "Gib KEINE Preamble.\n" +
63
- "Gib KEINEN Prolog.\n" +
64
- "Gib KEINEN Epilog.\n" +
65
- "Ändere NICHT die Grammatik.\n" +
66
- "Verwende KEINE Synonyme für Wörter.\n" +
67
- "Behalte alle Wörter bei.\n" +
68
- "Füge fehlende Kommas ein.\n" +
69
- "Füge fehlende Punkte ein.\n" +
70
- "Füge fehlende Fragezeichen ein.\n" +
71
- "Füge fehlende Bindestriche ein.\n" +
72
- "Füge fehlende Gedankenstriche ein.\n" +
73
- "Fokussiere dich NUR auf die Rechtschreibung der Wörter.\n" +
74
- "Der von dir zu korrigierende Text ist:\n",
75
- chat: [
76
- { role: "user", content: "Ich ljebe meine Frao" },
77
- { role: "system", content: "Ich liebe meine Frau." },
78
- { role: "user", content: "Die Wedter ist wunderschoen." },
79
- { role: "system", content: "Das Wetter ist wunderschön." },
80
- { role: "user", content: "Das Leben einfach großartig aber ich bin hungrig." },
81
- { role: "system", content: "Das Leben ist einfach großartig, aber ich bin hungrig." }
82
- ]
83
- },
84
- /* English (EN) to German (DE) translation */
85
- "en-de": {
86
- systemPrompt: "You are a translator.\n" +
87
- "Output only the requested text.\n" +
88
- "Do not use markdown.\n" +
89
- "Do not chat.\n" +
90
- "Do not show any explanations.\n" +
91
- "Do not show any introduction.\n" +
92
- "Do not show any preamble.\n" +
93
- "Do not show any prolog.\n" +
94
- "Do not show any epilog.\n" +
95
- "Get to the point.\n" +
96
- "Preserve the original meaning, tone, and nuance.\n" +
97
- "Directly translate text from English (EN) to fluent and natural German (DE) language.\n",
98
- chat: [
99
- { role: "user", content: "I love my wife." },
100
- { role: "system", content: "Ich liebe meine Frau." },
101
- { role: "user", content: "The weather is wonderful." },
102
- { role: "system", content: "Das Wetter ist wunderschön." },
103
- { role: "user", content: "The live is awesome." },
104
- { role: "system", content: "Das Leben ist einfach großartig." }
105
- ]
106
- },
107
- /* German (DE) to English (EN) translation */
108
- "de-en": {
109
- systemPrompt: "You are a translator.\n" +
110
- "Output only the requested text.\n" +
111
- "Do not use markdown.\n" +
112
- "Do not chat.\n" +
113
- "Do not show any explanations. \n" +
114
- "Do not show any introduction.\n" +
115
- "Do not show any preamble. \n" +
116
- "Do not show any prolog. \n" +
117
- "Do not show any epilog. \n" +
118
- "Get to the point.\n" +
119
- "Preserve the original meaning, tone, and nuance.\n" +
120
- "Directly translate text from German (DE) to fluent and natural English (EN) language.\n",
121
- chat: [
122
- { role: "user", content: "Ich liebe meine Frau." },
123
- { role: "system", content: "I love my wife." },
124
- { role: "user", content: "Das Wetter ist wunderschön." },
125
- { role: "system", content: "The weather is wonderful." },
126
- { role: "user", content: "Das Leben ist einfach großartig." },
127
- { role: "system", content: "The live is awesome." }
128
- ]
129
- }
130
- };
131
- /* construct node */
132
- constructor(id, cfg, opts, args) {
133
- super(id, cfg, opts, args);
134
- /* declare node configuration parameters */
135
- this.configure({
136
- src: { type: "string", pos: 0, val: "de", match: /^(?:de|en)$/ },
137
- dst: { type: "string", pos: 1, val: "en", match: /^(?:de|en)$/ },
138
- key: { type: "string", val: process.env.SPEECHFLOW_OPENAI_KEY },
139
- api: { type: "string", val: "https://api.openai.com/v1", match: /^https?:\/\/.+?:\d+$/ },
140
- model: { type: "string", val: "gpt-4o-mini" }
141
- });
142
- /* tell effective mode */
143
- if (this.params.src === this.params.dst)
144
- this.log("info", `OpenAI: operation mode: spellchecking for language "${this.params.src}"`);
145
- else
146
- this.log("info", `OpenAI: operation mode: translation from language "${this.params.src}"` +
147
- ` to language "${this.params.dst}"`);
148
- /* declare node input/output format */
149
- this.input = "text";
150
- this.output = "text";
151
- }
152
- /* open node */
153
- async open() {
154
- /* instantiate OpenAI API */
155
- this.openai = new openai_1.default({
156
- baseURL: this.params.api,
157
- apiKey: this.params.key,
158
- dangerouslyAllowBrowser: true
159
- });
160
- /* provide text-to-text translation */
161
- const translate = async (text) => {
162
- const key = `${this.params.src}-${this.params.dst}`;
163
- const cfg = this.setup[key];
164
- const stream = this.openai.chat.completions.stream({
165
- stream: true,
166
- model: this.params.model,
167
- seed: null,
168
- temperature: 0.7,
169
- n: 1,
170
- messages: [
171
- { role: "system", content: cfg.systemPrompt },
172
- ...cfg.chat,
173
- { role: "user", content: text }
174
- ]
175
- });
176
- const completion = await stream.finalChatCompletion();
177
- const translation = completion.choices[0].message.content;
178
- if (!stream.ended)
179
- stream.abort();
180
- return translation;
181
- };
182
- /* establish a duplex stream and connect it to OpenAI */
183
- this.stream = new node_stream_1.default.Transform({
184
- readableObjectMode: true,
185
- writableObjectMode: true,
186
- decodeStrings: false,
187
- highWaterMark: 1,
188
- transform(chunk, encoding, callback) {
189
- if (Buffer.isBuffer(chunk.payload))
190
- callback(new Error("invalid chunk payload type"));
191
- else {
192
- if (chunk.payload === "") {
193
- this.push(chunk);
194
- callback();
195
- }
196
- else {
197
- translate(chunk.payload).then((payload) => {
198
- const chunkNew = chunk.clone();
199
- chunkNew.payload = payload;
200
- this.push(chunkNew);
201
- callback();
202
- }).catch((err) => {
203
- callback(err);
204
- });
205
- }
206
- }
207
- },
208
- final(callback) {
209
- this.push(null);
210
- callback();
211
- }
212
- });
213
- }
214
- /* close node */
215
- async close() {
216
- /* close stream */
217
- if (this.stream !== null) {
218
- this.stream.destroy();
219
- this.stream = null;
220
- }
221
- /* shutdown OpenAI */
222
- if (this.openai !== null)
223
- this.openai = null;
224
- }
225
- }
226
- exports.default = SpeechFlowNodeOpenAI;
227
- //# sourceMappingURL=speechflow-node-t2t-openai.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"speechflow-node-t2t-openai.js","sourceRoot":"","sources":["../src/speechflow-node-t2t-openai.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- import SpeechFlowNode from "./speechflow-node";
2
- export default class SpeechFlowNodeSentence extends SpeechFlowNode {
3
- static name: string;
4
- private static speexInitialized;
5
- private queue;
6
- private queueRecv;
7
- private queueSplit;
8
- private queueSend;
9
- private destroyed;
10
- constructor(id: string, cfg: {
11
- [id: string]: any;
12
- }, opts: {
13
- [id: string]: any;
14
- }, args: any[]);
15
- open(): Promise<void>;
16
- close(): Promise<void>;
17
- }
@@ -1,234 +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
- static speexInitialized = false;
57
- queue = new utils.Queue();
58
- queueRecv = this.queue.pointerUse("recv");
59
- queueSplit = this.queue.pointerUse("split");
60
- queueSend = this.queue.pointerUse("send");
61
- destroyed = false;
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
- /* pass-through logging */
76
- const log = (level, msg) => { this.log(level, msg); };
77
- /* work off queued audio frames */
78
- let workingOffTimer = null;
79
- let workingOff = false;
80
- const workOffQueue = async () => {
81
- if (this.destroyed)
82
- return;
83
- /* control working off round */
84
- if (workingOff)
85
- return;
86
- workingOff = true;
87
- if (workingOffTimer !== null) {
88
- clearTimeout(workingOffTimer);
89
- workingOffTimer = null;
90
- }
91
- this.queue.off("write", workOffQueue);
92
- /* try to work off one or more chunks */
93
- while (true) {
94
- const element = this.queueSplit.peek();
95
- if (element === undefined)
96
- break;
97
- if (element.type === "text-eof") {
98
- this.queueSplit.walk(+1);
99
- break;
100
- }
101
- const chunk = element.chunk;
102
- const payload = chunk.payload;
103
- const m = payload.match(/^((?:.|\r?\n)+?[.;?!])\s*((?:.|\r?\n)*)$/);
104
- if (m !== null) {
105
- /* contains a sentence */
106
- const [, sentence, rest] = m;
107
- if (rest !== "") {
108
- /* contains more than a sentence */
109
- const chunk2 = chunk.clone();
110
- const duration = luxon_1.Duration.fromMillis(chunk.timestampEnd.minus(chunk.timestampStart).toMillis() *
111
- (sentence.length / payload.length));
112
- chunk2.timestampStart = chunk.timestampStart.plus(duration);
113
- chunk.timestampEnd = chunk2.timestampStart;
114
- chunk.payload = sentence;
115
- chunk2.payload = rest;
116
- element.complete = true;
117
- this.queueSplit.touch();
118
- this.queueSplit.walk(+1);
119
- this.queueSplit.insert({ type: "text-frame", chunk: chunk2 });
120
- }
121
- else {
122
- /* contains just the sentence */
123
- element.complete = true;
124
- this.queueSplit.touch();
125
- this.queueSplit.walk(+1);
126
- }
127
- }
128
- else {
129
- /* contains less than a sentence */
130
- const position = this.queueSplit.position();
131
- if (position < this.queueSplit.maxPosition() - 1) {
132
- /* merge into following chunk */
133
- const element2 = this.queueSplit.peek(position + 1);
134
- if (element2 === undefined)
135
- break;
136
- if (element2.type === "text-eof") {
137
- element.complete = true;
138
- this.queueSplit.touch();
139
- this.queueSplit.walk(+1);
140
- break;
141
- }
142
- element2.chunk.timestampStart = element.chunk.timestampStart;
143
- element2.chunk.payload =
144
- element.chunk.payload + " " +
145
- element2.chunk.payload;
146
- this.queueSplit.delete();
147
- this.queueSplit.touch();
148
- }
149
- else
150
- break;
151
- }
152
- }
153
- /* re-initiate working off round */
154
- workingOff = false;
155
- workingOffTimer = setTimeout(workOffQueue, 100);
156
- this.queue.once("write", workOffQueue);
157
- };
158
- this.queue.once("write", workOffQueue);
159
- /* provide Duplex stream and internally attach to classifier */
160
- const self = this;
161
- this.stream = new node_stream_1.default.Duplex({
162
- writableObjectMode: true,
163
- readableObjectMode: true,
164
- decodeStrings: false,
165
- highWaterMark: 1,
166
- /* receive text chunk (writable side of stream) */
167
- write(chunk, encoding, callback) {
168
- if (Buffer.isBuffer(chunk.payload))
169
- callback(new Error("expected text input as string chunks"));
170
- else if (chunk.payload.length === 0)
171
- callback();
172
- else {
173
- log("info", `received text: ${JSON.stringify(chunk.payload)}`);
174
- self.queueRecv.append({ type: "text-frame", chunk });
175
- callback();
176
- }
177
- },
178
- /* receive no more text chunks (writable side of stream) */
179
- final(callback) {
180
- /* signal end of file */
181
- self.queueRecv.append({ type: "text-eof" });
182
- callback();
183
- },
184
- /* send text chunk(s) (readable side of stream) */
185
- read(_size) {
186
- /* flush pending audio chunks */
187
- const flushPendingChunks = () => {
188
- const element = self.queueSend.peek();
189
- if (element !== undefined
190
- && element.type === "text-eof") {
191
- this.push(null);
192
- self.queueSend.walk(+1);
193
- }
194
- else if (element !== undefined
195
- && element.type === "text-frame"
196
- && element.complete === true) {
197
- while (true) {
198
- const element = self.queueSend.peek();
199
- if (element === undefined)
200
- break;
201
- else if (element.type === "text-eof") {
202
- this.push(null);
203
- self.queueSend.walk(+1);
204
- break;
205
- }
206
- else if (element.type === "text-frame"
207
- && element.complete !== true)
208
- break;
209
- log("info", `send text: ${JSON.stringify(element.chunk.payload)}`);
210
- this.push(element.chunk);
211
- self.queueSend.walk(+1);
212
- self.queue.trim();
213
- }
214
- }
215
- else
216
- self.queue.once("write", flushPendingChunks);
217
- };
218
- flushPendingChunks();
219
- }
220
- });
221
- }
222
- /* close node */
223
- async close() {
224
- /* close stream */
225
- if (this.stream !== null) {
226
- this.stream.destroy();
227
- this.stream = null;
228
- }
229
- /* indicate destruction */
230
- this.destroyed = true;
231
- }
232
- }
233
- exports.default = SpeechFlowNodeSentence;
234
- //# 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,13 +0,0 @@
1
- import SpeechFlowNode from "./speechflow-node";
2
- export default class SpeechFlowNodeSubtitle extends SpeechFlowNode {
3
- static name: string;
4
- private sequenceNo;
5
- private hapi;
6
- constructor(id: string, cfg: {
7
- [id: string]: any;
8
- }, opts: {
9
- [id: string]: any;
10
- }, args: any[]);
11
- open(): Promise<void>;
12
- close(): Promise<void>;
13
- }