speechflow 0.9.8 → 1.0.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 (114) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/LICENSE.txt +674 -0
  3. package/README.md +114 -17
  4. package/dst/speechflow-node-a2a-ffmpeg.js +1 -0
  5. package/dst/speechflow-node-a2a-ffmpeg.js.map +1 -0
  6. package/dst/{speechflow-node-deepl.d.ts → speechflow-node-a2a-meter.d.ts} +2 -2
  7. package/dst/speechflow-node-a2a-meter.js +147 -0
  8. package/dst/speechflow-node-a2a-meter.js.map +1 -0
  9. package/dst/speechflow-node-a2a-mute.d.ts +16 -0
  10. package/dst/speechflow-node-a2a-mute.js +90 -0
  11. package/dst/speechflow-node-a2a-mute.js.map +1 -0
  12. package/dst/{speechflow-node-whisper.d.ts → speechflow-node-a2a-vad.d.ts} +2 -5
  13. package/dst/speechflow-node-a2a-vad.js +272 -0
  14. package/dst/speechflow-node-a2a-vad.js.map +1 -0
  15. package/dst/speechflow-node-a2a-wav.js +1 -0
  16. package/dst/speechflow-node-a2a-wav.js.map +1 -0
  17. package/dst/speechflow-node-a2t-deepgram.js +2 -1
  18. package/dst/speechflow-node-a2t-deepgram.js.map +1 -0
  19. package/dst/speechflow-node-t2a-elevenlabs.js +1 -0
  20. package/dst/speechflow-node-t2a-elevenlabs.js.map +1 -0
  21. package/dst/{speechflow-node-elevenlabs.d.ts → speechflow-node-t2a-kokoro.d.ts} +2 -2
  22. package/dst/speechflow-node-t2a-kokoro.js +148 -0
  23. package/dst/speechflow-node-t2a-kokoro.js.map +1 -0
  24. package/dst/speechflow-node-t2t-deepl.js +1 -0
  25. package/dst/speechflow-node-t2t-deepl.js.map +1 -0
  26. package/dst/speechflow-node-t2t-format.js +1 -0
  27. package/dst/speechflow-node-t2t-format.js.map +1 -0
  28. package/dst/{speechflow-node-gemma.d.ts → speechflow-node-t2t-ollama.d.ts} +1 -1
  29. package/dst/{speechflow-node-gemma.js → speechflow-node-t2t-ollama.js} +41 -8
  30. package/dst/speechflow-node-t2t-ollama.js.map +1 -0
  31. package/dst/{speechflow-node-t2t-gemma.d.ts → speechflow-node-t2t-openai.d.ts} +2 -2
  32. package/dst/{speechflow-node-t2t-gemma.js → speechflow-node-t2t-openai.js} +43 -30
  33. package/dst/speechflow-node-t2t-openai.js.map +1 -0
  34. package/dst/speechflow-node-t2t-subtitle.js +1 -0
  35. package/dst/speechflow-node-t2t-subtitle.js.map +1 -0
  36. package/dst/{speechflow-node-opus.d.ts → speechflow-node-t2t-transformers.d.ts} +3 -1
  37. package/dst/speechflow-node-t2t-transformers.js +264 -0
  38. package/dst/speechflow-node-t2t-transformers.js.map +1 -0
  39. package/dst/speechflow-node-x2x-trace.js +3 -2
  40. package/dst/speechflow-node-x2x-trace.js.map +1 -0
  41. package/dst/speechflow-node-xio-device.js +1 -0
  42. package/dst/speechflow-node-xio-device.js.map +1 -0
  43. package/dst/speechflow-node-xio-file.js +1 -0
  44. package/dst/speechflow-node-xio-file.js.map +1 -0
  45. package/dst/speechflow-node-xio-mqtt.js +1 -0
  46. package/dst/speechflow-node-xio-mqtt.js.map +1 -0
  47. package/dst/speechflow-node-xio-websocket.js +1 -0
  48. package/dst/speechflow-node-xio-websocket.js.map +1 -0
  49. package/dst/speechflow-node.d.ts +3 -0
  50. package/dst/speechflow-node.js +10 -0
  51. package/dst/speechflow-node.js.map +1 -0
  52. package/dst/speechflow-utils.d.ts +33 -0
  53. package/dst/speechflow-utils.js +183 -1
  54. package/dst/speechflow-utils.js.map +1 -0
  55. package/dst/speechflow.js +295 -46
  56. package/dst/speechflow.js.map +1 -0
  57. package/etc/speechflow.yaml +14 -5
  58. package/etc/stx.conf +1 -1
  59. package/etc/tsconfig.json +2 -2
  60. package/package.json +17 -10
  61. package/src/speechflow-node-a2a-meter.ts +125 -0
  62. package/src/speechflow-node-a2a-mute.ts +101 -0
  63. package/src/speechflow-node-a2a-vad.ts +266 -0
  64. package/src/speechflow-node-a2t-deepgram.ts +1 -1
  65. package/src/speechflow-node-t2a-kokoro.ts +160 -0
  66. package/src/{speechflow-node-t2t-gemma.ts → speechflow-node-t2t-ollama.ts} +44 -10
  67. package/src/speechflow-node-t2t-openai.ts +246 -0
  68. package/src/speechflow-node-t2t-transformers.ts +249 -0
  69. package/src/speechflow-node-x2x-trace.ts +2 -2
  70. package/src/speechflow-node-xio-websocket.ts +5 -5
  71. package/src/speechflow-node.ts +12 -0
  72. package/src/speechflow-utils.ts +195 -0
  73. package/src/speechflow.ts +279 -46
  74. package/dst/speechflow-node-deepgram.d.ts +0 -12
  75. package/dst/speechflow-node-deepgram.js +0 -220
  76. package/dst/speechflow-node-deepl.js +0 -128
  77. package/dst/speechflow-node-device.d.ts +0 -13
  78. package/dst/speechflow-node-device.js +0 -205
  79. package/dst/speechflow-node-elevenlabs.js +0 -182
  80. package/dst/speechflow-node-ffmpeg.d.ts +0 -13
  81. package/dst/speechflow-node-ffmpeg.js +0 -152
  82. package/dst/speechflow-node-file.d.ts +0 -11
  83. package/dst/speechflow-node-file.js +0 -176
  84. package/dst/speechflow-node-format.d.ts +0 -11
  85. package/dst/speechflow-node-format.js +0 -80
  86. package/dst/speechflow-node-mqtt.d.ts +0 -13
  87. package/dst/speechflow-node-mqtt.js +0 -181
  88. package/dst/speechflow-node-opus.js +0 -135
  89. package/dst/speechflow-node-subtitle.d.ts +0 -12
  90. package/dst/speechflow-node-subtitle.js +0 -96
  91. package/dst/speechflow-node-t2t-opus.d.ts +0 -12
  92. package/dst/speechflow-node-t2t-opus.js +0 -135
  93. package/dst/speechflow-node-trace.d.ts +0 -11
  94. package/dst/speechflow-node-trace.js +0 -88
  95. package/dst/speechflow-node-wav.d.ts +0 -11
  96. package/dst/speechflow-node-wav.js +0 -170
  97. package/dst/speechflow-node-websocket.d.ts +0 -13
  98. package/dst/speechflow-node-websocket.js +0 -275
  99. package/dst/speechflow-node-whisper-common.d.ts +0 -34
  100. package/dst/speechflow-node-whisper-common.js +0 -7
  101. package/dst/speechflow-node-whisper-ggml.d.ts +0 -1
  102. package/dst/speechflow-node-whisper-ggml.js +0 -97
  103. package/dst/speechflow-node-whisper-onnx.d.ts +0 -1
  104. package/dst/speechflow-node-whisper-onnx.js +0 -131
  105. package/dst/speechflow-node-whisper-worker-ggml.d.ts +0 -1
  106. package/dst/speechflow-node-whisper-worker-ggml.js +0 -97
  107. package/dst/speechflow-node-whisper-worker-onnx.d.ts +0 -1
  108. package/dst/speechflow-node-whisper-worker-onnx.js +0 -131
  109. package/dst/speechflow-node-whisper-worker.d.ts +0 -1
  110. package/dst/speechflow-node-whisper-worker.js +0 -116
  111. package/dst/speechflow-node-whisper-worker2.d.ts +0 -1
  112. package/dst/speechflow-node-whisper-worker2.js +0 -82
  113. package/dst/speechflow-node-whisper.js +0 -604
  114. package/src/speechflow-node-t2t-opus.ts +0 -111
@@ -14,10 +14,10 @@ const node_stream_1 = __importDefault(require("node:stream"));
14
14
  const ollama_1 = require("ollama");
15
15
  /* internal dependencies */
16
16
  const speechflow_node_1 = __importDefault(require("./speechflow-node"));
17
- /* SpeechFlow node for Gemma/Ollama text-to-text translation */
18
- class SpeechFlowNodeGemma extends speechflow_node_1.default {
17
+ /* SpeechFlow node for Ollama text-to-text translation */
18
+ class SpeechFlowNodeOllama extends speechflow_node_1.default {
19
19
  /* declare official node name */
20
- static name = "gemma";
20
+ static name = "ollama";
21
21
  /* internal state */
22
22
  ollama = null;
23
23
  /* internal LLM setup */
@@ -93,7 +93,8 @@ class SpeechFlowNodeGemma extends speechflow_node_1.default {
93
93
  "Do not show any prolog.\n" +
94
94
  "Do not show any epilog.\n" +
95
95
  "Get to the point.\n" +
96
- "Directly translate text from Enlish (EN) to German (DE) language.\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",
97
98
  chat: [
98
99
  { role: "user", content: "I love my wife." },
99
100
  { role: "system", content: "Ich liebe meine Frau." },
@@ -109,13 +110,14 @@ class SpeechFlowNodeGemma extends speechflow_node_1.default {
109
110
  "Output only the requested text.\n" +
110
111
  "Do not use markdown.\n" +
111
112
  "Do not chat.\n" +
112
- "Do not show any explanations. \n" +
113
+ "Do not show any explanations.\n" +
113
114
  "Do not show any introduction.\n" +
114
115
  "Do not show any preamble. \n" +
115
116
  "Do not show any prolog. \n" +
116
117
  "Do not show any epilog. \n" +
117
118
  "Get to the point.\n" +
118
- "Directly translate text from German (DE) to English (EN) language.\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",
119
121
  chat: [
120
122
  { role: "user", content: "Ich liebe meine Frau." },
121
123
  { role: "system", content: "I love my wife." },
@@ -132,9 +134,16 @@ class SpeechFlowNodeGemma extends speechflow_node_1.default {
132
134
  /* declare node configuration parameters */
133
135
  this.configure({
134
136
  api: { type: "string", val: "http://127.0.0.1:11434", match: /^https?:\/\/.+?:\d+$/ },
137
+ model: { type: "string", val: "gemma3:4b-it-q4_K_M", match: /^.+$/ },
135
138
  src: { type: "string", pos: 0, val: "de", match: /^(?:de|en)$/ },
136
139
  dst: { type: "string", pos: 1, val: "en", match: /^(?:de|en)$/ }
137
140
  });
141
+ /* tell effective mode */
142
+ if (this.params.src === this.params.dst)
143
+ this.log("info", `Ollama: operation mode: spellchecking for language "${this.params.src}"`);
144
+ else
145
+ this.log("info", `Ollama: operation mode: translation from language "${this.params.src}"` +
146
+ ` to language "${this.params.dst}"`);
138
147
  /* declare node input/output format */
139
148
  this.input = "text";
140
149
  this.output = "text";
@@ -143,12 +152,35 @@ class SpeechFlowNodeGemma extends speechflow_node_1.default {
143
152
  async open() {
144
153
  /* instantiate Ollama API */
145
154
  this.ollama = new ollama_1.Ollama({ host: this.params.api });
155
+ /* ensure the model is available */
156
+ const model = this.params.model;
157
+ const models = await this.ollama.list();
158
+ const exists = models.models.some((m) => m.name === model);
159
+ if (!exists) {
160
+ this.log("info", `Ollama: model "${model}" still not present in Ollama -- ` +
161
+ "automatically downloading model");
162
+ let artifact = "";
163
+ let percent = 0;
164
+ const interval = setInterval(() => {
165
+ this.log("info", `downloaded ${percent.toFixed(2)}% of artifact "${artifact}"`);
166
+ }, 1000);
167
+ const progress = await this.ollama.pull({ model, stream: true });
168
+ for await (const event of progress) {
169
+ if (event.digest)
170
+ artifact = event.digest;
171
+ if (event.completed && event.total)
172
+ percent = (event.completed / event.total) * 100;
173
+ }
174
+ clearInterval(interval);
175
+ }
176
+ else
177
+ this.log("info", `Ollama: model "${model}" already present in Ollama`);
146
178
  /* provide text-to-text translation */
147
179
  const translate = async (text) => {
148
180
  const key = `${this.params.src}-${this.params.dst}`;
149
181
  const cfg = this.setup[key];
150
182
  const response = await this.ollama.chat({
151
- model: "gemma3:4b-it-q4_K_M",
183
+ model,
152
184
  messages: [
153
185
  { role: "system", content: cfg.systemPrompt },
154
186
  ...cfg.chat,
@@ -210,4 +242,5 @@ class SpeechFlowNodeGemma extends speechflow_node_1.default {
210
242
  }
211
243
  }
212
244
  }
213
- exports.default = SpeechFlowNodeGemma;
245
+ exports.default = SpeechFlowNodeOllama;
246
+ //# sourceMappingURL=speechflow-node-t2t-ollama.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"speechflow-node-t2t-ollama.js","sourceRoot":"","sources":["../src/speechflow-node-t2t-ollama.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import SpeechFlowNode from "./speechflow-node";
2
- export default class SpeechFlowNodeGemma extends SpeechFlowNode {
2
+ export default class SpeechFlowNodeOpenAI extends SpeechFlowNode {
3
3
  static name: string;
4
- private ollama;
4
+ private openai;
5
5
  private setup;
6
6
  constructor(id: string, cfg: {
7
7
  [id: string]: any;
@@ -11,15 +11,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
11
11
  /* standard dependencies */
12
12
  const node_stream_1 = __importDefault(require("node:stream"));
13
13
  /* external dependencies */
14
- const ollama_1 = require("ollama");
14
+ const openai_1 = __importDefault(require("openai"));
15
15
  /* internal dependencies */
16
16
  const speechflow_node_1 = __importDefault(require("./speechflow-node"));
17
- /* SpeechFlow node for Gemma/Ollama text-to-text translation */
18
- class SpeechFlowNodeGemma extends speechflow_node_1.default {
17
+ /* SpeechFlow node for OpenAI/GPT text-to-text translation */
18
+ class SpeechFlowNodeOpenAI extends speechflow_node_1.default {
19
19
  /* declare official node name */
20
- static name = "gemma";
20
+ static name = "openai";
21
21
  /* internal state */
22
- ollama = null;
22
+ openai = null;
23
23
  /* internal LLM setup */
24
24
  setup = {
25
25
  /* English (EN) spellchecking only */
@@ -93,7 +93,8 @@ class SpeechFlowNodeGemma extends speechflow_node_1.default {
93
93
  "Do not show any prolog.\n" +
94
94
  "Do not show any epilog.\n" +
95
95
  "Get to the point.\n" +
96
- "Directly translate text from Enlish (EN) to German (DE) language.\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",
97
98
  chat: [
98
99
  { role: "user", content: "I love my wife." },
99
100
  { role: "system", content: "Ich liebe meine Frau." },
@@ -115,7 +116,8 @@ class SpeechFlowNodeGemma extends speechflow_node_1.default {
115
116
  "Do not show any prolog. \n" +
116
117
  "Do not show any epilog. \n" +
117
118
  "Get to the point.\n" +
118
- "Directly translate text from German (DE) to English (EN) language.\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",
119
121
  chat: [
120
122
  { role: "user", content: "Ich liebe meine Frau." },
121
123
  { role: "system", content: "I love my wife." },
@@ -131,41 +133,53 @@ class SpeechFlowNodeGemma extends speechflow_node_1.default {
131
133
  super(id, cfg, opts, args);
132
134
  /* declare node configuration parameters */
133
135
  this.configure({
134
- api: { type: "string", val: "http://127.0.0.1:11434", match: /^https?:\/\/.+?:\d+$/ },
135
136
  src: { type: "string", pos: 0, val: "de", match: /^(?:de|en)$/ },
136
- dst: { type: "string", pos: 1, val: "en", match: /^(?:de|en)$/ }
137
+ dst: { type: "string", pos: 1, val: "en", match: /^(?:de|en)$/ },
138
+ key: { type: "string", val: process.env.SPEECHFLOW_KEY_OPENAI },
139
+ api: { type: "string", val: "https://api.openai.com/v1", match: /^https?:\/\/.+?:\d+$/ },
140
+ model: { type: "string", val: "gpt-4o-mini" }
137
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}"`);
138
148
  /* declare node input/output format */
139
149
  this.input = "text";
140
150
  this.output = "text";
141
151
  }
142
152
  /* open node */
143
153
  async open() {
144
- /* instantiate Ollama API */
145
- this.ollama = new ollama_1.Ollama({ host: this.params.api });
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
+ });
146
160
  /* provide text-to-text translation */
147
161
  const translate = async (text) => {
148
162
  const key = `${this.params.src}-${this.params.dst}`;
149
163
  const cfg = this.setup[key];
150
- const response = await this.ollama.chat({
151
- model: "gemma3:4b-it-q4_K_M",
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,
152
170
  messages: [
153
171
  { role: "system", content: cfg.systemPrompt },
154
172
  ...cfg.chat,
155
173
  { role: "user", content: text }
156
- ],
157
- keep_alive: "10m",
158
- options: {
159
- repeat_penalty: 1.1,
160
- temperature: 0.7,
161
- seed: 1,
162
- top_k: 10,
163
- top_p: 0.5
164
- }
174
+ ]
165
175
  });
166
- return response.message.content;
176
+ const completion = await stream.finalChatCompletion();
177
+ const translation = completion.choices[0].message.content;
178
+ if (!stream.ended)
179
+ stream.abort();
180
+ return translation;
167
181
  };
168
- /* establish a duplex stream and connect it to Ollama */
182
+ /* establish a duplex stream and connect it to OpenAI */
169
183
  this.stream = new node_stream_1.default.Transform({
170
184
  readableObjectMode: true,
171
185
  writableObjectMode: true,
@@ -203,11 +217,10 @@ class SpeechFlowNodeGemma extends speechflow_node_1.default {
203
217
  this.stream.destroy();
204
218
  this.stream = null;
205
219
  }
206
- /* shutdown Ollama */
207
- if (this.ollama !== null) {
208
- this.ollama.abort();
209
- this.ollama = null;
210
- }
220
+ /* shutdown OpenAI */
221
+ if (this.openai !== null)
222
+ this.openai = null;
211
223
  }
212
224
  }
213
- exports.default = SpeechFlowNodeGemma;
225
+ exports.default = SpeechFlowNodeOpenAI;
226
+ //# sourceMappingURL=speechflow-node-t2t-openai.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"speechflow-node-t2t-openai.js","sourceRoot":"","sources":["../src/speechflow-node-t2t-openai.ts"],"names":[],"mappings":"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"}
@@ -94,3 +94,4 @@ class SpeechFlowNodeSubtitle extends speechflow_node_1.default {
94
94
  }
95
95
  }
96
96
  exports.default = SpeechFlowNodeSubtitle;
97
+ //# sourceMappingURL=speechflow-node-t2t-subtitle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"speechflow-node-t2t-subtitle.js","sourceRoot":"","sources":["../src/speechflow-node-t2t-subtitle.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
1
  import SpeechFlowNode from "./speechflow-node";
2
- export default class SpeechFlowNodeOPUS extends SpeechFlowNode {
2
+ export default class SpeechFlowNodeTransformers extends SpeechFlowNode {
3
3
  static name: string;
4
4
  private translator;
5
+ private generator;
6
+ private setup;
5
7
  constructor(id: string, cfg: {
6
8
  [id: string]: any;
7
9
  }, opts: {
@@ -0,0 +1,264 @@
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_path_1 = __importDefault(require("node:path"));
46
+ const node_stream_1 = __importDefault(require("node:stream"));
47
+ /* external dependencies */
48
+ const Transformers = __importStar(require("@huggingface/transformers"));
49
+ /* internal dependencies */
50
+ const speechflow_node_1 = __importDefault(require("./speechflow-node"));
51
+ /* SpeechFlow node for Transformers text-to-text translation */
52
+ class SpeechFlowNodeTransformers extends speechflow_node_1.default {
53
+ /* declare official node name */
54
+ static name = "transformers";
55
+ /* internal state */
56
+ translator = null;
57
+ generator = null;
58
+ /* internal LLM setup */
59
+ setup = {
60
+ /* SmolLM3: English (EN) to German (DE) translation */
61
+ "SmolLM3:en-de": {
62
+ systemPrompt: "/no_think\n" +
63
+ "You are a translator.\n" +
64
+ "Output only the requested text.\n" +
65
+ "Do not use markdown.\n" +
66
+ "Do not chat.\n" +
67
+ "Do not show any explanations.\n" +
68
+ "Do not show any introduction.\n" +
69
+ "Do not show any preamble.\n" +
70
+ "Do not show any prolog.\n" +
71
+ "Do not show any epilog.\n" +
72
+ "Get to the point.\n" +
73
+ "Preserve the original meaning, tone, and nuance.\n" +
74
+ "Directly translate text from English (EN) to fluent and natural German (DE) language.\n",
75
+ chat: [
76
+ { role: "user", content: "I love my wife." },
77
+ { role: "assistant", content: "Ich liebe meine Frau." },
78
+ { role: "user", content: "The weather is wonderful." },
79
+ { role: "assistant", content: "Das Wetter ist wunderschön." },
80
+ { role: "user", content: "The live is awesome." },
81
+ { role: "assistant", content: "Das Leben ist einfach großartig." }
82
+ ]
83
+ },
84
+ /* SmolLM3: German (DE) to English (EN) translation */
85
+ "SmolLM3:de-en": {
86
+ systemPrompt: "/no_think\n" +
87
+ "You are a translator.\n" +
88
+ "Output only the requested text.\n" +
89
+ "Do not use markdown.\n" +
90
+ "Do not chat.\n" +
91
+ "Do not show any explanations.\n" +
92
+ "Do not show any introduction.\n" +
93
+ "Do not show any preamble. \n" +
94
+ "Do not show any prolog. \n" +
95
+ "Do not show any epilog. \n" +
96
+ "Get to the point.\n" +
97
+ "Preserve the original meaning, tone, and nuance.\n" +
98
+ "Directly translate text from German (DE) to fluent and natural English (EN) language.\n",
99
+ chat: [
100
+ { role: "user", content: "Ich liebe meine Frau." },
101
+ { role: "assistant", content: "I love my wife." },
102
+ { role: "user", content: "Das Wetter ist wunderschön." },
103
+ { role: "assistant", content: "The weather is wonderful." },
104
+ { role: "user", content: "Das Leben ist einfach großartig." },
105
+ { role: "assistant", content: "The live is awesome." }
106
+ ]
107
+ }
108
+ };
109
+ /* construct node */
110
+ constructor(id, cfg, opts, args) {
111
+ super(id, cfg, opts, args);
112
+ /* declare node configuration parameters */
113
+ this.configure({
114
+ src: { type: "string", pos: 0, val: "de", match: /^(?:de|en)$/ },
115
+ dst: { type: "string", pos: 1, val: "en", match: /^(?:de|en)$/ },
116
+ model: { type: "string", val: "OPUS", match: /^(?:OPUS|SmolLM3)$/ }
117
+ });
118
+ /* sanity check parameters */
119
+ if (this.params.src === this.params.dst)
120
+ throw new Error("source and destination languages cannot be the same");
121
+ /* declare node input/output format */
122
+ this.input = "text";
123
+ this.output = "text";
124
+ }
125
+ /* open node */
126
+ async open() {
127
+ let model = "";
128
+ /* track download progress when instantiating Transformers engine and model */
129
+ const progressState = new Map();
130
+ const progressCallback = (progress) => {
131
+ let artifact = model;
132
+ if (typeof progress.file === "string")
133
+ artifact += `:${progress.file}`;
134
+ let percent = 0;
135
+ if (typeof progress.loaded === "number" && typeof progress.total === "number")
136
+ percent = progress.loaded / progress.total * 100;
137
+ else if (typeof progress.progress === "number")
138
+ percent = progress.progress;
139
+ if (percent > 0)
140
+ progressState.set(artifact, percent);
141
+ };
142
+ const interval = setInterval(() => {
143
+ for (const [artifact, percent] of progressState) {
144
+ this.log("info", `downloaded ${percent.toFixed(2)}% of artifact "${artifact}"`);
145
+ if (percent >= 1.0)
146
+ progressState.delete(artifact);
147
+ }
148
+ }, 1000);
149
+ /* instantiate Transformers engine and model */
150
+ if (this.params.model === "OPUS") {
151
+ model = `onnx-community/opus-mt-${this.params.src}-${this.params.dst}`;
152
+ const pipeline = Transformers.pipeline("translation", model, {
153
+ cache_dir: node_path_1.default.join(this.config.cacheDir, "transformers"),
154
+ dtype: "q4",
155
+ device: "auto",
156
+ progress_callback: progressCallback
157
+ });
158
+ this.translator = await pipeline;
159
+ clearInterval(interval);
160
+ if (this.translator === null)
161
+ throw new Error("failed to instantiate translator pipeline");
162
+ }
163
+ else if (this.params.model === "SmolLM3") {
164
+ model = "HuggingFaceTB/SmolLM3-3B-ONNX";
165
+ const pipeline = Transformers.pipeline("text-generation", model, {
166
+ cache_dir: node_path_1.default.join(this.config.cacheDir, "transformers"),
167
+ dtype: "q4",
168
+ device: "auto",
169
+ progress_callback: progressCallback
170
+ });
171
+ this.generator = await pipeline;
172
+ clearInterval(interval);
173
+ if (this.generator === null)
174
+ throw new Error("failed to instantiate generator pipeline");
175
+ }
176
+ else
177
+ throw new Error("invalid model");
178
+ /* provide text-to-text translation */
179
+ const translate = async (text) => {
180
+ if (this.params.model === "OPUS") {
181
+ const result = await this.translator(text);
182
+ return Array.isArray(result) ?
183
+ result[0].translation_text :
184
+ result.translation_text;
185
+ }
186
+ else if (this.params.model === "SmolLM3") {
187
+ const key = `SmolLM3:${this.params.src}-${this.params.dst}`;
188
+ const cfg = this.setup[key];
189
+ const messages = [
190
+ { role: "system", content: cfg.systemPrompt },
191
+ ...cfg.chat,
192
+ { role: "user", content: text }
193
+ ];
194
+ const result = await this.generator(messages, {
195
+ max_new_tokens: 100,
196
+ temperature: 0.6,
197
+ top_p: 0.95,
198
+ streamer: new Transformers.TextStreamer(this.generator.tokenizer, {
199
+ skip_prompt: true,
200
+ skip_special_tokens: true
201
+ })
202
+ });
203
+ const generatedText = Array.isArray(result) ?
204
+ result[0].generated_text :
205
+ result.generated_text;
206
+ const response = typeof generatedText === "string" ?
207
+ generatedText :
208
+ generatedText.at(-1).content;
209
+ return response;
210
+ }
211
+ else
212
+ throw new Error("invalid model");
213
+ };
214
+ /* establish a duplex stream and connect it to Transformers */
215
+ this.stream = new node_stream_1.default.Transform({
216
+ readableObjectMode: true,
217
+ writableObjectMode: true,
218
+ decodeStrings: false,
219
+ transform(chunk, encoding, callback) {
220
+ if (Buffer.isBuffer(chunk.payload))
221
+ callback(new Error("invalid chunk payload type"));
222
+ else {
223
+ if (chunk.payload === "") {
224
+ this.push(chunk);
225
+ callback();
226
+ }
227
+ else {
228
+ translate(chunk.payload).then((payload) => {
229
+ chunk = chunk.clone();
230
+ chunk.payload = payload;
231
+ this.push(chunk);
232
+ callback();
233
+ }).catch((err) => {
234
+ callback(err);
235
+ });
236
+ }
237
+ }
238
+ },
239
+ final(callback) {
240
+ this.push(null);
241
+ callback();
242
+ }
243
+ });
244
+ }
245
+ /* close node */
246
+ async close() {
247
+ /* close stream */
248
+ if (this.stream !== null) {
249
+ this.stream.destroy();
250
+ this.stream = null;
251
+ }
252
+ /* shutdown Transformers */
253
+ if (this.translator !== null) {
254
+ this.translator.dispose();
255
+ this.translator = null;
256
+ }
257
+ if (this.generator !== null) {
258
+ this.generator.dispose();
259
+ this.generator = null;
260
+ }
261
+ }
262
+ }
263
+ exports.default = SpeechFlowNodeTransformers;
264
+ //# sourceMappingURL=speechflow-node-t2t-transformers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"speechflow-node-t2t-transformers.js","sourceRoot":"","sources":["../src/speechflow-node-t2t-transformers.ts"],"names":[],"mappings":"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"}
@@ -48,7 +48,7 @@ class SpeechFlowNodeTrace extends speechflow_node_1.default {
48
48
  const fmt = (t) => t.toFormat("hh:mm:ss.SSS");
49
49
  if (Buffer.isBuffer(chunk.payload)) {
50
50
  if (type === "audio")
51
- log("info", `writing ${type} chunk: start=${fmt(chunk.timestampStart)} ` +
51
+ log("debug", `writing ${type} chunk: start=${fmt(chunk.timestampStart)} ` +
52
52
  `end=${fmt(chunk.timestampEnd)} kind=${chunk.kind} type=${chunk.type} ` +
53
53
  `payload-type=Buffer payload-bytes=${chunk.payload.byteLength}`);
54
54
  else
@@ -56,7 +56,7 @@ class SpeechFlowNodeTrace extends speechflow_node_1.default {
56
56
  }
57
57
  else {
58
58
  if (type === "text")
59
- log("info", `writing ${type} chunk: start=${fmt(chunk.timestampStart)} ` +
59
+ log("debug", `writing ${type} chunk: start=${fmt(chunk.timestampStart)} ` +
60
60
  `end=${fmt(chunk.timestampEnd)} kind=${chunk.kind} type=${chunk.type}` +
61
61
  `payload-type=String payload-length=${chunk.payload.length} ` +
62
62
  `payload-encoding=${encoding} payload-content="${chunk.payload.toString()}"`);
@@ -86,3 +86,4 @@ class SpeechFlowNodeTrace extends speechflow_node_1.default {
86
86
  }
87
87
  }
88
88
  exports.default = SpeechFlowNodeTrace;
89
+ //# sourceMappingURL=speechflow-node-x2x-trace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"speechflow-node-x2x-trace.js","sourceRoot":"","sources":["../src/speechflow-node-x2x-trace.ts"],"names":[],"mappings":"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"}
@@ -203,3 +203,4 @@ class SpeechFlowNodeDevice extends speechflow_node_1.default {
203
203
  }
204
204
  }
205
205
  exports.default = SpeechFlowNodeDevice;
206
+ //# sourceMappingURL=speechflow-node-xio-device.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"speechflow-node-xio-device.js","sourceRoot":"","sources":["../src/speechflow-node-xio-device.ts"],"names":[],"mappings":"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"}
@@ -174,3 +174,4 @@ class SpeechFlowNodeFile extends speechflow_node_1.default {
174
174
  }
175
175
  }
176
176
  exports.default = SpeechFlowNodeFile;
177
+ //# sourceMappingURL=speechflow-node-xio-file.js.map