speechflow 2.0.0 → 2.0.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.
Files changed (134) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +4 -4
  3. package/package.json +2 -2
  4. package/speechflow-cli/dst/speechflow-main-api.js.map +1 -1
  5. package/speechflow-cli/dst/speechflow-main-cli.js +1 -0
  6. package/speechflow-cli/dst/speechflow-main-cli.js.map +1 -1
  7. package/speechflow-cli/dst/speechflow-main-graph.js +2 -4
  8. package/speechflow-cli/dst/speechflow-main-graph.js.map +1 -1
  9. package/speechflow-cli/dst/speechflow-main-nodes.js +1 -0
  10. package/speechflow-cli/dst/speechflow-main-nodes.js.map +1 -1
  11. package/speechflow-cli/dst/speechflow-node-a2a-compressor-wt.js +1 -0
  12. package/speechflow-cli/dst/speechflow-node-a2a-compressor-wt.js.map +1 -1
  13. package/speechflow-cli/dst/speechflow-node-a2a-compressor.js +7 -9
  14. package/speechflow-cli/dst/speechflow-node-a2a-compressor.js.map +1 -1
  15. package/speechflow-cli/dst/speechflow-node-a2a-expander-wt.js +1 -0
  16. package/speechflow-cli/dst/speechflow-node-a2a-expander-wt.js.map +1 -1
  17. package/speechflow-cli/dst/speechflow-node-a2a-expander.js +8 -9
  18. package/speechflow-cli/dst/speechflow-node-a2a-expander.js.map +1 -1
  19. package/speechflow-cli/dst/speechflow-node-a2a-filler.js +2 -0
  20. package/speechflow-cli/dst/speechflow-node-a2a-filler.js.map +1 -1
  21. package/speechflow-cli/dst/speechflow-node-a2a-gender.js +1 -1
  22. package/speechflow-cli/dst/speechflow-node-a2a-gender.js.map +1 -1
  23. package/speechflow-cli/dst/speechflow-node-a2a-meter.js +1 -1
  24. package/speechflow-cli/dst/speechflow-node-a2a-pitch.js +11 -9
  25. package/speechflow-cli/dst/speechflow-node-a2a-pitch.js.map +1 -1
  26. package/speechflow-cli/dst/speechflow-node-a2a-rnnoise-wt.js +1 -0
  27. package/speechflow-cli/dst/speechflow-node-a2a-rnnoise-wt.js.map +1 -1
  28. package/speechflow-cli/dst/speechflow-node-a2a-rnnoise.js.map +1 -1
  29. package/speechflow-cli/dst/speechflow-node-a2a-speex.js +4 -2
  30. package/speechflow-cli/dst/speechflow-node-a2a-speex.js.map +1 -1
  31. package/speechflow-cli/dst/speechflow-node-a2a-vad.js +19 -22
  32. package/speechflow-cli/dst/speechflow-node-a2a-vad.js.map +1 -1
  33. package/speechflow-cli/dst/speechflow-node-a2a-wav.js +7 -0
  34. package/speechflow-cli/dst/speechflow-node-a2a-wav.js.map +1 -1
  35. package/speechflow-cli/dst/speechflow-node-a2t-amazon.d.ts +0 -1
  36. package/speechflow-cli/dst/speechflow-node-a2t-amazon.js +2 -11
  37. package/speechflow-cli/dst/speechflow-node-a2t-amazon.js.map +1 -1
  38. package/speechflow-cli/dst/speechflow-node-a2t-google.d.ts +0 -1
  39. package/speechflow-cli/dst/speechflow-node-a2t-google.js +0 -6
  40. package/speechflow-cli/dst/speechflow-node-a2t-google.js.map +1 -1
  41. package/speechflow-cli/dst/speechflow-node-a2t-openai.js +6 -1
  42. package/speechflow-cli/dst/speechflow-node-a2t-openai.js.map +1 -1
  43. package/speechflow-cli/dst/speechflow-node-t2a-amazon.d.ts +1 -1
  44. package/speechflow-cli/dst/speechflow-node-t2a-amazon.js +27 -7
  45. package/speechflow-cli/dst/speechflow-node-t2a-amazon.js.map +1 -1
  46. package/speechflow-cli/dst/speechflow-node-t2a-elevenlabs.d.ts +1 -1
  47. package/speechflow-cli/dst/speechflow-node-t2a-elevenlabs.js +5 -3
  48. package/speechflow-cli/dst/speechflow-node-t2a-elevenlabs.js.map +1 -1
  49. package/speechflow-cli/dst/speechflow-node-t2a-google.js +1 -4
  50. package/speechflow-cli/dst/speechflow-node-t2a-google.js.map +1 -1
  51. package/speechflow-cli/dst/speechflow-node-t2a-kokoro.d.ts +1 -1
  52. package/speechflow-cli/dst/speechflow-node-t2a-kokoro.js +27 -6
  53. package/speechflow-cli/dst/speechflow-node-t2a-kokoro.js.map +1 -1
  54. package/speechflow-cli/dst/speechflow-node-t2a-openai.js +1 -4
  55. package/speechflow-cli/dst/speechflow-node-t2a-openai.js.map +1 -1
  56. package/speechflow-cli/dst/speechflow-node-t2a-supertonic.js +15 -4
  57. package/speechflow-cli/dst/speechflow-node-t2a-supertonic.js.map +1 -1
  58. package/speechflow-cli/dst/speechflow-node-t2t-amazon.js +0 -2
  59. package/speechflow-cli/dst/speechflow-node-t2t-amazon.js.map +1 -1
  60. package/speechflow-cli/dst/speechflow-node-t2t-deepl.js.map +1 -1
  61. package/speechflow-cli/dst/speechflow-node-t2t-google.js.map +1 -1
  62. package/speechflow-cli/dst/speechflow-node-t2t-opus.js +18 -16
  63. package/speechflow-cli/dst/speechflow-node-t2t-opus.js.map +1 -1
  64. package/speechflow-cli/dst/speechflow-node-t2t-punctuation.js +1 -1
  65. package/speechflow-cli/dst/speechflow-node-t2t-spellcheck.js +1 -1
  66. package/speechflow-cli/dst/speechflow-node-t2t-subtitle.js +5 -2
  67. package/speechflow-cli/dst/speechflow-node-t2t-subtitle.js.map +1 -1
  68. package/speechflow-cli/dst/speechflow-node-t2t-summary.js +1 -1
  69. package/speechflow-cli/dst/speechflow-node-t2t-summary.js.map +1 -1
  70. package/speechflow-cli/dst/speechflow-node-x2x-filter.js +2 -0
  71. package/speechflow-cli/dst/speechflow-node-x2x-filter.js.map +1 -1
  72. package/speechflow-cli/dst/speechflow-node-xio-exec.js +1 -0
  73. package/speechflow-cli/dst/speechflow-node-xio-exec.js.map +1 -1
  74. package/speechflow-cli/dst/speechflow-node-xio-file.js +3 -5
  75. package/speechflow-cli/dst/speechflow-node-xio-file.js.map +1 -1
  76. package/speechflow-cli/dst/speechflow-node-xio-mqtt.js.map +1 -1
  77. package/speechflow-cli/dst/speechflow-node-xio-vban.js.map +1 -1
  78. package/speechflow-cli/dst/speechflow-node-xio-webrtc.js +2 -0
  79. package/speechflow-cli/dst/speechflow-node-xio-webrtc.js.map +1 -1
  80. package/speechflow-cli/dst/speechflow-node-xio-websocket.js +9 -9
  81. package/speechflow-cli/dst/speechflow-node-xio-websocket.js.map +1 -1
  82. package/speechflow-cli/dst/speechflow-util-audio.js +4 -0
  83. package/speechflow-cli/dst/speechflow-util-audio.js.map +1 -1
  84. package/speechflow-cli/dst/speechflow-util-queue.js +2 -1
  85. package/speechflow-cli/dst/speechflow-util-queue.js.map +1 -1
  86. package/speechflow-cli/dst/speechflow-util.js +1 -0
  87. package/speechflow-cli/dst/speechflow-util.js.map +1 -1
  88. package/speechflow-cli/package.json +10 -10
  89. package/speechflow-cli/src/speechflow-main-api.ts +16 -16
  90. package/speechflow-cli/src/speechflow-main-cli.ts +1 -0
  91. package/speechflow-cli/src/speechflow-main-graph.ts +7 -9
  92. package/speechflow-cli/src/speechflow-main-nodes.ts +1 -0
  93. package/speechflow-cli/src/speechflow-node-a2a-compressor-wt.ts +1 -0
  94. package/speechflow-cli/src/speechflow-node-a2a-compressor.ts +8 -10
  95. package/speechflow-cli/src/speechflow-node-a2a-expander-wt.ts +1 -0
  96. package/speechflow-cli/src/speechflow-node-a2a-expander.ts +9 -10
  97. package/speechflow-cli/src/speechflow-node-a2a-filler.ts +2 -0
  98. package/speechflow-cli/src/speechflow-node-a2a-gender.ts +3 -3
  99. package/speechflow-cli/src/speechflow-node-a2a-meter.ts +2 -2
  100. package/speechflow-cli/src/speechflow-node-a2a-pitch.ts +11 -9
  101. package/speechflow-cli/src/speechflow-node-a2a-rnnoise-wt.ts +1 -0
  102. package/speechflow-cli/src/speechflow-node-a2a-rnnoise.ts +1 -1
  103. package/speechflow-cli/src/speechflow-node-a2a-speex.ts +5 -3
  104. package/speechflow-cli/src/speechflow-node-a2a-vad.ts +20 -23
  105. package/speechflow-cli/src/speechflow-node-a2a-wav.ts +7 -0
  106. package/speechflow-cli/src/speechflow-node-a2t-amazon.ts +6 -18
  107. package/speechflow-cli/src/speechflow-node-a2t-google.ts +4 -11
  108. package/speechflow-cli/src/speechflow-node-a2t-openai.ts +12 -7
  109. package/speechflow-cli/src/speechflow-node-t2a-amazon.ts +32 -10
  110. package/speechflow-cli/src/speechflow-node-t2a-elevenlabs.ts +6 -4
  111. package/speechflow-cli/src/speechflow-node-t2a-google.ts +1 -4
  112. package/speechflow-cli/src/speechflow-node-t2a-kokoro.ts +33 -10
  113. package/speechflow-cli/src/speechflow-node-t2a-openai.ts +1 -4
  114. package/speechflow-cli/src/speechflow-node-t2a-supertonic.ts +15 -6
  115. package/speechflow-cli/src/speechflow-node-t2t-amazon.ts +1 -3
  116. package/speechflow-cli/src/speechflow-node-t2t-deepl.ts +2 -2
  117. package/speechflow-cli/src/speechflow-node-t2t-google.ts +1 -1
  118. package/speechflow-cli/src/speechflow-node-t2t-opus.ts +19 -18
  119. package/speechflow-cli/src/speechflow-node-t2t-punctuation.ts +1 -1
  120. package/speechflow-cli/src/speechflow-node-t2t-spellcheck.ts +1 -1
  121. package/speechflow-cli/src/speechflow-node-t2t-subtitle.ts +5 -2
  122. package/speechflow-cli/src/speechflow-node-t2t-summary.ts +1 -1
  123. package/speechflow-cli/src/speechflow-node-x2x-filter.ts +2 -0
  124. package/speechflow-cli/src/speechflow-node-xio-exec.ts +1 -0
  125. package/speechflow-cli/src/speechflow-node-xio-file.ts +3 -5
  126. package/speechflow-cli/src/speechflow-node-xio-mqtt.ts +2 -2
  127. package/speechflow-cli/src/speechflow-node-xio-vban.ts +5 -5
  128. package/speechflow-cli/src/speechflow-node-xio-webrtc.ts +2 -0
  129. package/speechflow-cli/src/speechflow-node-xio-websocket.ts +9 -9
  130. package/speechflow-cli/src/speechflow-util-audio.ts +5 -0
  131. package/speechflow-cli/src/speechflow-util-queue.ts +3 -3
  132. package/speechflow-cli/src/speechflow-util.ts +1 -0
  133. package/speechflow-ui-db/package.json +4 -4
  134. package/speechflow-ui-st/package.json +4 -4
@@ -15,7 +15,7 @@ import ReconnWebSocket, { ErrorEvent } from "@opensumi/reconnecting-websocket"
15
15
  import SpeechFlowNode, { SpeechFlowChunk } from "./speechflow-node"
16
16
  import * as util from "./speechflow-util"
17
17
 
18
- /* SpeechFlow node for Websocket networking */
18
+ /* SpeechFlow node for WebSocket networking */
19
19
  export default class SpeechFlowNodeXIOWebSocket extends SpeechFlowNode {
20
20
  /* declare official node name */
21
21
  public static name = "xio-websocket"
@@ -38,9 +38,9 @@ export default class SpeechFlowNodeXIOWebSocket extends SpeechFlowNode {
38
38
 
39
39
  /* sanity check parameters */
40
40
  if (this.params.listen !== "" && this.params.connect !== "")
41
- throw new Error("Websocket node cannot listen and connect at the same time")
41
+ throw new Error("WebSocket node cannot listen and connect at the same time")
42
42
  else if (this.params.listen === "" && this.params.connect === "")
43
- throw new Error("Websocket node requires either listen or connect mode")
43
+ throw new Error("WebSocket node requires either listen or connect mode")
44
44
 
45
45
  /* declare node input/output format */
46
46
  if (this.params.mode === "rw") {
@@ -121,7 +121,7 @@ export default class SpeechFlowNodeXIOWebSocket extends SpeechFlowNode {
121
121
  else if (chunk.type !== self.params.type)
122
122
  callback(new Error(`written chunk is not of ${self.params.type} type`))
123
123
  else if (websockets.size === 0)
124
- callback(new Error("still no Websocket connections available"))
124
+ callback(new Error("still no WebSocket connections available"))
125
125
  else {
126
126
  const data = util.streamChunkEncode(chunk)
127
127
  const results: Promise<void>[] = []
@@ -168,10 +168,10 @@ export default class SpeechFlowNodeXIOWebSocket extends SpeechFlowNode {
168
168
  connectionTimeout: 4000,
169
169
  minUptime: 5000
170
170
  })
171
- this.client.addEventListener("open", (ev) => {
171
+ this.client.addEventListener("open", (_ev) => {
172
172
  this.log("info", `connection opened to URL ${this.params.connect}`)
173
173
  })
174
- this.client.addEventListener("close", (ev) => {
174
+ this.client.addEventListener("close", (_ev) => {
175
175
  this.log("info", `connection closed to URL ${this.params.connect}`)
176
176
  })
177
177
  this.client.addEventListener("error", (ev: ErrorEvent) => {
@@ -208,7 +208,7 @@ export default class SpeechFlowNodeXIOWebSocket extends SpeechFlowNode {
208
208
  else if (chunk.type !== self.params.type)
209
209
  callback(new Error(`written chunk is not of ${self.params.type} type`))
210
210
  else if (!self.client!.OPEN)
211
- callback(new Error("still no Websocket connection available"))
211
+ callback(new Error("still no WebSocket connection available"))
212
212
  else {
213
213
  const data = util.streamChunkEncode(chunk)
214
214
  self.client!.send(data)
@@ -234,7 +234,7 @@ export default class SpeechFlowNodeXIOWebSocket extends SpeechFlowNode {
234
234
 
235
235
  /* close node */
236
236
  async close () {
237
- /* close Websocket server */
237
+ /* close WebSocket server */
238
238
  if (this.server !== null) {
239
239
  await new Promise<void>((resolve, reject) => {
240
240
  this.server!.close((error) => {
@@ -245,7 +245,7 @@ export default class SpeechFlowNodeXIOWebSocket extends SpeechFlowNode {
245
245
  this.server = null
246
246
  }
247
247
 
248
- /* close Websocket client */
248
+ /* close WebSocket client */
249
249
  if (this.client !== null) {
250
250
  this.client.close()
251
251
  this.client = null
@@ -162,6 +162,9 @@ export function updateEnvelopeForChannel (
162
162
  else
163
163
  currentEnv = alphaR * currentEnv + (1 - alphaR) * det
164
164
  }
165
+
166
+ /* store updated envelope value back */
167
+ env[chan] = currentEnv
165
168
  return Math.sqrt(Math.max(currentEnv, 1e-12))
166
169
  }
167
170
 
@@ -173,6 +176,7 @@ export function dB2lin (db: number): number {
173
176
  return Math.pow(10, db / 20)
174
177
  }
175
178
 
179
+ /* Web Audio API wrapper class */
176
180
  export class WebAudio {
177
181
  /* internal state */
178
182
  public audioContext: AudioContext
@@ -281,6 +285,7 @@ export class WebAudio {
281
285
  })
282
286
  }
283
287
 
288
+ /* destroy object */
284
289
  public async destroy (): Promise<void> {
285
290
  /* reject all pending promises */
286
291
  shield(() => {
@@ -6,10 +6,10 @@
6
6
 
7
7
  /* standard dependencies */
8
8
  import { EventEmitter } from "node:events"
9
- import { type, type Type } from "arktype"
10
9
 
11
10
  /* external dependencies */
12
- import { Duration } from "luxon"
11
+ import { type, type Type } from "arktype"
12
+ import { Duration } from "luxon"
13
13
  import * as IntervalTree from "node-interval-tree"
14
14
 
15
15
  /* internal dependencies */
@@ -289,7 +289,7 @@ export class AsyncQueue<T> {
289
289
  if (this.queue.length > 0)
290
290
  return this.queue.shift()!
291
291
  else
292
- return new Promise<T>((resolve, reject) => this.resolvers.push({ resolve, reject }))
292
+ return new Promise<T>((resolve, reject) => { this.resolvers.push({ resolve, reject }) })
293
293
  }
294
294
  empty () {
295
295
  return this.queue.length === 0
@@ -4,6 +4,7 @@
4
4
  ** Licensed under GPL 3.0 <https://spdx.org/licenses/GPL-3.0-only>
5
5
  */
6
6
 
7
+ /* re-export utility modules */
7
8
  export * from "./speechflow-util-audio"
8
9
  export * from "./speechflow-util-error"
9
10
  export * from "./speechflow-util-stream"
@@ -24,10 +24,10 @@
24
24
  "@rse/stx": "1.1.2"
25
25
  },
26
26
  "devDependencies": {
27
- "vite": "7.2.7",
28
- "typescript-eslint": "8.49.0",
29
- "@typescript-eslint/eslint-plugin": "8.49.0",
30
- "@typescript-eslint/parser": "8.49.0",
27
+ "vite": "7.3.0",
28
+ "typescript-eslint": "8.50.0",
29
+ "@typescript-eslint/eslint-plugin": "8.50.0",
30
+ "@typescript-eslint/parser": "8.50.0",
31
31
  "@vitejs/plugin-vue": "6.0.3",
32
32
  "@rollup/plugin-yaml": "4.1.2",
33
33
  "vite-plugin-node-polyfills": "0.24.0",
@@ -26,10 +26,10 @@
26
26
  "animejs": "4.2.2"
27
27
  },
28
28
  "devDependencies": {
29
- "vite": "7.2.7",
30
- "typescript-eslint": "8.49.0",
31
- "@typescript-eslint/eslint-plugin": "8.49.0",
32
- "@typescript-eslint/parser": "8.49.0",
29
+ "vite": "7.3.0",
30
+ "typescript-eslint": "8.50.0",
31
+ "@typescript-eslint/eslint-plugin": "8.50.0",
32
+ "@typescript-eslint/parser": "8.50.0",
33
33
  "@vitejs/plugin-vue": "6.0.3",
34
34
  "@rollup/plugin-yaml": "4.1.2",
35
35
  "vite-plugin-node-polyfills": "0.24.0",