speechflow 1.6.5 → 1.6.7

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 (160) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +23 -0
  3. package/etc/stx.conf +5 -0
  4. package/package.json +4 -4
  5. package/speechflow-cli/dst/speechflow-main-cli.js +2 -2
  6. package/speechflow-cli/dst/speechflow-main-cli.js.map +1 -1
  7. package/speechflow-cli/dst/speechflow-main-graph.js +4 -3
  8. package/speechflow-cli/dst/speechflow-main-graph.js.map +1 -1
  9. package/speechflow-cli/dst/speechflow-node-a2a-compressor.d.ts +1 -1
  10. package/speechflow-cli/dst/speechflow-node-a2a-compressor.js +12 -11
  11. package/speechflow-cli/dst/speechflow-node-a2a-compressor.js.map +1 -1
  12. package/speechflow-cli/dst/speechflow-node-a2a-expander.d.ts +1 -1
  13. package/speechflow-cli/dst/speechflow-node-a2a-expander.js +12 -11
  14. package/speechflow-cli/dst/speechflow-node-a2a-expander.js.map +1 -1
  15. package/speechflow-cli/dst/speechflow-node-a2a-ffmpeg.js +2 -8
  16. package/speechflow-cli/dst/speechflow-node-a2a-ffmpeg.js.map +1 -1
  17. package/speechflow-cli/dst/speechflow-node-a2a-filler.d.ts +1 -1
  18. package/speechflow-cli/dst/speechflow-node-a2a-filler.js +18 -16
  19. package/speechflow-cli/dst/speechflow-node-a2a-filler.js.map +1 -1
  20. package/speechflow-cli/dst/speechflow-node-a2a-gain.d.ts +1 -1
  21. package/speechflow-cli/dst/speechflow-node-a2a-gain.js +8 -8
  22. package/speechflow-cli/dst/speechflow-node-a2a-gain.js.map +1 -1
  23. package/speechflow-cli/dst/speechflow-node-a2a-gender.d.ts +1 -1
  24. package/speechflow-cli/dst/speechflow-node-a2a-gender.js +38 -34
  25. package/speechflow-cli/dst/speechflow-node-a2a-gender.js.map +1 -1
  26. package/speechflow-cli/dst/speechflow-node-a2a-meter.d.ts +1 -1
  27. package/speechflow-cli/dst/speechflow-node-a2a-meter.js +11 -11
  28. package/speechflow-cli/dst/speechflow-node-a2a-meter.js.map +1 -1
  29. package/speechflow-cli/dst/speechflow-node-a2a-mute.d.ts +1 -1
  30. package/speechflow-cli/dst/speechflow-node-a2a-mute.js +44 -10
  31. package/speechflow-cli/dst/speechflow-node-a2a-mute.js.map +1 -1
  32. package/speechflow-cli/dst/speechflow-node-a2a-pitch.d.ts +13 -0
  33. package/speechflow-cli/dst/speechflow-node-a2a-pitch.js +213 -0
  34. package/speechflow-cli/dst/speechflow-node-a2a-pitch.js.map +1 -0
  35. package/speechflow-cli/dst/speechflow-node-a2a-rnnoise.d.ts +1 -1
  36. package/speechflow-cli/dst/speechflow-node-a2a-rnnoise.js +12 -11
  37. package/speechflow-cli/dst/speechflow-node-a2a-rnnoise.js.map +1 -1
  38. package/speechflow-cli/dst/speechflow-node-a2a-speex.d.ts +1 -1
  39. package/speechflow-cli/dst/speechflow-node-a2a-speex.js +13 -12
  40. package/speechflow-cli/dst/speechflow-node-a2a-speex.js.map +1 -1
  41. package/speechflow-cli/dst/speechflow-node-a2a-vad.d.ts +1 -1
  42. package/speechflow-cli/dst/speechflow-node-a2a-vad.js +24 -23
  43. package/speechflow-cli/dst/speechflow-node-a2a-vad.js.map +1 -1
  44. package/speechflow-cli/dst/speechflow-node-a2a-wav.js +35 -7
  45. package/speechflow-cli/dst/speechflow-node-a2a-wav.js.map +1 -1
  46. package/speechflow-cli/dst/speechflow-node-a2t-amazon.d.ts +1 -1
  47. package/speechflow-cli/dst/speechflow-node-a2t-amazon.js +16 -16
  48. package/speechflow-cli/dst/speechflow-node-a2t-amazon.js.map +1 -1
  49. package/speechflow-cli/dst/speechflow-node-a2t-deepgram.d.ts +1 -1
  50. package/speechflow-cli/dst/speechflow-node-a2t-deepgram.js +16 -16
  51. package/speechflow-cli/dst/speechflow-node-a2t-deepgram.js.map +1 -1
  52. package/speechflow-cli/dst/speechflow-node-a2t-openai.d.ts +1 -1
  53. package/speechflow-cli/dst/speechflow-node-a2t-openai.js +15 -15
  54. package/speechflow-cli/dst/speechflow-node-a2t-openai.js.map +1 -1
  55. package/speechflow-cli/dst/speechflow-node-t2a-amazon.d.ts +1 -1
  56. package/speechflow-cli/dst/speechflow-node-t2a-amazon.js +9 -9
  57. package/speechflow-cli/dst/speechflow-node-t2a-amazon.js.map +1 -1
  58. package/speechflow-cli/dst/speechflow-node-t2a-elevenlabs.d.ts +1 -1
  59. package/speechflow-cli/dst/speechflow-node-t2a-elevenlabs.js +13 -12
  60. package/speechflow-cli/dst/speechflow-node-t2a-elevenlabs.js.map +1 -1
  61. package/speechflow-cli/dst/speechflow-node-t2a-kokoro.js +4 -4
  62. package/speechflow-cli/dst/speechflow-node-t2a-kokoro.js.map +1 -1
  63. package/speechflow-cli/dst/speechflow-node-t2t-amazon.js +3 -3
  64. package/speechflow-cli/dst/speechflow-node-t2t-amazon.js.map +1 -1
  65. package/speechflow-cli/dst/speechflow-node-t2t-deepl.js +2 -2
  66. package/speechflow-cli/dst/speechflow-node-t2t-deepl.js.map +1 -1
  67. package/speechflow-cli/dst/speechflow-node-t2t-format.js +36 -2
  68. package/speechflow-cli/dst/speechflow-node-t2t-format.js.map +1 -1
  69. package/speechflow-cli/dst/speechflow-node-t2t-google.js +2 -2
  70. package/speechflow-cli/dst/speechflow-node-t2t-google.js.map +1 -1
  71. package/speechflow-cli/dst/speechflow-node-t2t-modify.js +5 -5
  72. package/speechflow-cli/dst/speechflow-node-t2t-modify.js.map +1 -1
  73. package/speechflow-cli/dst/speechflow-node-t2t-ollama.js +2 -2
  74. package/speechflow-cli/dst/speechflow-node-t2t-ollama.js.map +1 -1
  75. package/speechflow-cli/dst/speechflow-node-t2t-openai.js +2 -2
  76. package/speechflow-cli/dst/speechflow-node-t2t-openai.js.map +1 -1
  77. package/speechflow-cli/dst/speechflow-node-t2t-sentence.d.ts +1 -1
  78. package/speechflow-cli/dst/speechflow-node-t2t-sentence.js +13 -13
  79. package/speechflow-cli/dst/speechflow-node-t2t-sentence.js.map +1 -1
  80. package/speechflow-cli/dst/speechflow-node-t2t-subtitle.js +2 -2
  81. package/speechflow-cli/dst/speechflow-node-t2t-subtitle.js.map +1 -1
  82. package/speechflow-cli/dst/speechflow-node-t2t-transformers.js +2 -2
  83. package/speechflow-cli/dst/speechflow-node-t2t-transformers.js.map +1 -1
  84. package/speechflow-cli/dst/speechflow-node-x2x-filter.js +2 -2
  85. package/speechflow-cli/dst/speechflow-node-x2x-filter.js.map +1 -1
  86. package/speechflow-cli/dst/speechflow-node-x2x-trace.d.ts +1 -1
  87. package/speechflow-cli/dst/speechflow-node-x2x-trace.js +42 -8
  88. package/speechflow-cli/dst/speechflow-node-x2x-trace.js.map +1 -1
  89. package/speechflow-cli/dst/speechflow-node-xio-device.js +3 -2
  90. package/speechflow-cli/dst/speechflow-node-xio-device.js.map +1 -1
  91. package/speechflow-cli/dst/speechflow-node-xio-file.js +19 -18
  92. package/speechflow-cli/dst/speechflow-node-xio-file.js.map +1 -1
  93. package/speechflow-cli/dst/speechflow-node-xio-mqtt.js +13 -13
  94. package/speechflow-cli/dst/speechflow-node-xio-mqtt.js.map +1 -1
  95. package/speechflow-cli/dst/speechflow-node-xio-websocket.js +8 -8
  96. package/speechflow-cli/dst/speechflow-node-xio-websocket.js.map +1 -1
  97. package/speechflow-cli/dst/speechflow-node.js +7 -7
  98. package/speechflow-cli/dst/speechflow-node.js.map +1 -1
  99. package/speechflow-cli/dst/speechflow-util-audio.js +2 -2
  100. package/speechflow-cli/dst/speechflow-util-audio.js.map +1 -1
  101. package/speechflow-cli/dst/speechflow-util-stream.d.ts +1 -0
  102. package/speechflow-cli/dst/speechflow-util-stream.js +22 -2
  103. package/speechflow-cli/dst/speechflow-util-stream.js.map +1 -1
  104. package/speechflow-cli/etc/oxlint.jsonc +2 -1
  105. package/speechflow-cli/etc/tsconfig.json +1 -0
  106. package/speechflow-cli/package.json +21 -21
  107. package/speechflow-cli/src/speechflow-main-cli.ts +2 -2
  108. package/speechflow-cli/src/speechflow-main-graph.ts +4 -3
  109. package/speechflow-cli/src/speechflow-node-a2a-compressor.ts +13 -12
  110. package/speechflow-cli/src/speechflow-node-a2a-expander.ts +13 -12
  111. package/speechflow-cli/src/speechflow-node-a2a-ffmpeg.ts +2 -8
  112. package/speechflow-cli/src/speechflow-node-a2a-filler.ts +19 -17
  113. package/speechflow-cli/src/speechflow-node-a2a-gain.ts +8 -8
  114. package/speechflow-cli/src/speechflow-node-a2a-gender.ts +42 -36
  115. package/speechflow-cli/src/speechflow-node-a2a-meter.ts +11 -11
  116. package/speechflow-cli/src/speechflow-node-a2a-mute.ts +11 -10
  117. package/speechflow-cli/src/speechflow-node-a2a-pitch.ts +221 -0
  118. package/speechflow-cli/src/speechflow-node-a2a-rnnoise.ts +13 -12
  119. package/speechflow-cli/src/speechflow-node-a2a-speex.ts +14 -13
  120. package/speechflow-cli/src/speechflow-node-a2a-vad.ts +24 -23
  121. package/speechflow-cli/src/speechflow-node-a2a-wav.ts +2 -7
  122. package/speechflow-cli/src/speechflow-node-a2t-amazon.ts +16 -16
  123. package/speechflow-cli/src/speechflow-node-a2t-deepgram.ts +16 -16
  124. package/speechflow-cli/src/speechflow-node-a2t-openai.ts +15 -15
  125. package/speechflow-cli/src/speechflow-node-t2a-amazon.ts +9 -9
  126. package/speechflow-cli/src/speechflow-node-t2a-elevenlabs.ts +13 -12
  127. package/speechflow-cli/src/speechflow-node-t2a-kokoro.ts +4 -4
  128. package/speechflow-cli/src/speechflow-node-t2t-amazon.ts +3 -3
  129. package/speechflow-cli/src/speechflow-node-t2t-deepl.ts +2 -2
  130. package/speechflow-cli/src/speechflow-node-t2t-format.ts +3 -2
  131. package/speechflow-cli/src/speechflow-node-t2t-google.ts +2 -2
  132. package/speechflow-cli/src/speechflow-node-t2t-modify.ts +6 -6
  133. package/speechflow-cli/src/speechflow-node-t2t-ollama.ts +2 -2
  134. package/speechflow-cli/src/speechflow-node-t2t-openai.ts +2 -2
  135. package/speechflow-cli/src/speechflow-node-t2t-sentence.ts +13 -13
  136. package/speechflow-cli/src/speechflow-node-t2t-subtitle.ts +2 -2
  137. package/speechflow-cli/src/speechflow-node-t2t-transformers.ts +2 -2
  138. package/speechflow-cli/src/speechflow-node-x2x-filter.ts +2 -2
  139. package/speechflow-cli/src/speechflow-node-x2x-trace.ts +10 -9
  140. package/speechflow-cli/src/speechflow-node-xio-device.ts +4 -3
  141. package/speechflow-cli/src/speechflow-node-xio-file.ts +20 -19
  142. package/speechflow-cli/src/speechflow-node-xio-mqtt.ts +14 -14
  143. package/speechflow-cli/src/speechflow-node-xio-websocket.ts +10 -10
  144. package/speechflow-cli/src/speechflow-node.ts +7 -7
  145. package/speechflow-cli/src/speechflow-util-audio.ts +2 -2
  146. package/speechflow-cli/src/speechflow-util-stream.ts +30 -5
  147. package/speechflow-ui-db/dst/app-font-fa-brands-400.woff2 +0 -0
  148. package/speechflow-ui-db/dst/app-font-fa-regular-400.woff2 +0 -0
  149. package/speechflow-ui-db/dst/app-font-fa-solid-900.woff2 +0 -0
  150. package/speechflow-ui-db/dst/app-font-fa-v4compatibility.woff2 +0 -0
  151. package/speechflow-ui-db/dst/index.css +1 -1
  152. package/speechflow-ui-db/dst/index.js +28 -25
  153. package/speechflow-ui-db/package.json +14 -14
  154. package/speechflow-ui-st/dst/app-font-fa-brands-400.woff2 +0 -0
  155. package/speechflow-ui-st/dst/app-font-fa-regular-400.woff2 +0 -0
  156. package/speechflow-ui-st/dst/app-font-fa-solid-900.woff2 +0 -0
  157. package/speechflow-ui-st/dst/app-font-fa-v4compatibility.woff2 +0 -0
  158. package/speechflow-ui-st/dst/index.css +1 -1
  159. package/speechflow-ui-st/dst/index.js +137 -51
  160. package/speechflow-ui-st/package.json +15 -15
@@ -76,14 +76,14 @@ class AudioFiller extends node_events_1.EventEmitter {
76
76
  return luxon_1.Duration.fromObject({ seconds });
77
77
  }
78
78
  /* emit a chunk of silence */
79
- emitSilence(fromSamples, toSamples) {
79
+ emitSilence(fromSamples, toSamples, meta) {
80
80
  const frames = Math.max(0, Math.floor(toSamples - fromSamples));
81
81
  if (frames <= 0)
82
82
  return;
83
83
  const payload = Buffer.alloc(frames * this.bytesPerFrame); /* already zeroed */
84
84
  const timestampStart = this.durationFromSamples(fromSamples);
85
85
  const timestampEnd = this.durationFromSamples(toSamples);
86
- const chunk = new speechflow_node_1.SpeechFlowChunk(timestampStart, timestampEnd, "final", "audio", payload);
86
+ const chunk = new speechflow_node_1.SpeechFlowChunk(timestampStart, timestampEnd, "final", "audio", payload, meta ? new Map(meta) : undefined);
87
87
  this.emit("chunk", chunk);
88
88
  }
89
89
  /* add a chunk of audio for processing */
@@ -94,7 +94,7 @@ class AudioFiller extends node_events_1.EventEmitter {
94
94
  throw new Error("invalid timestamps");
95
95
  /* if chunk starts beyond what we've emitted, insert silence for the gap */
96
96
  if (startSamp > this.emittedEndSamples + this.sampleTolerance) {
97
- this.emitSilence(this.emittedEndSamples, startSamp);
97
+ this.emitSilence(this.emittedEndSamples, startSamp, chunk.meta);
98
98
  this.emittedEndSamples = startSamp;
99
99
  }
100
100
  /* if chunk ends before or at emitted end, we have it fully covered, so drop it */
@@ -118,7 +118,7 @@ class AudioFiller extends node_events_1.EventEmitter {
118
118
  const outEndSamples = outStartSamples + Math.floor(payload.length / this.bytesPerFrame);
119
119
  const timestampStart = this.durationFromSamples(outStartSamples);
120
120
  const timestampEnd = this.durationFromSamples(outEndSamples);
121
- const c = new speechflow_node_1.SpeechFlowChunk(timestampStart, timestampEnd, "final", "audio", payload);
121
+ const c = new speechflow_node_1.SpeechFlowChunk(timestampStart, timestampEnd, "final", "audio", payload, new Map(chunk.meta));
122
122
  this.emit("chunk", c);
123
123
  /* advance emitted cursor */
124
124
  this.emittedEndSamples = Math.max(this.emittedEndSamples, outEndSamples);
@@ -129,7 +129,7 @@ class SpeechFlowNodeA2AFiller extends speechflow_node_1.default {
129
129
  /* declare official node name */
130
130
  static name = "a2a-filler";
131
131
  /* internal state */
132
- destroyed = false;
132
+ closing = false;
133
133
  filler = null;
134
134
  sendQueue = null;
135
135
  /* construct node */
@@ -146,7 +146,7 @@ class SpeechFlowNodeA2AFiller extends speechflow_node_1.default {
146
146
  /* open node */
147
147
  async open() {
148
148
  /* clear destruction flag */
149
- this.destroyed = false;
149
+ this.closing = false;
150
150
  /* establish queues */
151
151
  this.filler = new AudioFiller(this.config.audioSampleRate, this.config.audioChannels);
152
152
  this.sendQueue = new util.AsyncQueue();
@@ -161,27 +161,29 @@ class SpeechFlowNodeA2AFiller extends speechflow_node_1.default {
161
161
  writableObjectMode: true,
162
162
  decodeStrings: false,
163
163
  write(chunk, encoding, callback) {
164
- if (self.destroyed || self.filler === null)
164
+ if (self.closing || self.filler === null)
165
165
  callback(new Error("stream already destroyed"));
166
166
  else if (!Buffer.isBuffer(chunk.payload))
167
167
  callback(new Error("invalid chunk payload type"));
168
168
  else {
169
169
  try {
170
+ if (self.closing || self.filler === null)
171
+ throw new Error("stream already destroyed");
170
172
  self.filler.add(chunk);
171
173
  callback();
172
174
  }
173
175
  catch (error) {
174
- callback(error);
176
+ callback(util.ensureError(error));
175
177
  }
176
178
  }
177
179
  },
178
180
  read(size) {
179
- if (self.destroyed || self.sendQueue === null) {
181
+ if (self.closing || self.sendQueue === null) {
180
182
  this.push(null);
181
183
  return;
182
184
  }
183
185
  self.sendQueue.read().then((chunk) => {
184
- if (self.destroyed) {
186
+ if (self.closing || self.sendQueue === null) {
185
187
  this.push(null);
186
188
  return;
187
189
  }
@@ -194,12 +196,12 @@ class SpeechFlowNodeA2AFiller extends speechflow_node_1.default {
194
196
  this.push(chunk);
195
197
  }
196
198
  }).catch((error) => {
197
- if (!self.destroyed)
199
+ if (!self.closing && self.sendQueue !== null)
198
200
  self.log("error", `queue read error: ${util.ensureError(error).message}`);
199
201
  });
200
202
  },
201
203
  final(callback) {
202
- if (self.destroyed) {
204
+ if (self.closing) {
203
205
  callback();
204
206
  return;
205
207
  }
@@ -210,8 +212,8 @@ class SpeechFlowNodeA2AFiller extends speechflow_node_1.default {
210
212
  }
211
213
  /* close node */
212
214
  async close() {
213
- /* indicate destruction */
214
- this.destroyed = true;
215
+ /* indicate closing */
216
+ this.closing = true;
215
217
  /* destroy queues */
216
218
  if (this.sendQueue !== null) {
217
219
  this.sendQueue.destroy();
@@ -222,9 +224,9 @@ class SpeechFlowNodeA2AFiller extends speechflow_node_1.default {
222
224
  this.filler.removeAllListeners();
223
225
  this.filler = null;
224
226
  }
225
- /* close stream */
227
+ /* shutdown stream */
226
228
  if (this.stream !== null) {
227
- this.stream.destroy();
229
+ await util.destroyStream(this.stream);
228
230
  this.stream = null;
229
231
  }
230
232
  }
@@ -1 +1 @@
1
- {"version":3,"file":"speechflow-node-a2a-filler.js","sourceRoot":"","sources":["../src/speechflow-node-a2a-filler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"speechflow-node-a2a-filler.js","sourceRoot":"","sources":["../src/speechflow-node-a2a-filler.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import SpeechFlowNode from "./speechflow-node";
2
2
  export default class SpeechFlowNodeA2AGain extends SpeechFlowNode {
3
3
  static name: string;
4
- private destroyed;
4
+ private closing;
5
5
  constructor(id: string, cfg: {
6
6
  [id: string]: any;
7
7
  }, opts: {
@@ -51,7 +51,7 @@ class SpeechFlowNodeA2AGain extends speechflow_node_1.default {
51
51
  /* declare official node name */
52
52
  static name = "a2a-gain";
53
53
  /* internal state */
54
- destroyed = false;
54
+ closing = false;
55
55
  /* construct node */
56
56
  constructor(id, cfg, opts, args) {
57
57
  super(id, cfg, opts, args);
@@ -66,7 +66,7 @@ class SpeechFlowNodeA2AGain extends speechflow_node_1.default {
66
66
  /* open node */
67
67
  async open() {
68
68
  /* clear destruction flag */
69
- this.destroyed = false;
69
+ this.closing = false;
70
70
  /* adjust gain */
71
71
  const adjustGain = (chunk, db) => {
72
72
  const dv = new DataView(chunk.payload.buffer, chunk.payload.byteOffset, chunk.payload.byteLength);
@@ -85,7 +85,7 @@ class SpeechFlowNodeA2AGain extends speechflow_node_1.default {
85
85
  writableObjectMode: true,
86
86
  decodeStrings: false,
87
87
  transform(chunk, encoding, callback) {
88
- if (self.destroyed) {
88
+ if (self.closing) {
89
89
  callback(new Error("stream already destroyed"));
90
90
  return;
91
91
  }
@@ -101,7 +101,7 @@ class SpeechFlowNodeA2AGain extends speechflow_node_1.default {
101
101
  }
102
102
  },
103
103
  final(callback) {
104
- if (self.destroyed) {
104
+ if (self.closing) {
105
105
  callback();
106
106
  return;
107
107
  }
@@ -112,11 +112,11 @@ class SpeechFlowNodeA2AGain extends speechflow_node_1.default {
112
112
  }
113
113
  /* close node */
114
114
  async close() {
115
- /* indicate destruction */
116
- this.destroyed = true;
117
- /* close stream */
115
+ /* indicate closing */
116
+ this.closing = true;
117
+ /* shutdown stream */
118
118
  if (this.stream !== null) {
119
- this.stream.destroy();
119
+ await util.destroyStream(this.stream);
120
120
  this.stream = null;
121
121
  }
122
122
  }
@@ -1 +1 @@
1
- {"version":3,"file":"speechflow-node-a2a-gain.js","sourceRoot":"","sources":["../src/speechflow-node-a2a-gain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"speechflow-node-a2a-gain.js","sourceRoot":"","sources":["../src/speechflow-node-a2a-gain.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ export default class SpeechFlowNodeA2AGender extends SpeechFlowNode {
6
6
  private queueRecv;
7
7
  private queueAC;
8
8
  private queueSend;
9
- private shutdown;
9
+ private closing;
10
10
  private workingOffTimer;
11
11
  private progressInterval;
12
12
  constructor(id: string, cfg: {
@@ -61,7 +61,7 @@ class SpeechFlowNodeA2AGender extends speechflow_node_1.default {
61
61
  queueRecv = this.queue.pointerUse("recv");
62
62
  queueAC = this.queue.pointerUse("ac");
63
63
  queueSend = this.queue.pointerUse("send");
64
- shutdown = false;
64
+ closing = false;
65
65
  workingOffTimer = null;
66
66
  progressInterval = null;
67
67
  /* construct node */
@@ -83,14 +83,14 @@ class SpeechFlowNodeA2AGender extends speechflow_node_1.default {
83
83
  /* sanity check situation */
84
84
  if (this.config.audioBitDepth !== 16 || !this.config.audioLittleEndian)
85
85
  throw new Error("Gender node currently supports PCM-S16LE audio only");
86
- /* clear shutdown flag */
87
- this.shutdown = false;
86
+ /* clear destruction flag */
87
+ this.closing = false;
88
88
  /* the used model */
89
89
  const model = "Xenova/wav2vec2-large-xlsr-53-gender-recognition-librispeech";
90
90
  /* track download progress when instantiating Transformers engine and model */
91
91
  const progressState = new Map();
92
92
  const progressCallback = (progress) => {
93
- if (this.shutdown)
93
+ if (this.closing)
94
94
  return;
95
95
  let artifact = model;
96
96
  if (typeof progress.file === "string")
@@ -104,7 +104,7 @@ class SpeechFlowNodeA2AGender extends speechflow_node_1.default {
104
104
  progressState.set(artifact, percent);
105
105
  };
106
106
  this.progressInterval = setInterval(() => {
107
- if (this.shutdown)
107
+ if (this.closing)
108
108
  return;
109
109
  for (const [artifact, percent] of progressState) {
110
110
  this.log("info", `downloaded ${percent.toFixed(2)}% of artifact "${artifact}"`);
@@ -140,9 +140,10 @@ class SpeechFlowNodeA2AGender extends speechflow_node_1.default {
140
140
  /* define sample rate required by model */
141
141
  const sampleRateTarget = 16000;
142
142
  /* classify a single large-enough concatenated audio frame */
143
+ let genderLast = "unknown";
143
144
  const classify = async (data) => {
144
- if (this.shutdown || this.classifier === null)
145
- throw new Error("classifier shutdown during operation");
145
+ if (this.closing || this.classifier === null)
146
+ throw new Error("classifier destroyed during operation");
146
147
  /* check volume level and return "unknown" if too low
147
148
  in order to avoid a wrong classificaton */
148
149
  const audioData = {
@@ -154,7 +155,7 @@ class SpeechFlowNodeA2AGender extends speechflow_node_1.default {
154
155
  };
155
156
  const rms = (0, audio_inspect_1.getRMS)(audioData, { asDB: true });
156
157
  if (rms < this.params.volumeThreshold)
157
- return "unknown";
158
+ return genderLast;
158
159
  /* classify audio */
159
160
  const result = await Promise.race([
160
161
  this.classifier(data),
@@ -169,21 +170,24 @@ class SpeechFlowNodeA2AGender extends speechflow_node_1.default {
169
170
  const female = c2 ? c2.score : 0.0;
170
171
  const threshold = this.params.threshold;
171
172
  const hysteresis = this.params.hysteresis;
173
+ let genderNow = genderLast;
172
174
  if (male > threshold && male > female + hysteresis)
173
- return "male";
175
+ genderNow = "male";
174
176
  else if (female > threshold && female > male + hysteresis)
175
- return "female";
176
- else
177
- return "unknown";
177
+ genderNow = "female";
178
+ if (genderNow !== genderLast) {
179
+ this.log("info", `switching detected gender from <${genderLast}> to <${genderNow}>`);
180
+ genderLast = genderNow;
181
+ }
182
+ return genderNow;
178
183
  };
179
184
  /* work off queued audio frames */
180
185
  const frameWindowDuration = this.params.window / 1000;
181
186
  const frameWindowSamples = Math.floor(frameWindowDuration * sampleRateTarget);
182
- let lastGender = "";
183
187
  let workingOff = false;
184
188
  const workOffQueue = async () => {
185
189
  /* control working off round */
186
- if (workingOff || this.shutdown)
190
+ if (workingOff || this.closing)
187
191
  return;
188
192
  workingOff = true;
189
193
  if (this.workingOffTimer !== null) {
@@ -199,7 +203,7 @@ class SpeechFlowNodeA2AGender extends speechflow_node_1.default {
199
203
  data.fill(0);
200
204
  let samples = 0;
201
205
  let pos = pos0;
202
- while (pos < posL && samples < frameWindowSamples && !this.shutdown) {
206
+ while (pos < posL && samples < frameWindowSamples && !this.closing) {
203
207
  const element = this.queueAC.peek(pos);
204
208
  if (element === undefined || element.type !== "audio-frame")
205
209
  break;
@@ -209,12 +213,12 @@ class SpeechFlowNodeA2AGender extends speechflow_node_1.default {
209
213
  }
210
214
  pos++;
211
215
  }
212
- if (pos0 < pos && samples > frameWindowSamples * 0.75 && !this.shutdown) {
216
+ if (pos0 < pos && samples > frameWindowSamples * 0.75 && !this.closing) {
213
217
  const gender = await classify(data);
214
- if (this.shutdown)
218
+ if (this.closing)
215
219
  return;
216
220
  const posM = pos0 + Math.trunc((pos - pos0) * 0.25);
217
- while (pos0 < posM && pos0 < posL && !this.shutdown) {
221
+ while (pos0 < posM && pos0 < posL && !this.closing) {
218
222
  const element = this.queueAC.peek(pos0);
219
223
  if (element === undefined || element.type !== "audio-frame")
220
224
  break;
@@ -223,10 +227,6 @@ class SpeechFlowNodeA2AGender extends speechflow_node_1.default {
223
227
  this.queueAC.walk(+1);
224
228
  pos0++;
225
229
  }
226
- if (lastGender !== gender && !this.shutdown) {
227
- this.log("info", `gender now recognized as <${gender}>`);
228
- lastGender = gender;
229
- }
230
230
  }
231
231
  }
232
232
  catch (error) {
@@ -234,7 +234,7 @@ class SpeechFlowNodeA2AGender extends speechflow_node_1.default {
234
234
  }
235
235
  /* re-initiate working off round */
236
236
  workingOff = false;
237
- if (!this.shutdown) {
237
+ if (!this.closing) {
238
238
  this.workingOffTimer = setTimeout(workOffQueue, 100);
239
239
  this.queue.once("write", workOffQueue);
240
240
  }
@@ -249,7 +249,7 @@ class SpeechFlowNodeA2AGender extends speechflow_node_1.default {
249
249
  highWaterMark: 1,
250
250
  /* receive audio chunk (writable side of stream) */
251
251
  write(chunk, encoding, callback) {
252
- if (self.shutdown) {
252
+ if (self.closing) {
253
253
  callback(new Error("stream already destroyed"));
254
254
  return;
255
255
  }
@@ -270,13 +270,13 @@ class SpeechFlowNodeA2AGender extends speechflow_node_1.default {
270
270
  callback();
271
271
  }
272
272
  catch (error) {
273
- callback(error instanceof Error ? error : new Error("audio processing failed"));
273
+ callback(util.ensureError(error, "audio processing failed"));
274
274
  }
275
275
  }
276
276
  },
277
277
  /* receive no more audio chunks (writable side of stream) */
278
278
  final(callback) {
279
- if (self.shutdown) {
279
+ if (self.closing) {
280
280
  callback();
281
281
  return;
282
282
  }
@@ -288,7 +288,7 @@ class SpeechFlowNodeA2AGender extends speechflow_node_1.default {
288
288
  read(_size) {
289
289
  /* flush pending audio chunks */
290
290
  const flushPendingChunks = () => {
291
- if (self.shutdown) {
291
+ if (self.closing) {
292
292
  this.push(null);
293
293
  return;
294
294
  }
@@ -300,7 +300,7 @@ class SpeechFlowNodeA2AGender extends speechflow_node_1.default {
300
300
  && element.type === "audio-frame"
301
301
  && element.gender !== undefined) {
302
302
  while (true) {
303
- if (self.shutdown) {
303
+ if (self.closing) {
304
304
  this.push(null);
305
305
  return;
306
306
  }
@@ -315,14 +315,18 @@ class SpeechFlowNodeA2AGender extends speechflow_node_1.default {
315
315
  && element.gender === undefined)
316
316
  break;
317
317
  const duration = util.audioArrayDuration(element.data);
318
- self.log("debug", `send chunk (${duration.toFixed(3)}s) with gender <${element.gender}>`);
318
+ const fmtTime = (t) => t.toFormat("hh:mm:ss.SSS");
319
+ const times = `start: ${fmtTime(element.chunk.timestampStart)}, ` +
320
+ `end: ${fmtTime(element.chunk.timestampEnd)}`;
321
+ self.log("debug", `send chunk (${times}, duration: ${duration.toFixed(3)}s) ` +
322
+ `with gender <${element.gender}>`);
319
323
  element.chunk.meta.set("gender", element.gender);
320
324
  this.push(element.chunk);
321
325
  self.queueSend.walk(+1);
322
326
  self.queue.trim();
323
327
  }
324
328
  }
325
- else if (!self.shutdown)
329
+ else if (!self.closing)
326
330
  self.queue.once("write", flushPendingChunks);
327
331
  };
328
332
  flushPendingChunks();
@@ -331,8 +335,8 @@ class SpeechFlowNodeA2AGender extends speechflow_node_1.default {
331
335
  }
332
336
  /* close node */
333
337
  async close() {
334
- /* indicate shutdown */
335
- this.shutdown = true;
338
+ /* indicate closing */
339
+ this.closing = true;
336
340
  /* cleanup working-off timer */
337
341
  if (this.workingOffTimer !== null) {
338
342
  clearTimeout(this.workingOffTimer);
@@ -345,9 +349,9 @@ class SpeechFlowNodeA2AGender extends speechflow_node_1.default {
345
349
  }
346
350
  /* remove all event listeners */
347
351
  this.queue.removeAllListeners("write");
348
- /* close stream */
352
+ /* shutdown stream */
349
353
  if (this.stream !== null) {
350
- this.stream.destroy();
354
+ await util.destroyStream(this.stream);
351
355
  this.stream = null;
352
356
  }
353
357
  /* cleanup classifier */
@@ -1 +1 @@
1
- {"version":3,"file":"speechflow-node-a2a-gender.js","sourceRoot":"","sources":["../src/speechflow-node-a2a-gender.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"speechflow-node-a2a-gender.js","sourceRoot":"","sources":["../src/speechflow-node-a2a-gender.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ export default class SpeechFlowNodeA2AMeter extends SpeechFlowNode {
5
5
  private calcInterval;
6
6
  private silenceTimer;
7
7
  private chunkBuffer;
8
- private destroyed;
8
+ private closing;
9
9
  constructor(id: string, cfg: {
10
10
  [id: string]: any;
11
11
  }, opts: {
@@ -57,7 +57,7 @@ class SpeechFlowNodeA2AMeter extends speechflow_node_1.default {
57
57
  calcInterval = null;
58
58
  silenceTimer = null;
59
59
  chunkBuffer = new Float32Array(0);
60
- destroyed = false;
60
+ closing = false;
61
61
  /* construct node */
62
62
  constructor(id, cfg, opts, args) {
63
63
  super(id, cfg, opts, args);
@@ -80,7 +80,7 @@ class SpeechFlowNodeA2AMeter extends speechflow_node_1.default {
80
80
  if (this.config.audioBitDepth !== 16 || !this.config.audioLittleEndian)
81
81
  throw new Error("meter node currently supports PCM-S16LE audio only");
82
82
  /* clear destruction flag */
83
- this.destroyed = false;
83
+ this.closing = false;
84
84
  /* internal state */
85
85
  let lufsm = -60;
86
86
  let rms = -60;
@@ -96,7 +96,7 @@ class SpeechFlowNodeA2AMeter extends speechflow_node_1.default {
96
96
  /* setup chunking interval */
97
97
  this.calcInterval = setInterval(() => {
98
98
  /* short-circuit during destruction */
99
- if (this.destroyed)
99
+ if (this.closing)
100
100
  return;
101
101
  /* short-circuit if still not enough chunk data */
102
102
  if (this.chunkBuffer.length < samplesPerChunk)
@@ -150,7 +150,7 @@ class SpeechFlowNodeA2AMeter extends speechflow_node_1.default {
150
150
  }, chunkDuration * 1000);
151
151
  /* setup loudness emitting interval */
152
152
  this.emitInterval = setInterval(() => {
153
- if (this.destroyed)
153
+ if (this.closing)
154
154
  return;
155
155
  this.log("debug", `LUFS-M: ${lufsm.toFixed(1)} dB, RMS: ${rms.toFixed(1)} dB`);
156
156
  this.sendResponse(["meter", "LUFS-M", lufsm]);
@@ -167,7 +167,7 @@ class SpeechFlowNodeA2AMeter extends speechflow_node_1.default {
167
167
  highWaterMark: 1,
168
168
  /* transform audio chunk */
169
169
  transform(chunk, encoding, callback) {
170
- if (self.destroyed) {
170
+ if (self.closing) {
171
171
  callback(new Error("stream already destroyed"));
172
172
  return;
173
173
  }
@@ -191,12 +191,12 @@ class SpeechFlowNodeA2AMeter extends speechflow_node_1.default {
191
191
  callback();
192
192
  }
193
193
  catch (error) {
194
- callback(error instanceof Error ? error : new Error("meter processing failed"));
194
+ callback(util.ensureError(error, "meter processing failed"));
195
195
  }
196
196
  }
197
197
  },
198
198
  final(callback) {
199
- if (self.destroyed || self.params.mode === "sink") {
199
+ if (self.closing || self.params.mode === "sink") {
200
200
  callback();
201
201
  return;
202
202
  }
@@ -207,8 +207,8 @@ class SpeechFlowNodeA2AMeter extends speechflow_node_1.default {
207
207
  }
208
208
  /* close node */
209
209
  async close() {
210
- /* indicate destruction immediately to stop any ongoing operations */
211
- this.destroyed = true;
210
+ /* indicate closing immediately to stop any ongoing operations */
211
+ this.closing = true;
212
212
  /* stop intervals */
213
213
  if (this.emitInterval !== null) {
214
214
  clearInterval(this.emitInterval);
@@ -222,9 +222,9 @@ class SpeechFlowNodeA2AMeter extends speechflow_node_1.default {
222
222
  clearTimeout(this.silenceTimer);
223
223
  this.silenceTimer = null;
224
224
  }
225
- /* close stream */
225
+ /* shutdown stream */
226
226
  if (this.stream !== null) {
227
- this.stream.destroy();
227
+ await util.destroyStream(this.stream);
228
228
  this.stream = null;
229
229
  }
230
230
  }