speechflow 1.0.0 → 1.2.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 (75) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +46 -11
  3. package/dst/speechflow-node-a2a-gender.d.ts +17 -0
  4. package/dst/speechflow-node-a2a-gender.js +272 -0
  5. package/dst/speechflow-node-a2a-gender.js.map +1 -0
  6. package/dst/speechflow-node-a2a-meter.js +7 -3
  7. package/dst/speechflow-node-a2a-meter.js.map +1 -1
  8. package/dst/speechflow-node-a2a-mute.js +1 -0
  9. package/dst/speechflow-node-a2a-mute.js.map +1 -1
  10. package/dst/speechflow-node-a2a-vad.js +47 -63
  11. package/dst/speechflow-node-a2a-vad.js.map +1 -1
  12. package/dst/speechflow-node-a2a-wav.js +145 -122
  13. package/dst/speechflow-node-a2a-wav.js.map +1 -1
  14. package/dst/speechflow-node-a2t-deepgram.d.ts +3 -0
  15. package/dst/speechflow-node-a2t-deepgram.js +29 -4
  16. package/dst/speechflow-node-a2t-deepgram.js.map +1 -1
  17. package/dst/speechflow-node-t2a-elevenlabs.d.ts +3 -0
  18. package/dst/speechflow-node-t2a-elevenlabs.js +18 -6
  19. package/dst/speechflow-node-t2a-elevenlabs.js.map +1 -1
  20. package/dst/speechflow-node-t2a-kokoro.js.map +1 -1
  21. package/dst/speechflow-node-t2t-deepl.d.ts +3 -0
  22. package/dst/speechflow-node-t2t-deepl.js +8 -1
  23. package/dst/speechflow-node-t2t-deepl.js.map +1 -1
  24. package/dst/speechflow-node-t2t-format.js.map +1 -1
  25. package/dst/speechflow-node-t2t-ollama.js.map +1 -1
  26. package/dst/speechflow-node-t2t-openai.js +1 -1
  27. package/dst/speechflow-node-t2t-openai.js.map +1 -1
  28. package/dst/speechflow-node-t2t-subtitle.js.map +1 -1
  29. package/dst/speechflow-node-t2t-transformers.js.map +1 -1
  30. package/dst/speechflow-node-x2x-filter.d.ts +11 -0
  31. package/dst/speechflow-node-x2x-filter.js +113 -0
  32. package/dst/speechflow-node-x2x-filter.js.map +1 -0
  33. package/dst/speechflow-node-x2x-trace.js +25 -11
  34. package/dst/speechflow-node-x2x-trace.js.map +1 -1
  35. package/dst/speechflow-node-xio-device.js +17 -6
  36. package/dst/speechflow-node-xio-device.js.map +1 -1
  37. package/dst/speechflow-node-xio-file.js +61 -28
  38. package/dst/speechflow-node-xio-file.js.map +1 -1
  39. package/dst/speechflow-node-xio-mqtt.js +7 -5
  40. package/dst/speechflow-node-xio-mqtt.js.map +1 -1
  41. package/dst/speechflow-node-xio-websocket.js +5 -5
  42. package/dst/speechflow-node-xio-websocket.js.map +1 -1
  43. package/dst/speechflow-node.d.ts +5 -1
  44. package/dst/speechflow-node.js +9 -2
  45. package/dst/speechflow-node.js.map +1 -1
  46. package/dst/speechflow-utils.d.ts +14 -1
  47. package/dst/speechflow-utils.js +110 -2
  48. package/dst/speechflow-utils.js.map +1 -1
  49. package/dst/speechflow.js +73 -14
  50. package/dst/speechflow.js.map +1 -1
  51. package/etc/speechflow.yaml +53 -26
  52. package/package.json +12 -10
  53. package/src/speechflow-node-a2a-gender.ts +272 -0
  54. package/src/speechflow-node-a2a-meter.ts +8 -4
  55. package/src/speechflow-node-a2a-mute.ts +1 -0
  56. package/src/speechflow-node-a2a-vad.ts +58 -68
  57. package/src/speechflow-node-a2a-wav.ts +128 -91
  58. package/src/speechflow-node-a2t-deepgram.ts +32 -5
  59. package/src/speechflow-node-t2a-elevenlabs.ts +21 -8
  60. package/src/speechflow-node-t2a-kokoro.ts +3 -3
  61. package/src/speechflow-node-t2t-deepl.ts +11 -3
  62. package/src/speechflow-node-t2t-format.ts +2 -2
  63. package/src/speechflow-node-t2t-ollama.ts +2 -2
  64. package/src/speechflow-node-t2t-openai.ts +3 -3
  65. package/src/speechflow-node-t2t-subtitle.ts +1 -1
  66. package/src/speechflow-node-t2t-transformers.ts +2 -2
  67. package/src/speechflow-node-x2x-filter.ts +122 -0
  68. package/src/speechflow-node-x2x-trace.ts +29 -12
  69. package/src/speechflow-node-xio-device.ts +24 -9
  70. package/src/speechflow-node-xio-file.ts +76 -36
  71. package/src/speechflow-node-xio-mqtt.ts +11 -9
  72. package/src/speechflow-node-xio-websocket.ts +7 -7
  73. package/src/speechflow-node.ts +11 -2
  74. package/src/speechflow-utils.ts +81 -2
  75. package/src/speechflow.ts +96 -35
@@ -45,9 +45,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
45
45
  const node_stream_1 = __importDefault(require("node:stream"));
46
46
  /* external dependencies */
47
47
  const vad_node_realtime_1 = require("@ericedouard/vad-node-realtime");
48
- const luxon_1 = require("luxon");
49
48
  /* internal dependencies */
50
- const speechflow_node_1 = __importStar(require("./speechflow-node"));
49
+ const speechflow_node_1 = __importDefault(require("./speechflow-node"));
51
50
  const utils = __importStar(require("./speechflow-utils"));
52
51
  /* SpeechFlow node for VAD speech-to-speech processing */
53
52
  class SpeechFlowNodeVAD extends speechflow_node_1.default {
@@ -106,10 +105,21 @@ class SpeechFlowNodeVAD extends speechflow_node_1.default {
106
105
  log("info", "VAD: speech end (segment too short)");
107
106
  },
108
107
  onFrameProcessed: (audio) => {
109
- /* annotate the current audio frame */
108
+ /* annotate the current audio segment */
110
109
  const element = this.queueVAD.peek();
111
- if (element !== undefined && element.type === "audio-frame") {
112
- const isSpeech = audio.isSpeech > audio.notSpeech;
110
+ if (element === undefined || element.type !== "audio-frame")
111
+ throw new Error("internal error which cannot happen: no more queued element");
112
+ const segment = element.segmentData[element.segmentIdx++];
113
+ segment.isSpeech = (audio.isSpeech > audio.notSpeech);
114
+ /* annotate the entire audio chunk */
115
+ if (element.segmentIdx >= element.segmentData.length) {
116
+ let isSpeech = false;
117
+ for (const segment of element.segmentData) {
118
+ if (segment.isSpeech) {
119
+ isSpeech = true;
120
+ break;
121
+ }
122
+ }
113
123
  element.isSpeech = isSpeech;
114
124
  this.queueVAD.touch();
115
125
  this.queueVAD.walk(+1);
@@ -118,14 +128,7 @@ class SpeechFlowNodeVAD extends speechflow_node_1.default {
118
128
  });
119
129
  this.vad.start();
120
130
  /* provide Duplex stream and internally attach to VAD */
121
- const vad = this.vad;
122
- const cfg = this.config;
123
- const queue = this.queue;
124
- const queueRecv = this.queueRecv;
125
- const queueSend = this.queueSend;
126
- const mode = this.params.mode;
127
- let carrySamples = new Float32Array();
128
- let carryStart = luxon_1.Duration.fromDurationLike(0);
131
+ const self = this;
129
132
  this.stream = new node_stream_1.default.Duplex({
130
133
  writableObjectMode: true,
131
134
  readableObjectMode: true,
@@ -138,58 +141,38 @@ class SpeechFlowNodeVAD extends speechflow_node_1.default {
138
141
  callback();
139
142
  else {
140
143
  /* convert audio samples from PCM/I16 to PCM/F32 */
141
- let data = utils.convertBufToF32(chunk.payload, cfg.audioLittleEndian);
142
- let start = chunk.timestampStart;
143
- /* merge previous carry samples */
144
- if (carrySamples.length > 0) {
145
- start = carryStart;
146
- const merged = new Float32Array(carrySamples.length + data.length);
147
- merged.set(carrySamples);
148
- merged.set(data, carrySamples.length);
149
- data = merged;
150
- carrySamples = new Float32Array();
151
- }
152
- /* queue audio samples as individual VAD-sized frames
153
- and in parallel send it into the Voice Activity Detection (VAD) */
154
- const chunkSize = (vadSamplesPerFrame * (cfg.audioSampleRate / vadSampleRateTarget));
144
+ const data = utils.convertBufToF32(chunk.payload, self.config.audioLittleEndian);
145
+ /* segment audio samples as individual VAD-sized frames */
146
+ const segmentData = [];
147
+ const chunkSize = vadSamplesPerFrame * (self.config.audioSampleRate / vadSampleRateTarget);
155
148
  const chunks = Math.trunc(data.length / chunkSize);
156
149
  for (let i = 0; i < chunks; i++) {
157
150
  const frame = data.slice(i * chunkSize, (i + 1) * chunkSize);
158
- const buf = utils.convertF32ToBuf(frame);
159
- const duration = utils.audioBufferDuration(buf);
160
- const end = start.plus(duration);
161
- const chunk = new speechflow_node_1.SpeechFlowChunk(start, end, "final", "audio", buf);
162
- queueRecv.append({ type: "audio-frame", chunk });
163
- vad.processAudio(frame);
164
- start = end;
151
+ const segment = { data: frame };
152
+ segmentData.push(segment);
165
153
  }
166
- /* remember new carry samples */
167
- const bulkLen = chunks * chunkSize;
168
- carrySamples = data.slice(bulkLen);
169
- carryStart = start;
154
+ if ((chunks * chunkSize) < data.length) {
155
+ const frame = new Float32Array(chunkSize);
156
+ frame.fill(0);
157
+ frame.set(data.slice(chunks * chunkSize, data.length));
158
+ const segment = { data: frame };
159
+ segmentData.push(segment);
160
+ }
161
+ /* queue the results */
162
+ self.queueRecv.append({
163
+ type: "audio-frame", chunk,
164
+ segmentIdx: 0, segmentData
165
+ });
166
+ /* push segments through Voice Activity Detection (VAD) */
167
+ for (const segment of segmentData)
168
+ self.vad.processAudio(segment.data);
170
169
  callback();
171
170
  }
172
171
  },
173
172
  /* receive no more audio chunks (writable side of stream) */
174
173
  final(callback) {
175
- /* flush pending audio chunks */
176
- if (carrySamples.length > 0) {
177
- const chunkSize = (vadSamplesPerFrame * (cfg.audioSampleRate / vadSampleRateTarget));
178
- if (carrySamples.length < chunkSize) {
179
- const merged = new Float32Array(chunkSize);
180
- merged.set(carrySamples);
181
- merged.fill(0.0, carrySamples.length, chunkSize);
182
- carrySamples = merged;
183
- }
184
- const buf = utils.convertF32ToBuf(carrySamples);
185
- const duration = utils.audioBufferDuration(buf);
186
- const end = carryStart.plus(duration);
187
- const chunk = new speechflow_node_1.SpeechFlowChunk(carryStart, end, "final", "audio", buf);
188
- queueRecv.append({ type: "audio-frame", chunk });
189
- vad.processAudio(carrySamples);
190
- }
191
174
  /* signal end of file */
192
- queueRecv.append({ type: "audio-eof" });
175
+ self.queueRecv.append({ type: "audio-eof" });
193
176
  callback();
194
177
  },
195
178
  /* send audio chunk(s) (readable side of stream) */
@@ -200,7 +183,7 @@ class SpeechFlowNodeVAD extends speechflow_node_1.default {
200
183
  const flushPendingChunks = () => {
201
184
  let pushed = 0;
202
185
  while (true) {
203
- const element = queueSend.peek();
186
+ const element = self.queueSend.peek();
204
187
  if (element === undefined)
205
188
  break;
206
189
  else if (element.type === "audio-eof") {
@@ -210,19 +193,20 @@ class SpeechFlowNodeVAD extends speechflow_node_1.default {
210
193
  else if (element.type === "audio-frame"
211
194
  && element.isSpeech === undefined)
212
195
  break;
213
- queueSend.walk(+1);
196
+ self.queueSend.walk(+1);
197
+ self.queue.trim();
214
198
  if (element.isSpeech) {
215
199
  this.push(element.chunk);
216
200
  pushed++;
217
201
  }
218
- else if (mode === "silenced") {
202
+ else if (self.params.mode === "silenced") {
219
203
  const chunk = element.chunk.clone();
220
204
  const buffer = chunk.payload;
221
205
  buffer.fill(0);
222
206
  this.push(chunk);
223
207
  pushed++;
224
208
  }
225
- else if (mode === "unplugged" && pushed === 0)
209
+ else if (self.params.mode === "unplugged" && pushed === 0)
226
210
  /* we have to await chunks now, as in unplugged
227
211
  mode we else would be never called again until
228
212
  we at least once push a new chunk as the result */
@@ -231,15 +215,15 @@ class SpeechFlowNodeVAD extends speechflow_node_1.default {
231
215
  };
232
216
  /* await forthcoming audio chunks */
233
217
  const awaitForthcomingChunks = () => {
234
- const element = queueSend.peek();
218
+ const element = self.queueSend.peek();
235
219
  if (element !== undefined
236
220
  && element.type === "audio-frame"
237
221
  && element.isSpeech !== undefined)
238
222
  flushPendingChunks();
239
223
  else
240
- queue.once("write", awaitForthcomingChunks);
224
+ self.queue.once("write", awaitForthcomingChunks);
241
225
  };
242
- const element = queueSend.peek();
226
+ const element = self.queueSend.peek();
243
227
  if (element !== undefined && element.type === "audio-eof")
244
228
  this.push(null);
245
229
  else if (element !== undefined
@@ -247,7 +231,7 @@ class SpeechFlowNodeVAD extends speechflow_node_1.default {
247
231
  && element.isSpeech !== undefined)
248
232
  flushPendingChunks();
249
233
  else
250
- queue.once("write", awaitForthcomingChunks);
234
+ self.queue.once("write", awaitForthcomingChunks);
251
235
  };
252
236
  tryToRead();
253
237
  }
@@ -1 +1 @@
1
- {"version":3,"file":"speechflow-node-a2a-vad.js","sourceRoot":"","sources":["../src/speechflow-node-a2a-vad.ts"],"names":[],"mappings":";AAAA;;;;EAIE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEF,6BAA6B;AAC7B,8DAA4C;AAE5C,6BAA6B;AAC7B,sEAA+D;AAC/D,iCAAsC;AAEtC,6BAA6B;AAC7B,qEAAmE;AACnE,0DAAoE;AAWpE,2DAA2D;AAC3D,MAAqB,iBAAkB,SAAQ,yBAAc;IACzD,kCAAkC;IAC3B,MAAM,CAAC,IAAI,GAAG,KAAK,CAAA;IAE1B,sBAAsB;IACd,GAAG,GAAuB,IAAI,CAAA;IAC9B,KAAK,GAAO,IAAI,KAAK,CAAC,KAAK,EAAqB,CAAA;IAChD,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;IACzC,QAAQ,GAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;IACxC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;IAEjD,sBAAsB;IACtB,YAAa,EAAU,EAAE,GAA4B,EAAE,IAA6B,EAAE,IAAW;QAC7F,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QAE1B,6CAA6C;QAC7C,IAAI,CAAC,SAAS,CAAC;YACX,IAAI,EAAgB,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,0BAA0B,EAAE;YAC3F,kBAAkB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE;YACjD,kBAAkB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE;YACjD,eAAe,EAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAK;YACjD,gBAAgB,EAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAI;YACjD,kBAAkB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAK;SACpD,CAAC,CAAA;QAEF,wCAAwC;QACxC,IAAI,CAAC,KAAK,GAAI,OAAO,CAAA;QACrB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAA;IACzB,CAAC;IAED,iBAAiB;IACjB,KAAK,CAAC,IAAI;QACN,8BAA8B;QAC9B,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB;YAClE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;QAEvE,4BAA4B;QAC5B,MAAM,GAAG,GAAG,CAAC,KAAa,EAAE,GAAW,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA,CAAC,CAAC,CAAA;QAEpE,qCAAqC;QACrC,MAAM,mBAAmB,GAAG,KAAK,CAAA,CAAC,4BAA4B;QAC9D,MAAM,kBAAkB,GAAI,GAAG,CAAA,CAAG,yBAAyB;QAE3D,yDAAyD;QACzD,IAAI,CAAC,GAAG,GAAG,MAAM,+BAAW,CAAC,GAAG,CAAC;YAC7B,KAAK,EAAoB,IAAI;YAC7B,UAAU,EAAe,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,gCAAgC;YACtF,YAAY,EAAa,kBAAkB,EAAW,gCAAgC;YACtF,uBAAuB,EAAE,IAAI,CAAC,MAAM,CAAC,kBAAkB;YACvD,uBAAuB,EAAE,IAAI,CAAC,MAAM,CAAC,kBAAkB;YACvD,eAAe,EAAU,IAAI,CAAC,MAAM,CAAC,eAAe;YACpD,gBAAgB,EAAS,IAAI,CAAC,MAAM,CAAC,gBAAgB;YACrD,kBAAkB,EAAO,IAAI,CAAC,MAAM,CAAC,kBAAkB;YACvD,aAAa,EAAE,GAAG,EAAE;gBAChB,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAA;YACpC,CAAC;YACD,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE;gBACnB,MAAM,QAAQ,GAAG,KAAK,CAAC,kBAAkB,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAA;gBACrE,GAAG,CAAC,MAAM,EAAE,8BAA8B,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;YACtE,CAAC;YACD,YAAY,EAAE,GAAG,EAAE;gBACf,GAAG,CAAC,MAAM,EAAE,qCAAqC,CAAC,CAAA;YACtD,CAAC;YACD,gBAAgB,EAAE,CAAC,KAAK,EAAE,EAAE;gBACxB,wCAAwC;gBACxC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;gBACpC,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;oBAC1D,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAA;oBACjD,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAA;oBAC3B,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAA;oBACrB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;gBAC1B,CAAC;YACL,CAAC;SACJ,CAAC,CAAA;QACF,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAA;QAEhB,0DAA0D;QAC1D,MAAM,GAAG,GAAS,IAAI,CAAC,GAAG,CAAA;QAC1B,MAAM,GAAG,GAAS,IAAI,CAAC,MAAM,CAAA;QAC7B,MAAM,KAAK,GAAO,IAAI,CAAC,KAAK,CAAA;QAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;QAChC,MAAM,IAAI,GAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAA;QAClC,IAAI,YAAY,GAAG,IAAI,YAAY,EAAE,CAAA;QACrC,IAAI,UAAU,GAAK,gBAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAA;QAC/C,IAAI,CAAC,MAAM,GAAG,IAAI,qBAAM,CAAC,MAAM,CAAC;YAC5B,kBAAkB,EAAE,IAAI;YACxB,kBAAkB,EAAE,IAAI;YACxB,aAAa,EAAO,KAAK;YAEzB,qDAAqD;YACrD,KAAK,CAAE,KAAsB,EAAE,QAAQ,EAAE,QAAQ;gBAC7C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;oBAC/B,QAAQ,CAAC,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC,CAAA;qBAC3D,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,KAAK,CAAC;oBACnC,QAAQ,EAAE,CAAA;qBACT,CAAC;oBACF,qDAAqD;oBACrD,IAAI,IAAI,GAAG,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAA;oBACtE,IAAI,KAAK,GAAG,KAAK,CAAC,cAAc,CAAA;oBAEhC,oCAAoC;oBACpC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC1B,KAAK,GAAG,UAAU,CAAA;wBAClB,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAA;wBAClE,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;wBACxB,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,CAAA;wBACrC,IAAI,GAAG,MAAM,CAAA;wBACb,YAAY,GAAG,IAAI,YAAY,EAAE,CAAA;oBACrC,CAAC;oBAED;2FACuE;oBACvE,MAAM,SAAS,GAAG,CAAC,kBAAkB,GAAG,CAAC,GAAG,CAAC,eAAe,GAAG,mBAAmB,CAAC,CAAC,CAAA;oBACpF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;oBAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAA;wBAC5D,MAAM,GAAG,GAAG,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;wBACxC,MAAM,QAAQ,GAAG,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAA;wBAC/C,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;wBAChC,MAAM,KAAK,GAAG,IAAI,iCAAe,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAA;wBACpE,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAA;wBAChD,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;wBACvB,KAAK,GAAG,GAAG,CAAA;oBACf,CAAC;oBAED,kCAAkC;oBAClC,MAAM,OAAO,GAAG,MAAM,GAAG,SAAS,CAAA;oBAClC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;oBAClC,UAAU,GAAG,KAAK,CAAA;oBAElB,QAAQ,EAAE,CAAA;gBACd,CAAC;YACL,CAAC;YAED,8DAA8D;YAC9D,KAAK,CAAE,QAAQ;gBACX,kCAAkC;gBAClC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1B,MAAM,SAAS,GAAG,CAAC,kBAAkB,GAAG,CAAC,GAAG,CAAC,eAAe,GAAG,mBAAmB,CAAC,CAAC,CAAA;oBACpF,IAAI,YAAY,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;wBAClC,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,SAAS,CAAC,CAAA;wBAC1C,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;wBACxB,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;wBAChD,YAAY,GAAG,MAAM,CAAA;oBACzB,CAAC;oBACD,MAAM,GAAG,GAAG,KAAK,CAAC,eAAe,CAAC,YAAY,CAAC,CAAA;oBAC/C,MAAM,QAAQ,GAAG,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAA;oBAC/C,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;oBACrC,MAAM,KAAK,GAAG,IAAI,iCAAe,CAAC,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAA;oBACzE,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAA;oBAChD,GAAG,CAAC,YAAY,CAAC,YAAY,CAAC,CAAA;gBAClC,CAAC;gBAED,0BAA0B;gBAC1B,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAA;gBACvC,QAAQ,EAAE,CAAA;YACd,CAAC;YAED,qDAAqD;YACrD,IAAI,CAAE,KAAK;gBACP,kDAAkD;gBAClD,MAAM,SAAS,GAAG,GAAG,EAAE;oBACnB,kCAAkC;oBAClC,MAAM,kBAAkB,GAAG,GAAG,EAAE;wBAC5B,IAAI,MAAM,GAAG,CAAC,CAAA;wBACd,OAAO,IAAI,EAAE,CAAC;4BACV,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,CAAA;4BAChC,IAAI,OAAO,KAAK,SAAS;gCACrB,MAAK;iCACJ,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gCACpC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gCACf,MAAK;4BACT,CAAC;iCACI,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa;mCAChC,OAAO,CAAC,QAAQ,KAAK,SAAS;gCACjC,MAAK;4BACT,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;4BAClB,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gCACnB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;gCACxB,MAAM,EAAE,CAAA;4BACZ,CAAC;iCACI,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;gCAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;gCACnC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAiB,CAAA;gCACtC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;gCACd,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gCAChB,MAAM,EAAE,CAAA;4BACZ,CAAC;iCACI,IAAI,IAAI,KAAK,WAAW,IAAI,MAAM,KAAK,CAAC;gCACzC;;uFAEuD;gCACvD,SAAS,EAAE,CAAA;wBACnB,CAAC;oBACL,CAAC,CAAA;oBAED,sCAAsC;oBACtC,MAAM,sBAAsB,GAAG,GAAG,EAAE;wBAChC,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,CAAA;wBAChC,IAAI,OAAO,KAAK,SAAS;+BAClB,OAAO,CAAC,IAAI,KAAK,aAAa;+BAC9B,OAAO,CAAC,QAAQ,KAAK,SAAS;4BACjC,kBAAkB,EAAE,CAAA;;4BAEpB,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAA;oBACnD,CAAC,CAAA;oBAED,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,CAAA;oBAChC,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW;wBACrD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;yBACd,IAAI,OAAO,KAAK,SAAS;2BACvB,OAAO,CAAC,IAAI,KAAK,aAAa;2BAC9B,OAAO,CAAC,QAAQ,KAAK,SAAS;wBACjC,kBAAkB,EAAE,CAAA;;wBAEpB,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAA;gBACnD,CAAC,CAAA;gBACD,SAAS,EAAE,CAAA;YACf,CAAC;SACJ,CAAC,CAAA;IACN,CAAC;IAED,kBAAkB;IAClB,KAAK,CAAC,KAAK;QACP,oBAAoB;QACpB,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;YACrB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;QACtB,CAAC;QAED,iBAAiB;QACjB,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC;YACpB,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAA;YACtB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;YAClB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAA;QACnB,CAAC;IACL,CAAC;;AA7OL,oCA8OC"}
1
+ {"version":3,"file":"speechflow-node-a2a-vad.js","sourceRoot":"","sources":["../src/speechflow-node-a2a-vad.ts"],"names":[],"mappings":"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"}
@@ -4,91 +4,93 @@
4
4
  ** Copyright (c) 2024-2025 Dr. Ralf S. Engelschall <rse@engelschall.com>
5
5
  ** Licensed under GPL 3.0 <https://spdx.org/licenses/GPL-3.0-only>
6
6
  */
7
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
- if (k2 === undefined) k2 = k;
9
- var desc = Object.getOwnPropertyDescriptor(m, k);
10
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
- desc = { enumerable: true, get: function() { return m[k]; } };
12
- }
13
- Object.defineProperty(o, k2, desc);
14
- }) : (function(o, m, k, k2) {
15
- if (k2 === undefined) k2 = k;
16
- o[k2] = m[k];
17
- }));
18
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
19
- Object.defineProperty(o, "default", { enumerable: true, value: v });
20
- }) : function(o, v) {
21
- o["default"] = v;
22
- });
23
- var __importStar = (this && this.__importStar) || (function () {
24
- var ownKeys = function(o) {
25
- ownKeys = Object.getOwnPropertyNames || function (o) {
26
- var ar = [];
27
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
28
- return ar;
29
- };
30
- return ownKeys(o);
31
- };
32
- return function (mod) {
33
- if (mod && mod.__esModule) return mod;
34
- var result = {};
35
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
36
- __setModuleDefault(result, mod);
37
- return result;
38
- };
39
- })();
40
7
  var __importDefault = (this && this.__importDefault) || function (mod) {
41
8
  return (mod && mod.__esModule) ? mod : { "default": mod };
42
9
  };
43
10
  Object.defineProperty(exports, "__esModule", { value: true });
44
11
  /* standard dependencies */
45
12
  const node_stream_1 = __importDefault(require("node:stream"));
46
- /* external dependencies */
47
- const wav_1 = __importDefault(require("wav"));
48
13
  /* internal dependencies */
49
14
  const speechflow_node_1 = __importDefault(require("./speechflow-node"));
50
- const utils = __importStar(require("./speechflow-utils"));
51
- /* utility class for wrapping a custom stream into a regular Transform stream */
52
- class StreamWrapper extends node_stream_1.default.Transform {
53
- foreignStream;
54
- constructor(foreignStream, options = {}) {
55
- options.readableObjectMode = true;
56
- options.writableObjectMode = true;
57
- super(options);
58
- this.foreignStream = foreignStream;
59
- this.foreignStream.on("data", (chunk) => {
60
- this.push(chunk);
61
- });
62
- this.foreignStream.on("error", (err) => {
63
- this.emit("error", err);
64
- });
65
- this.foreignStream.on("end", () => {
66
- this.push(null);
67
- });
68
- }
69
- _transform(chunk, encoding, callback) {
70
- try {
71
- const canContinue = this.foreignStream.write(chunk);
72
- if (canContinue)
73
- callback();
74
- else
75
- this.foreignStream.once("drain", callback);
76
- }
77
- catch (err) {
78
- callback(err);
79
- }
80
- }
81
- _flush(callback) {
82
- try {
83
- if (typeof this.foreignStream.end === "function")
84
- this.foreignStream.end();
85
- callback();
86
- }
87
- catch (err) {
88
- callback(err);
89
- }
90
- }
91
- }
15
+ /* write WAV header */
16
+ const writeWavHeader = (length, options) => {
17
+ const audioFormat = options?.audioFormat ?? 0x001; /* PCM */
18
+ const channels = options?.channels ?? 1; /* mono */
19
+ const sampleRate = options?.sampleRate ?? 44100; /* 44KHz */
20
+ const bitDepth = options?.bitDepth ?? 16; /* 16-Bit */
21
+ const headerLength = 44;
22
+ const dataLength = length || (4294967295 - 100);
23
+ const fileSize = dataLength + headerLength;
24
+ const header = Buffer.alloc(headerLength);
25
+ const RIFF = Buffer.alloc(4, "RIFF");
26
+ const WAVE = Buffer.alloc(4, "WAVE");
27
+ const fmt = Buffer.alloc(4, "fmt ");
28
+ const data = Buffer.alloc(4, "data");
29
+ const byteRate = (sampleRate * channels * bitDepth) / 8;
30
+ const blockAlign = (channels * bitDepth) / 8;
31
+ let offset = 0;
32
+ RIFF.copy(header, offset);
33
+ offset += RIFF.length;
34
+ header.writeUInt32LE(fileSize - 8, offset);
35
+ offset += 4;
36
+ WAVE.copy(header, offset);
37
+ offset += WAVE.length;
38
+ fmt.copy(header, offset);
39
+ offset += fmt.length;
40
+ header.writeUInt32LE(16, offset);
41
+ offset += 4;
42
+ header.writeUInt16LE(audioFormat, offset);
43
+ offset += 2;
44
+ header.writeUInt16LE(channels, offset);
45
+ offset += 2;
46
+ header.writeUInt32LE(sampleRate, offset);
47
+ offset += 4;
48
+ header.writeUInt32LE(byteRate, offset);
49
+ offset += 4;
50
+ header.writeUInt16LE(blockAlign, offset);
51
+ offset += 2;
52
+ header.writeUInt16LE(bitDepth, offset);
53
+ offset += 2;
54
+ data.copy(header, offset);
55
+ offset += data.length;
56
+ header.writeUInt32LE(dataLength, offset);
57
+ offset += 4;
58
+ return header;
59
+ };
60
+ /* read WAV header */
61
+ const readWavHeader = (buffer) => {
62
+ let offset = 0;
63
+ const riffHead = buffer.subarray(offset, offset + 4).toString();
64
+ offset += 4;
65
+ const fileSize = buffer.readUInt32LE(offset);
66
+ offset += 4;
67
+ const waveHead = buffer.subarray(offset, offset + 4).toString();
68
+ offset += 4;
69
+ const fmtHead = buffer.subarray(offset, offset + 4).toString();
70
+ offset += 4;
71
+ const formatLength = buffer.readUInt32LE(offset);
72
+ offset += 4;
73
+ const audioFormat = buffer.readUInt16LE(offset);
74
+ offset += 2;
75
+ const channels = buffer.readUInt16LE(offset);
76
+ offset += 2;
77
+ const sampleRate = buffer.readUInt32LE(offset);
78
+ offset += 4;
79
+ const byteRate = buffer.readUInt32LE(offset);
80
+ offset += 4;
81
+ const blockAlign = buffer.readUInt16LE(offset);
82
+ offset += 2;
83
+ const bitDepth = buffer.readUInt16LE(offset);
84
+ offset += 2;
85
+ const data = buffer.subarray(offset, offset + 4).toString();
86
+ offset += 4;
87
+ const dataLength = buffer.readUInt32LE(offset);
88
+ offset += 4;
89
+ return {
90
+ riffHead, fileSize, waveHead, fmtHead, formatLength, audioFormat,
91
+ channels, sampleRate, byteRate, blockAlign, bitDepth, data, dataLength
92
+ };
93
+ };
92
94
  /* SpeechFlow node for WAV format conversion */
93
95
  class SpeechFlowNodeWAV extends speechflow_node_1.default {
94
96
  /* declare official node name */
@@ -106,51 +108,72 @@ class SpeechFlowNodeWAV extends speechflow_node_1.default {
106
108
  }
107
109
  /* open node */
108
110
  async open() {
109
- if (this.params.mode === "encode") {
110
- /* convert raw/PCM to WAV/PCM */
111
- /* NOTICE: as this is a continuous stream, the resulting WAV header is not 100%
112
- conforming to the WAV standard, as it has to use a zero duration information.
113
- This cannot be changed in a stream-based processing. */
114
- const writer = new wav_1.default.Writer({
115
- format: 0x0001 /* PCM */,
116
- channels: this.config.audioChannels,
117
- sampleRate: this.config.audioSampleRate,
118
- bitDepth: this.config.audioBitDepth
119
- });
120
- this.stream = new StreamWrapper(writer);
121
- }
122
- else if (this.params.mode === "decode") {
123
- /* convert WAV/PCM to raw/PCM */
124
- const reader = new wav_1.default.Reader();
125
- reader.on("format", (format) => {
126
- this.log("info", `WAV audio stream: format=${format.audioFormat === 0x0001 ? "PCM" :
127
- "0x" + format.audioFormat.toString(16).padStart(4, "0")} ` +
128
- `bitDepth=${format.bitDepth} ` +
129
- `signed=${format.signed ? "yes" : "no"} ` +
130
- `endian=${format.endianness} ` +
131
- `sampleRate=${format.sampleRate} ` +
132
- `channels=${format.channels}`);
133
- if (format.audioFormat !== 0x0001 /* PCM */)
134
- throw new Error("WAV not based on PCM format");
135
- if (format.bitDepth !== 16)
136
- throw new Error("WAV not based on 16 bit samples");
137
- if (!format.signed)
138
- throw new Error("WAV not based on signed integers");
139
- if (format.endianness !== "LE")
140
- throw new Error("WAV not based on little endianness");
141
- if (format.sampleRate !== 48000)
142
- throw new Error("WAV not based on 48Khz sample rate");
143
- if (format.channels !== 1)
144
- throw new Error("WAV not based on mono channel");
145
- });
146
- this.stream = new StreamWrapper(reader);
147
- }
148
- else
149
- throw new Error(`invalid operation mode "${this.params.mode}"`);
150
- /* convert regular stream into object-mode stream */
151
- const wrapper1 = utils.createTransformStreamForWritableSide();
152
- const wrapper2 = utils.createTransformStreamForReadableSide("audio", () => this.timeZero);
153
- this.stream = node_stream_1.default.compose(wrapper1, this.stream, wrapper2);
111
+ /* establish a transform stream */
112
+ const self = this;
113
+ let firstChunk = true;
114
+ this.stream = new node_stream_1.default.Transform({
115
+ readableObjectMode: true,
116
+ writableObjectMode: true,
117
+ decodeStrings: false,
118
+ transform(chunk, encoding, callback) {
119
+ if (!Buffer.isBuffer(chunk.payload))
120
+ callback(new Error("invalid chunk payload type"));
121
+ else if (firstChunk) {
122
+ if (self.params.mode === "encode") {
123
+ /* convert raw/PCM to WAV/PCM
124
+ (NOTICE: as this is a continuous stream, the
125
+ resulting WAV header is not 100% conforming
126
+ to the WAV standard, as it has to use a zero
127
+ duration information. This cannot be changed in
128
+ a stream-based processing.) */
129
+ const headerBuffer = writeWavHeader(0, {
130
+ audioFormat: 0x0001 /* PCM */,
131
+ channels: self.config.audioChannels,
132
+ sampleRate: self.config.audioSampleRate,
133
+ bitDepth: self.config.audioBitDepth
134
+ });
135
+ const headerChunk = chunk.clone();
136
+ headerChunk.payload = headerBuffer;
137
+ this.push(headerChunk);
138
+ this.push(chunk);
139
+ callback();
140
+ }
141
+ else if (self.params.mode === "decode") {
142
+ /* convert WAV/PCM to raw/PCM */
143
+ const header = readWavHeader(chunk.payload);
144
+ self.log("info", "WAV audio stream: " +
145
+ `audioFormat=${header.audioFormat === 0x0001 ? "PCM" :
146
+ "0x" + header.audioFormat.toString(16).padStart(4, "0")} ` +
147
+ `channels=${header.channels} ` +
148
+ `sampleRate=${header.sampleRate} ` +
149
+ `bitDepth=${header.bitDepth}`);
150
+ if (header.audioFormat !== 0x0001 /* PCM */)
151
+ throw new Error("WAV not based on PCM format");
152
+ if (header.bitDepth !== 16)
153
+ throw new Error("WAV not based on 16 bit samples");
154
+ if (header.sampleRate !== 48000)
155
+ throw new Error("WAV not based on 48Khz sample rate");
156
+ if (header.channels !== 1)
157
+ throw new Error("WAV not based on mono channel");
158
+ chunk.payload = chunk.payload.subarray(44);
159
+ this.push(chunk);
160
+ callback();
161
+ }
162
+ else
163
+ throw new Error(`invalid operation mode "${self.params.mode}"`);
164
+ }
165
+ else {
166
+ /* pass-through original chunk */
167
+ this.push(chunk);
168
+ callback();
169
+ }
170
+ firstChunk = false;
171
+ },
172
+ final(callback) {
173
+ this.push(null);
174
+ callback();
175
+ }
176
+ });
154
177
  }
155
178
  /* close node */
156
179
  async close() {
@@ -1 +1 @@
1
- {"version":3,"file":"speechflow-node-a2a-wav.js","sourceRoot":"","sources":["../src/speechflow-node-a2a-wav.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"speechflow-node-a2a-wav.js","sourceRoot":"","sources":["../src/speechflow-node-a2a-wav.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,9 @@ export default class SpeechFlowNodeDeepgram extends SpeechFlowNode {
7
7
  }, opts: {
8
8
  [id: string]: any;
9
9
  }, args: any[]);
10
+ status(): Promise<{
11
+ balance: string;
12
+ }>;
10
13
  open(): Promise<void>;
11
14
  close(): Promise<void>;
12
15
  }