speechflow 2.3.0 → 2.3.1
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.
- package/CHANGELOG.md +28 -0
- package/package.json +2 -2
- package/speechflow-cli/dst/speechflow-node-a2a-compressor-wt.js +10 -9
- package/speechflow-cli/dst/speechflow-node-a2a-compressor-wt.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-a2a-compressor.js +17 -2
- package/speechflow-cli/dst/speechflow-node-a2a-compressor.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-a2a-expander-wt.js +7 -8
- package/speechflow-cli/dst/speechflow-node-a2a-expander-wt.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-a2a-ffmpeg.js +5 -5
- package/speechflow-cli/dst/speechflow-node-a2a-ffmpeg.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-a2a-filler.js +5 -0
- package/speechflow-cli/dst/speechflow-node-a2a-filler.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-a2a-gender.js +1 -4
- package/speechflow-cli/dst/speechflow-node-a2a-gender.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-a2a-meter.js +1 -1
- package/speechflow-cli/dst/speechflow-node-a2a-meter.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-a2t-amazon.js +8 -3
- package/speechflow-cli/dst/speechflow-node-a2t-amazon.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-a2t-google.d.ts +1 -0
- package/speechflow-cli/dst/speechflow-node-a2t-google.js +6 -1
- package/speechflow-cli/dst/speechflow-node-a2t-google.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-t2a-kokoro.js +3 -1
- package/speechflow-cli/dst/speechflow-node-t2a-kokoro.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-t2a-supertonic.js +1 -0
- package/speechflow-cli/dst/speechflow-node-t2a-supertonic.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-t2t-opus.js +9 -1
- package/speechflow-cli/dst/speechflow-node-t2t-opus.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-t2t-sentence.d.ts +3 -0
- package/speechflow-cli/dst/speechflow-node-t2t-sentence.js +159 -56
- package/speechflow-cli/dst/speechflow-node-t2t-sentence.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-xio-exec.js +4 -4
- package/speechflow-cli/dst/speechflow-node-xio-exec.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-xio-webrtc.d.ts +1 -0
- package/speechflow-cli/dst/speechflow-node-xio-webrtc.js +6 -1
- package/speechflow-cli/dst/speechflow-node-xio-webrtc.js.map +1 -1
- package/speechflow-cli/dst/speechflow-node-xio-websocket.js +14 -4
- package/speechflow-cli/dst/speechflow-node-xio-websocket.js.map +1 -1
- package/speechflow-cli/dst/speechflow-util-audio.js +11 -9
- package/speechflow-cli/dst/speechflow-util-audio.js.map +1 -1
- package/speechflow-cli/dst/speechflow-util-llm.js +12 -2
- package/speechflow-cli/dst/speechflow-util-llm.js.map +1 -1
- package/speechflow-cli/dst/speechflow-util-queue.d.ts +4 -0
- package/speechflow-cli/dst/speechflow-util-queue.js +41 -0
- package/speechflow-cli/dst/speechflow-util-queue.js.map +1 -1
- package/speechflow-cli/src/speechflow-node-a2a-compressor-wt.ts +12 -9
- package/speechflow-cli/src/speechflow-node-a2a-compressor.ts +23 -7
- package/speechflow-cli/src/speechflow-node-a2a-expander-wt.ts +7 -8
- package/speechflow-cli/src/speechflow-node-a2a-ffmpeg.ts +6 -6
- package/speechflow-cli/src/speechflow-node-a2a-filler.ts +6 -0
- package/speechflow-cli/src/speechflow-node-a2a-gender.ts +3 -6
- package/speechflow-cli/src/speechflow-node-a2a-meter.ts +1 -1
- package/speechflow-cli/src/speechflow-node-a2t-amazon.ts +12 -3
- package/speechflow-cli/src/speechflow-node-a2t-google.ts +8 -1
- package/speechflow-cli/src/speechflow-node-t2a-kokoro.ts +3 -1
- package/speechflow-cli/src/speechflow-node-t2a-supertonic.ts +1 -0
- package/speechflow-cli/src/speechflow-node-t2t-opus.ts +9 -1
- package/speechflow-cli/src/speechflow-node-t2t-sentence.ts +214 -61
- package/speechflow-cli/src/speechflow-node-xio-exec.ts +5 -5
- package/speechflow-cli/src/speechflow-node-xio-webrtc.ts +7 -1
- package/speechflow-cli/src/speechflow-node-xio-websocket.ts +14 -4
- package/speechflow-cli/src/speechflow-util-audio.ts +12 -10
- package/speechflow-cli/src/speechflow-util-llm.ts +13 -2
- package/speechflow-cli/src/speechflow-util-queue.ts +43 -0
- package/speechflow-ui-db/dst/index.js +3 -3
|
@@ -75,6 +75,15 @@ class QueuePointer extends node_events_1.EventEmitter {
|
|
|
75
75
|
silent(silence) {
|
|
76
76
|
this.silence = silence;
|
|
77
77
|
}
|
|
78
|
+
silently(fn) {
|
|
79
|
+
this.silence = true;
|
|
80
|
+
try {
|
|
81
|
+
return fn();
|
|
82
|
+
}
|
|
83
|
+
finally {
|
|
84
|
+
this.silence = false;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
78
87
|
/* notify about operation */
|
|
79
88
|
notify(event, info) {
|
|
80
89
|
if (!this.silence)
|
|
@@ -193,12 +202,14 @@ class QueuePointer extends node_events_1.EventEmitter {
|
|
|
193
202
|
}
|
|
194
203
|
insert(element) {
|
|
195
204
|
this.queue.elements.splice(this.index, 0, element);
|
|
205
|
+
this.queue.adjustPointers(this, this.index, "insert");
|
|
196
206
|
this.queue.notify("write", { start: this.index, end: this.index, op: "insert" });
|
|
197
207
|
}
|
|
198
208
|
delete() {
|
|
199
209
|
if (this.index >= this.queue.elements.length)
|
|
200
210
|
throw new Error("cannot delete after last element");
|
|
201
211
|
this.queue.elements.splice(this.index, 1);
|
|
212
|
+
this.queue.adjustPointers(this, this.index, "delete");
|
|
202
213
|
this.queue.notify("write", { start: this.index, end: this.index, op: "delete" });
|
|
203
214
|
}
|
|
204
215
|
}
|
|
@@ -215,6 +226,15 @@ class Queue extends node_events_1.EventEmitter {
|
|
|
215
226
|
silent(silence) {
|
|
216
227
|
this.silence = silence;
|
|
217
228
|
}
|
|
229
|
+
silently(fn) {
|
|
230
|
+
this.silence = true;
|
|
231
|
+
try {
|
|
232
|
+
return fn();
|
|
233
|
+
}
|
|
234
|
+
finally {
|
|
235
|
+
this.silence = false;
|
|
236
|
+
}
|
|
237
|
+
}
|
|
218
238
|
notify(event, info) {
|
|
219
239
|
if (!this.silence)
|
|
220
240
|
this.emit(event, info);
|
|
@@ -229,6 +249,22 @@ class Queue extends node_events_1.EventEmitter {
|
|
|
229
249
|
throw new Error("pointer does not exist");
|
|
230
250
|
this.pointers.delete(name);
|
|
231
251
|
}
|
|
252
|
+
/* adjust all sibling pointer positions (after insert/delete splice)
|
|
253
|
+
NOTICE: for insert, pointers AT the index are shifted forward to preserve
|
|
254
|
+
their pointer-to-element binding; for delete, pointers AT the index are
|
|
255
|
+
intentionally NOT adjusted, causing them to silently advance to the next
|
|
256
|
+
element (which shifted into the deleted position). */
|
|
257
|
+
adjustPointers(exclude, index, op) {
|
|
258
|
+
for (const pointer of this.pointers.values()) {
|
|
259
|
+
if (pointer === exclude)
|
|
260
|
+
continue;
|
|
261
|
+
const pos = pointer.position();
|
|
262
|
+
if (op === "insert" && pos >= index)
|
|
263
|
+
pointer.position(pos + 1);
|
|
264
|
+
else if (op === "delete" && pos > index)
|
|
265
|
+
pointer.position(pos - 1);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
232
268
|
trim() {
|
|
233
269
|
/* determine minimum pointer position */
|
|
234
270
|
let min = this.elements.length;
|
|
@@ -246,6 +282,11 @@ class Queue extends node_events_1.EventEmitter {
|
|
|
246
282
|
this.notify("write", { start: 0, end: min, op: "trim" });
|
|
247
283
|
}
|
|
248
284
|
}
|
|
285
|
+
clear() {
|
|
286
|
+
this.elements.length = 0;
|
|
287
|
+
for (const pointer of this.pointers.values())
|
|
288
|
+
pointer.position(0);
|
|
289
|
+
}
|
|
249
290
|
}
|
|
250
291
|
exports.Queue = Queue;
|
|
251
292
|
class TimeStore extends node_events_1.EventEmitter {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"speechflow-util-queue.js","sourceRoot":"","sources":["../src/speechflow-util-queue.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"speechflow-util-queue.js","sourceRoot":"","sources":["../src/speechflow-util-queue.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,20 +38,19 @@ class CompressorProcessor extends AudioWorkletProcessor {
|
|
|
38
38
|
if (ratio <= 1.0)
|
|
39
39
|
return 0
|
|
40
40
|
|
|
41
|
-
/* determine
|
|
41
|
+
/* determine knee boundaries (symmetric around threshold) */
|
|
42
42
|
const halfKnee = kneeDB * 0.5
|
|
43
|
-
const
|
|
44
|
-
const aboveKnee = levelDB
|
|
43
|
+
const belowKnee = levelDB < (thresholdDB - halfKnee)
|
|
44
|
+
const aboveKnee = levelDB > (thresholdDB + halfKnee)
|
|
45
45
|
|
|
46
|
-
/* short-circuit for no compression (below
|
|
47
|
-
if (
|
|
46
|
+
/* short-circuit for no compression (below knee) */
|
|
47
|
+
if (belowKnee)
|
|
48
48
|
return 0
|
|
49
49
|
|
|
50
|
-
/* apply soft-knee */
|
|
50
|
+
/* apply soft-knee (standard textbook quadratic) */
|
|
51
51
|
if (kneeDB > 0 && !aboveKnee) {
|
|
52
|
-
const
|
|
53
|
-
|
|
54
|
-
return idealGainDB * x * x
|
|
52
|
+
const d = levelDB - thresholdDB + halfKnee
|
|
53
|
+
return (1.0 / ratio - 1.0) * d * d / (2.0 * kneeDB)
|
|
55
54
|
}
|
|
56
55
|
|
|
57
56
|
/* determine target level */
|
|
@@ -116,6 +115,10 @@ class CompressorProcessor extends AudioWorkletProcessor {
|
|
|
116
115
|
for (let i = 0; i < inp.length; i++)
|
|
117
116
|
out[i] = inp[i] * gainLin
|
|
118
117
|
}
|
|
118
|
+
|
|
119
|
+
/* report reduction to main thread */
|
|
120
|
+
this.port.postMessage({ type: "reduction", reduction: this.reduction })
|
|
121
|
+
|
|
119
122
|
return true
|
|
120
123
|
}
|
|
121
124
|
}
|
|
@@ -29,11 +29,13 @@ interface AudioCompressorConfig {
|
|
|
29
29
|
/* audio compressor class */
|
|
30
30
|
class AudioCompressor extends util.WebAudio {
|
|
31
31
|
/* internal state */
|
|
32
|
-
private type:
|
|
33
|
-
private mode:
|
|
34
|
-
private config:
|
|
35
|
-
private compressorNode:
|
|
36
|
-
private gainNode:
|
|
32
|
+
private type: "standalone" | "sidechain"
|
|
33
|
+
private mode: "compress" | "measure" | "adjust"
|
|
34
|
+
private config: Required<AudioCompressorConfig>
|
|
35
|
+
private compressorNode: AudioWorkletNode | null = null
|
|
36
|
+
private gainNode: GainNode | null = null
|
|
37
|
+
private _reduction = 0
|
|
38
|
+
private _reductionListener: ((event: MessageEvent) => void) | null = null
|
|
37
39
|
|
|
38
40
|
/* construct object */
|
|
39
41
|
constructor (
|
|
@@ -85,6 +87,16 @@ class AudioCompressor extends util.WebAudio {
|
|
|
85
87
|
})
|
|
86
88
|
}
|
|
87
89
|
|
|
90
|
+
/* listen for reduction updates from compressor worklet */
|
|
91
|
+
if (needsCompressor) {
|
|
92
|
+
this._reductionListener = (event: MessageEvent) => {
|
|
93
|
+
if (event.data?.type === "reduction")
|
|
94
|
+
this._reduction = event.data.reduction
|
|
95
|
+
}
|
|
96
|
+
this.compressorNode!.port.addEventListener("message", this._reductionListener)
|
|
97
|
+
this.compressorNode!.port.start()
|
|
98
|
+
}
|
|
99
|
+
|
|
88
100
|
/* create gain node */
|
|
89
101
|
if (needsGain)
|
|
90
102
|
this.gainNode = this.audioContext.createGain()
|
|
@@ -97,6 +109,7 @@ class AudioCompressor extends util.WebAudio {
|
|
|
97
109
|
}
|
|
98
110
|
else if (this.type === "sidechain" && this.mode === "measure") {
|
|
99
111
|
this.sourceNode!.connect(this.compressorNode!)
|
|
112
|
+
this.compressorNode!.connect(this.captureNode!)
|
|
100
113
|
}
|
|
101
114
|
else if (this.type === "sidechain" && this.mode === "adjust") {
|
|
102
115
|
this.sourceNode!.connect(this.gainNode!)
|
|
@@ -123,8 +136,7 @@ class AudioCompressor extends util.WebAudio {
|
|
|
123
136
|
|
|
124
137
|
/* get the current gain reduction */
|
|
125
138
|
public getGainReduction (): number {
|
|
126
|
-
|
|
127
|
-
return processor?.reduction ?? 0
|
|
139
|
+
return this._reduction
|
|
128
140
|
}
|
|
129
141
|
|
|
130
142
|
/* set the current gain */
|
|
@@ -137,6 +149,10 @@ class AudioCompressor extends util.WebAudio {
|
|
|
137
149
|
public async destroy (): Promise<void> {
|
|
138
150
|
/* destroy nodes */
|
|
139
151
|
if (this.compressorNode !== null) {
|
|
152
|
+
if (this._reductionListener !== null) {
|
|
153
|
+
this.compressorNode.port.removeEventListener("message", this._reductionListener)
|
|
154
|
+
this._reductionListener = null
|
|
155
|
+
}
|
|
140
156
|
this.compressorNode.disconnect()
|
|
141
157
|
this.compressorNode = null
|
|
142
158
|
}
|
|
@@ -39,20 +39,19 @@ class ExpanderProcessor extends AudioWorkletProcessor {
|
|
|
39
39
|
if (ratio <= 1.0)
|
|
40
40
|
return 0
|
|
41
41
|
|
|
42
|
-
/* determine
|
|
42
|
+
/* determine knee boundaries (symmetric around threshold) */
|
|
43
43
|
const halfKnee = kneeDB * 0.5
|
|
44
44
|
const belowKnee = levelDB < (thresholdDB - halfKnee)
|
|
45
|
-
const
|
|
45
|
+
const aboveKnee = levelDB > (thresholdDB + halfKnee)
|
|
46
46
|
|
|
47
|
-
/* short-circuit for no expansion (above
|
|
48
|
-
if (
|
|
47
|
+
/* short-circuit for no expansion (above knee) */
|
|
48
|
+
if (aboveKnee)
|
|
49
49
|
return 0
|
|
50
50
|
|
|
51
|
-
/* apply soft-knee */
|
|
51
|
+
/* apply soft-knee (standard textbook quadratic) */
|
|
52
52
|
if (kneeDB > 0 && !belowKnee) {
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
return idealGainDB * x * x
|
|
53
|
+
const d = thresholdDB + halfKnee - levelDB
|
|
54
|
+
return (1.0 - ratio) * d * d / (2.0 * kneeDB)
|
|
56
55
|
}
|
|
57
56
|
|
|
58
57
|
/* determine target level */
|
|
@@ -107,12 +107,6 @@ export default class SpeechFlowNodeA2AFFMPEG extends SpeechFlowNode {
|
|
|
107
107
|
|
|
108
108
|
/* close node */
|
|
109
109
|
async close () {
|
|
110
|
-
/* shutdown stream */
|
|
111
|
-
if (this.stream !== null) {
|
|
112
|
-
await util.destroyStream(this.stream)
|
|
113
|
-
this.stream = null
|
|
114
|
-
}
|
|
115
|
-
|
|
116
110
|
/* shutdown FFmpeg */
|
|
117
111
|
if (this.ffmpeg !== null) {
|
|
118
112
|
util.run("stopping FFmpeg process",
|
|
@@ -120,6 +114,12 @@ export default class SpeechFlowNodeA2AFFMPEG extends SpeechFlowNode {
|
|
|
120
114
|
() => {})
|
|
121
115
|
this.ffmpeg = null
|
|
122
116
|
}
|
|
117
|
+
|
|
118
|
+
/* shutdown stream */
|
|
119
|
+
if (this.stream !== null) {
|
|
120
|
+
await util.destroyStream(this.stream)
|
|
121
|
+
this.stream = null
|
|
122
|
+
}
|
|
123
123
|
}
|
|
124
124
|
}
|
|
125
125
|
|
|
@@ -196,6 +196,12 @@ export default class SpeechFlowNodeA2AFiller extends SpeechFlowNode {
|
|
|
196
196
|
self.filler.done()
|
|
197
197
|
await util.sleep(10)
|
|
198
198
|
|
|
199
|
+
/* re-check after await (close() may have run during sleep) */
|
|
200
|
+
if (self.closing || self.sendQueue === null) {
|
|
201
|
+
callback()
|
|
202
|
+
return
|
|
203
|
+
}
|
|
204
|
+
|
|
199
205
|
/* signal end of stream */
|
|
200
206
|
self.sendQueue.write(null)
|
|
201
207
|
}
|
|
@@ -151,15 +151,12 @@ export default class SpeechFlowNodeA2AGender extends SpeechFlowNode {
|
|
|
151
151
|
|
|
152
152
|
/* classify audio */
|
|
153
153
|
const ac = new AbortController()
|
|
154
|
-
const
|
|
155
|
-
this.classifier(data)
|
|
154
|
+
const classified = await Promise.race([
|
|
155
|
+
this.classifier(data) as Promise<Transformers.AudioClassificationOutput>,
|
|
156
156
|
util.timeout(30 * 1000, "classification timeout", ac.signal)
|
|
157
157
|
]).finally(() => {
|
|
158
158
|
ac.abort()
|
|
159
|
-
})
|
|
160
|
-
const classified = Array.isArray(result) ?
|
|
161
|
-
result as Transformers.AudioClassificationOutput :
|
|
162
|
-
[ result ]
|
|
159
|
+
})
|
|
163
160
|
const c1 = classified.find((c) => c.label === "male")
|
|
164
161
|
const c2 = classified.find((c) => c.label === "female")
|
|
165
162
|
const male = c1 ? c1.score : 0.0
|
|
@@ -81,7 +81,7 @@ export default class SpeechFlowNodeA2AMeter extends SpeechFlowNode {
|
|
|
81
81
|
|
|
82
82
|
/* grab the accumulated chunk data */
|
|
83
83
|
const chunkData = this.chunkBuffer
|
|
84
|
-
this.chunkBuffer = chunkData.
|
|
84
|
+
this.chunkBuffer = chunkData.slice(samplesPerChunk)
|
|
85
85
|
|
|
86
86
|
/* update internal audio sample sliding window for LUFS-M */
|
|
87
87
|
if (chunkData.length > sampleWindow.length)
|
|
@@ -139,6 +139,9 @@ export default class SpeechFlowNodeA2TAmazon extends SpeechFlowNode {
|
|
|
139
139
|
}
|
|
140
140
|
})(audioQueue)
|
|
141
141
|
|
|
142
|
+
/* provide a self-reference for use in callbacks below */
|
|
143
|
+
const self = this
|
|
144
|
+
|
|
142
145
|
/* start streaming */
|
|
143
146
|
const ensureAudioStreamActive = async () => {
|
|
144
147
|
if (this.clientStream !== null || this.clientStreamStarting || this.closing)
|
|
@@ -202,6 +205,7 @@ export default class SpeechFlowNodeA2TAmazon extends SpeechFlowNode {
|
|
|
202
205
|
this.queue?.write(chunk)
|
|
203
206
|
}
|
|
204
207
|
}
|
|
208
|
+
self.queue?.write(null)
|
|
205
209
|
})().catch((err: unknown) => {
|
|
206
210
|
this.log("warning", `failed to establish connectivity to Amazon Transcribe: ${util.ensureError(err).message}`)
|
|
207
211
|
this.clientStream = null
|
|
@@ -213,7 +217,6 @@ export default class SpeechFlowNodeA2TAmazon extends SpeechFlowNode {
|
|
|
213
217
|
this.timeOpen = DateTime.now()
|
|
214
218
|
|
|
215
219
|
/* provide Duplex stream and internally attach to Amazon Transcribe API */
|
|
216
|
-
const self = this
|
|
217
220
|
const reads = new util.PromiseSet<void>()
|
|
218
221
|
this.stream = new Stream.Duplex({
|
|
219
222
|
writableObjectMode: true,
|
|
@@ -247,12 +250,18 @@ export default class SpeechFlowNodeA2TAmazon extends SpeechFlowNode {
|
|
|
247
250
|
callback()
|
|
248
251
|
return
|
|
249
252
|
}
|
|
250
|
-
|
|
253
|
+
|
|
254
|
+
/* signal end-of-audio to Amazon Transcribe first */
|
|
255
|
+
audioQueue.push(null)
|
|
256
|
+
|
|
257
|
+
/* await all pending read operations (with safety timeout) */
|
|
258
|
+
await reads.awaitAll(5000)
|
|
259
|
+
|
|
260
|
+
/* clean up Amazon Transcribe connection and audio queue */
|
|
251
261
|
util.run("closing Amazon Transcribe connection",
|
|
252
262
|
() => self.client!.destroy(),
|
|
253
263
|
(error: Error) => self.log("warning", `error closing Amazon Transcribe connection: ${error}`)
|
|
254
264
|
)
|
|
255
|
-
audioQueue.push(null) /* do not push null to stream, let Amazon Transcribe do it */
|
|
256
265
|
audioQueue.destroy()
|
|
257
266
|
callback()
|
|
258
267
|
},
|
|
@@ -26,6 +26,7 @@ export default class SpeechFlowNodeA2TGoogle extends SpeechFlowNode {
|
|
|
26
26
|
private recognizeStream: ReturnType<GoogleSpeech.SpeechClient["streamingRecognize"]> | null = null
|
|
27
27
|
private queue: util.AsyncQueue<SpeechFlowChunk | null> | null = null
|
|
28
28
|
private closing = false
|
|
29
|
+
private lastResultEndMs = 0
|
|
29
30
|
|
|
30
31
|
/* construct node */
|
|
31
32
|
constructor (id: string, cfg: { [ id: string ]: any }, opts: { [ id: string ]: any }, args: any[]) {
|
|
@@ -62,6 +63,9 @@ export default class SpeechFlowNodeA2TGoogle extends SpeechFlowNode {
|
|
|
62
63
|
/* clear destruction flag */
|
|
63
64
|
this.closing = false
|
|
64
65
|
|
|
66
|
+
/* reset result end time tracking */
|
|
67
|
+
this.lastResultEndMs = 0
|
|
68
|
+
|
|
65
69
|
/* create queue for results */
|
|
66
70
|
this.queue = new util.AsyncQueue<SpeechFlowChunk | null>()
|
|
67
71
|
|
|
@@ -152,13 +156,16 @@ export default class SpeechFlowNodeA2TGoogle extends SpeechFlowNode {
|
|
|
152
156
|
/* fallback: use result timing */
|
|
153
157
|
const resultEnd = result.resultEndTime
|
|
154
158
|
if (resultEnd) {
|
|
155
|
-
tsStart = Duration.fromMillis(
|
|
159
|
+
tsStart = Duration.fromMillis(this.lastResultEndMs).plus(this.timeZeroOffset)
|
|
156
160
|
tsEnd = Duration.fromMillis(
|
|
157
161
|
(Number(resultEnd.seconds ?? 0) * 1000) +
|
|
158
162
|
(Number(resultEnd.nanos ?? 0) / 1000000)
|
|
159
163
|
).plus(this.timeZeroOffset)
|
|
160
164
|
}
|
|
161
165
|
}
|
|
166
|
+
/* track raw end time for next fallback estimation */
|
|
167
|
+
this.lastResultEndMs = tsEnd.minus(this.timeZeroOffset).toMillis()
|
|
168
|
+
|
|
162
169
|
this.log("info", `text received (start: ${tsStart.toMillis()}ms, ` +
|
|
163
170
|
`end: ${tsEnd.toMillis()}ms, ` +
|
|
164
171
|
`kind: ${isFinal ? "final" : "intermediate"}): ` +
|
|
@@ -211,8 +211,10 @@ export default class SpeechFlowNodeT2AKokoro extends SpeechFlowNode {
|
|
|
211
211
|
}
|
|
212
212
|
|
|
213
213
|
/* destroy Kokoro API */
|
|
214
|
-
if (this.kokoro !== null)
|
|
214
|
+
if (this.kokoro !== null) {
|
|
215
|
+
await this.kokoro.model.dispose()
|
|
215
216
|
this.kokoro = null
|
|
217
|
+
}
|
|
216
218
|
}
|
|
217
219
|
}
|
|
218
220
|
|
|
@@ -141,6 +141,7 @@ export default class SpeechFlowNodeT2ASupertonic extends SpeechFlowNode {
|
|
|
141
141
|
if (outputSampleRate !== this.sampleRate) {
|
|
142
142
|
this.log("warning", `unexpected sample rate change ${this.sampleRate}Hz -> ${outputSampleRate}Hz (recreating resampler)`)
|
|
143
143
|
this.sampleRate = outputSampleRate
|
|
144
|
+
this.resampler?.destroy()
|
|
144
145
|
this.resampler = new SpeexResampler(1, this.sampleRate, this.config.audioSampleRate, 7)
|
|
145
146
|
}
|
|
146
147
|
|
|
@@ -129,7 +129,15 @@ export default class SpeechFlowNodeT2TOPUS extends SpeechFlowNode {
|
|
|
129
129
|
|
|
130
130
|
/* shutdown Transformers */
|
|
131
131
|
if (this.translator !== null) {
|
|
132
|
-
|
|
132
|
+
const ac = new AbortController()
|
|
133
|
+
await Promise.race([
|
|
134
|
+
this.translator.dispose(),
|
|
135
|
+
util.timeout(5000, "translator dispose timeout", ac.signal)
|
|
136
|
+
]).finally(() => {
|
|
137
|
+
ac.abort()
|
|
138
|
+
}).catch((error) => {
|
|
139
|
+
this.log("warning", `error during translator cleanup: ${error}`)
|
|
140
|
+
})
|
|
133
141
|
this.translator = null
|
|
134
142
|
}
|
|
135
143
|
}
|