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
|
@@ -48,6 +48,15 @@ export class QueuePointer<T extends QueueElement> extends EventEmitter {
|
|
|
48
48
|
silent (silence: boolean) {
|
|
49
49
|
this.silence = silence
|
|
50
50
|
}
|
|
51
|
+
silently<R> (fn: () => R): R {
|
|
52
|
+
this.silence = true
|
|
53
|
+
try {
|
|
54
|
+
return fn()
|
|
55
|
+
}
|
|
56
|
+
finally {
|
|
57
|
+
this.silence = false
|
|
58
|
+
}
|
|
59
|
+
}
|
|
51
60
|
|
|
52
61
|
/* notify about operation */
|
|
53
62
|
notify (event: string, info: any) {
|
|
@@ -171,12 +180,14 @@ export class QueuePointer<T extends QueueElement> extends EventEmitter {
|
|
|
171
180
|
}
|
|
172
181
|
insert (element: T) {
|
|
173
182
|
this.queue.elements.splice(this.index, 0, element)
|
|
183
|
+
this.queue.adjustPointers(this, this.index, "insert")
|
|
174
184
|
this.queue.notify("write", { start: this.index, end: this.index, op: "insert" })
|
|
175
185
|
}
|
|
176
186
|
delete () {
|
|
177
187
|
if (this.index >= this.queue.elements.length)
|
|
178
188
|
throw new Error("cannot delete after last element")
|
|
179
189
|
this.queue.elements.splice(this.index, 1)
|
|
190
|
+
this.queue.adjustPointers(this, this.index, "delete")
|
|
180
191
|
this.queue.notify("write", { start: this.index, end: this.index, op: "delete" })
|
|
181
192
|
}
|
|
182
193
|
}
|
|
@@ -193,6 +204,15 @@ export class Queue<T extends QueueElement> extends EventEmitter {
|
|
|
193
204
|
silent (silence: boolean) {
|
|
194
205
|
this.silence = silence
|
|
195
206
|
}
|
|
207
|
+
silently<R> (fn: () => R): R {
|
|
208
|
+
this.silence = true
|
|
209
|
+
try {
|
|
210
|
+
return fn()
|
|
211
|
+
}
|
|
212
|
+
finally {
|
|
213
|
+
this.silence = false
|
|
214
|
+
}
|
|
215
|
+
}
|
|
196
216
|
notify (event: string, info: any) {
|
|
197
217
|
if (!this.silence)
|
|
198
218
|
this.emit(event, info)
|
|
@@ -207,6 +227,24 @@ export class Queue<T extends QueueElement> extends EventEmitter {
|
|
|
207
227
|
throw new Error("pointer does not exist")
|
|
208
228
|
this.pointers.delete(name)
|
|
209
229
|
}
|
|
230
|
+
|
|
231
|
+
/* adjust all sibling pointer positions (after insert/delete splice)
|
|
232
|
+
NOTICE: for insert, pointers AT the index are shifted forward to preserve
|
|
233
|
+
their pointer-to-element binding; for delete, pointers AT the index are
|
|
234
|
+
intentionally NOT adjusted, causing them to silently advance to the next
|
|
235
|
+
element (which shifted into the deleted position). */
|
|
236
|
+
adjustPointers (exclude: QueuePointer<T>, index: number, op: "insert" | "delete"): void {
|
|
237
|
+
for (const pointer of this.pointers.values()) {
|
|
238
|
+
if (pointer === exclude)
|
|
239
|
+
continue
|
|
240
|
+
const pos = pointer.position()
|
|
241
|
+
if (op === "insert" && pos >= index)
|
|
242
|
+
pointer.position(pos + 1)
|
|
243
|
+
else if (op === "delete" && pos > index)
|
|
244
|
+
pointer.position(pos - 1)
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
|
|
210
248
|
trim (): void {
|
|
211
249
|
/* determine minimum pointer position */
|
|
212
250
|
let min = this.elements.length
|
|
@@ -227,6 +265,11 @@ export class Queue<T extends QueueElement> extends EventEmitter {
|
|
|
227
265
|
this.notify("write", { start: 0, end: min, op: "trim" })
|
|
228
266
|
}
|
|
229
267
|
}
|
|
268
|
+
clear (): void {
|
|
269
|
+
this.elements.length = 0
|
|
270
|
+
for (const pointer of this.pointers.values())
|
|
271
|
+
pointer.position(0)
|
|
272
|
+
}
|
|
230
273
|
}
|
|
231
274
|
|
|
232
275
|
/* meta store */
|