speechflow 2.2.1 → 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.
Files changed (242) hide show
  1. package/{etc/claude.md → AGENTS.md} +8 -3
  2. package/CHANGELOG.md +98 -1
  3. package/README.md +28 -4
  4. package/etc/speechflow.yaml +3 -1
  5. package/etc/stx.conf +1 -1
  6. package/package.json +6 -6
  7. package/speechflow-cli/dst/speechflow-main-api.d.ts +2 -1
  8. package/speechflow-cli/dst/speechflow-main-api.js +57 -16
  9. package/speechflow-cli/dst/speechflow-main-api.js.map +1 -1
  10. package/speechflow-cli/dst/speechflow-main-cli.js +2 -2
  11. package/speechflow-cli/dst/speechflow-main-config.js +1 -1
  12. package/speechflow-cli/dst/speechflow-main-graph.js +55 -21
  13. package/speechflow-cli/dst/speechflow-main-graph.js.map +1 -1
  14. package/speechflow-cli/dst/speechflow-main-nodes.js +1 -1
  15. package/speechflow-cli/dst/speechflow-main-status.js +6 -3
  16. package/speechflow-cli/dst/speechflow-main-status.js.map +1 -1
  17. package/speechflow-cli/dst/speechflow-main.js +1 -1
  18. package/speechflow-cli/dst/speechflow-node-a2a-compressor-wt.js +17 -19
  19. package/speechflow-cli/dst/speechflow-node-a2a-compressor-wt.js.map +1 -1
  20. package/speechflow-cli/dst/speechflow-node-a2a-compressor.js +25 -8
  21. package/speechflow-cli/dst/speechflow-node-a2a-compressor.js.map +1 -1
  22. package/speechflow-cli/dst/speechflow-node-a2a-expander-wt.js +16 -13
  23. package/speechflow-cli/dst/speechflow-node-a2a-expander-wt.js.map +1 -1
  24. package/speechflow-cli/dst/speechflow-node-a2a-expander.js +6 -5
  25. package/speechflow-cli/dst/speechflow-node-a2a-expander.js.map +1 -1
  26. package/speechflow-cli/dst/speechflow-node-a2a-ffmpeg.js +7 -7
  27. package/speechflow-cli/dst/speechflow-node-a2a-ffmpeg.js.map +1 -1
  28. package/speechflow-cli/dst/speechflow-node-a2a-filler.js +7 -4
  29. package/speechflow-cli/dst/speechflow-node-a2a-filler.js.map +1 -1
  30. package/speechflow-cli/dst/speechflow-node-a2a-gain.js +1 -1
  31. package/speechflow-cli/dst/speechflow-node-a2a-gender.js +21 -16
  32. package/speechflow-cli/dst/speechflow-node-a2a-gender.js.map +1 -1
  33. package/speechflow-cli/dst/speechflow-node-a2a-gtcrn-wt.js +1 -1
  34. package/speechflow-cli/dst/speechflow-node-a2a-gtcrn.js +33 -11
  35. package/speechflow-cli/dst/speechflow-node-a2a-gtcrn.js.map +1 -1
  36. package/speechflow-cli/dst/speechflow-node-a2a-meter.js +2 -2
  37. package/speechflow-cli/dst/speechflow-node-a2a-meter.js.map +1 -1
  38. package/speechflow-cli/dst/speechflow-node-a2a-mute.js +1 -1
  39. package/speechflow-cli/dst/speechflow-node-a2a-pitch.js +4 -3
  40. package/speechflow-cli/dst/speechflow-node-a2a-pitch.js.map +1 -1
  41. package/speechflow-cli/dst/speechflow-node-a2a-rnnoise-wt.js +2 -2
  42. package/speechflow-cli/dst/speechflow-node-a2a-rnnoise-wt.js.map +1 -1
  43. package/speechflow-cli/dst/speechflow-node-a2a-rnnoise.js +19 -11
  44. package/speechflow-cli/dst/speechflow-node-a2a-rnnoise.js.map +1 -1
  45. package/speechflow-cli/dst/speechflow-node-a2a-speex.js +8 -8
  46. package/speechflow-cli/dst/speechflow-node-a2a-speex.js.map +1 -1
  47. package/speechflow-cli/dst/speechflow-node-a2a-vad.js +33 -29
  48. package/speechflow-cli/dst/speechflow-node-a2a-vad.js.map +1 -1
  49. package/speechflow-cli/dst/speechflow-node-a2a-wav.js +6 -5
  50. package/speechflow-cli/dst/speechflow-node-a2a-wav.js.map +1 -1
  51. package/speechflow-cli/dst/speechflow-node-a2t-amazon.d.ts +2 -1
  52. package/speechflow-cli/dst/speechflow-node-a2t-amazon.js +42 -23
  53. package/speechflow-cli/dst/speechflow-node-a2t-amazon.js.map +1 -1
  54. package/speechflow-cli/dst/speechflow-node-a2t-deepgram.js +13 -5
  55. package/speechflow-cli/dst/speechflow-node-a2t-deepgram.js.map +1 -1
  56. package/speechflow-cli/dst/speechflow-node-a2t-google.d.ts +1 -0
  57. package/speechflow-cli/dst/speechflow-node-a2t-google.js +8 -2
  58. package/speechflow-cli/dst/speechflow-node-a2t-google.js.map +1 -1
  59. package/speechflow-cli/dst/speechflow-node-a2t-openai.js +33 -27
  60. package/speechflow-cli/dst/speechflow-node-a2t-openai.js.map +1 -1
  61. package/speechflow-cli/dst/speechflow-node-t2a-amazon.js +16 -5
  62. package/speechflow-cli/dst/speechflow-node-t2a-amazon.js.map +1 -1
  63. package/speechflow-cli/dst/speechflow-node-t2a-elevenlabs.js +17 -5
  64. package/speechflow-cli/dst/speechflow-node-t2a-elevenlabs.js.map +1 -1
  65. package/speechflow-cli/dst/speechflow-node-t2a-google.js +17 -5
  66. package/speechflow-cli/dst/speechflow-node-t2a-google.js.map +1 -1
  67. package/speechflow-cli/dst/speechflow-node-t2a-kitten.d.ts +15 -0
  68. package/speechflow-cli/dst/speechflow-node-t2a-kitten.js +194 -0
  69. package/speechflow-cli/dst/speechflow-node-t2a-kitten.js.map +1 -0
  70. package/speechflow-cli/dst/speechflow-node-t2a-kokoro.js +24 -10
  71. package/speechflow-cli/dst/speechflow-node-t2a-kokoro.js.map +1 -1
  72. package/speechflow-cli/dst/speechflow-node-t2a-openai.js +17 -5
  73. package/speechflow-cli/dst/speechflow-node-t2a-openai.js.map +1 -1
  74. package/speechflow-cli/dst/speechflow-node-t2a-supertonic.js +22 -7
  75. package/speechflow-cli/dst/speechflow-node-t2a-supertonic.js.map +1 -1
  76. package/speechflow-cli/dst/speechflow-node-t2t-amazon.js +1 -1
  77. package/speechflow-cli/dst/speechflow-node-t2t-deepl.js +1 -1
  78. package/speechflow-cli/dst/speechflow-node-t2t-format.js +1 -1
  79. package/speechflow-cli/dst/speechflow-node-t2t-google.js +4 -2
  80. package/speechflow-cli/dst/speechflow-node-t2t-google.js.map +1 -1
  81. package/speechflow-cli/dst/speechflow-node-t2t-modify.js +1 -1
  82. package/speechflow-cli/dst/speechflow-node-t2t-opus.js +10 -2
  83. package/speechflow-cli/dst/speechflow-node-t2t-opus.js.map +1 -1
  84. package/speechflow-cli/dst/speechflow-node-t2t-profanity.js +1 -1
  85. package/speechflow-cli/dst/speechflow-node-t2t-punctuation.js +1 -1
  86. package/speechflow-cli/dst/speechflow-node-t2t-sentence.d.ts +3 -0
  87. package/speechflow-cli/dst/speechflow-node-t2t-sentence.js +160 -57
  88. package/speechflow-cli/dst/speechflow-node-t2t-sentence.js.map +1 -1
  89. package/speechflow-cli/dst/speechflow-node-t2t-spellcheck.js +1 -1
  90. package/speechflow-cli/dst/speechflow-node-t2t-subtitle.js +34 -14
  91. package/speechflow-cli/dst/speechflow-node-t2t-subtitle.js.map +1 -1
  92. package/speechflow-cli/dst/speechflow-node-t2t-summary.js +3 -3
  93. package/speechflow-cli/dst/speechflow-node-t2t-summary.js.map +1 -1
  94. package/speechflow-cli/dst/speechflow-node-t2t-translate.js +1 -1
  95. package/speechflow-cli/dst/speechflow-node-x2x-filter.js +3 -2
  96. package/speechflow-cli/dst/speechflow-node-x2x-filter.js.map +1 -1
  97. package/speechflow-cli/dst/speechflow-node-x2x-trace.js +1 -1
  98. package/speechflow-cli/dst/speechflow-node-xio-device.js +18 -7
  99. package/speechflow-cli/dst/speechflow-node-xio-device.js.map +1 -1
  100. package/speechflow-cli/dst/speechflow-node-xio-exec.js +27 -15
  101. package/speechflow-cli/dst/speechflow-node-xio-exec.js.map +1 -1
  102. package/speechflow-cli/dst/speechflow-node-xio-file.js +13 -7
  103. package/speechflow-cli/dst/speechflow-node-xio-file.js.map +1 -1
  104. package/speechflow-cli/dst/speechflow-node-xio-mqtt.js +25 -12
  105. package/speechflow-cli/dst/speechflow-node-xio-mqtt.js.map +1 -1
  106. package/speechflow-cli/dst/speechflow-node-xio-vban.js +32 -20
  107. package/speechflow-cli/dst/speechflow-node-xio-vban.js.map +1 -1
  108. package/speechflow-cli/dst/speechflow-node-xio-webrtc.d.ts +1 -0
  109. package/speechflow-cli/dst/speechflow-node-xio-webrtc.js +84 -63
  110. package/speechflow-cli/dst/speechflow-node-xio-webrtc.js.map +1 -1
  111. package/speechflow-cli/dst/speechflow-node-xio-websocket.d.ts +1 -0
  112. package/speechflow-cli/dst/speechflow-node-xio-websocket.js +75 -20
  113. package/speechflow-cli/dst/speechflow-node-xio-websocket.js.map +1 -1
  114. package/speechflow-cli/dst/speechflow-node.js +5 -7
  115. package/speechflow-cli/dst/speechflow-node.js.map +1 -1
  116. package/speechflow-cli/dst/speechflow-util-audio-wt.js +31 -5
  117. package/speechflow-cli/dst/speechflow-util-audio-wt.js.map +1 -1
  118. package/speechflow-cli/dst/speechflow-util-audio.d.ts +1 -1
  119. package/speechflow-cli/dst/speechflow-util-audio.js +28 -15
  120. package/speechflow-cli/dst/speechflow-util-audio.js.map +1 -1
  121. package/speechflow-cli/dst/speechflow-util-error.d.ts +1 -1
  122. package/speechflow-cli/dst/speechflow-util-error.js +2 -2
  123. package/speechflow-cli/dst/speechflow-util-error.js.map +1 -1
  124. package/speechflow-cli/dst/speechflow-util-llm.js +13 -3
  125. package/speechflow-cli/dst/speechflow-util-llm.js.map +1 -1
  126. package/speechflow-cli/dst/speechflow-util-misc.d.ts +3 -2
  127. package/speechflow-cli/dst/speechflow-util-misc.js +63 -6
  128. package/speechflow-cli/dst/speechflow-util-misc.js.map +1 -1
  129. package/speechflow-cli/dst/speechflow-util-queue.d.ts +9 -17
  130. package/speechflow-cli/dst/speechflow-util-queue.js +98 -78
  131. package/speechflow-cli/dst/speechflow-util-queue.js.map +1 -1
  132. package/speechflow-cli/dst/speechflow-util-stream.d.ts +1 -1
  133. package/speechflow-cli/dst/speechflow-util-stream.js +35 -8
  134. package/speechflow-cli/dst/speechflow-util-stream.js.map +1 -1
  135. package/speechflow-cli/dst/speechflow-util.js +1 -1
  136. package/speechflow-cli/dst/speechflow.d.ts +1 -1
  137. package/speechflow-cli/dst/speechflow.js +1 -1
  138. package/speechflow-cli/etc/eslint.mjs +1 -1
  139. package/speechflow-cli/etc/oxlint.jsonc +2 -1
  140. package/speechflow-cli/etc/stx.conf +8 -2
  141. package/speechflow-cli/package.d/@ericedouard+vad-node-realtime+0.2.0.patch +2 -1
  142. package/speechflow-cli/package.d/@typescript-eslint+typescript-estree+8.57.2.patch +12 -0
  143. package/speechflow-cli/package.d/kitten-tts-js+0.1.2.patch +24 -0
  144. package/speechflow-cli/package.d/speex-resampler+3.0.1.patch +56 -0
  145. package/speechflow-cli/package.json +40 -30
  146. package/speechflow-cli/src/lib.d.ts +19 -1
  147. package/speechflow-cli/src/speechflow-main-api.ts +64 -19
  148. package/speechflow-cli/src/speechflow-main-cli.ts +2 -2
  149. package/speechflow-cli/src/speechflow-main-config.ts +1 -1
  150. package/speechflow-cli/src/speechflow-main-graph.ts +56 -22
  151. package/speechflow-cli/src/speechflow-main-nodes.ts +1 -1
  152. package/speechflow-cli/src/speechflow-main-status.ts +6 -3
  153. package/speechflow-cli/src/speechflow-main.ts +1 -1
  154. package/speechflow-cli/src/speechflow-node-a2a-compressor-wt.ts +19 -20
  155. package/speechflow-cli/src/speechflow-node-a2a-compressor.ts +31 -13
  156. package/speechflow-cli/src/speechflow-node-a2a-expander-wt.ts +17 -13
  157. package/speechflow-cli/src/speechflow-node-a2a-expander.ts +6 -5
  158. package/speechflow-cli/src/speechflow-node-a2a-ffmpeg.ts +9 -8
  159. package/speechflow-cli/src/speechflow-node-a2a-filler.ts +8 -4
  160. package/speechflow-cli/src/speechflow-node-a2a-gain.ts +1 -1
  161. package/speechflow-cli/src/speechflow-node-a2a-gender.ts +22 -18
  162. package/speechflow-cli/src/speechflow-node-a2a-gtcrn-wt.ts +1 -1
  163. package/speechflow-cli/src/speechflow-node-a2a-gtcrn.ts +43 -16
  164. package/speechflow-cli/src/speechflow-node-a2a-meter.ts +2 -2
  165. package/speechflow-cli/src/speechflow-node-a2a-mute.ts +1 -1
  166. package/speechflow-cli/src/speechflow-node-a2a-pitch.ts +4 -3
  167. package/speechflow-cli/src/speechflow-node-a2a-rnnoise-wt.ts +2 -2
  168. package/speechflow-cli/src/speechflow-node-a2a-rnnoise.ts +24 -12
  169. package/speechflow-cli/src/speechflow-node-a2a-speex.ts +10 -9
  170. package/speechflow-cli/src/speechflow-node-a2a-vad.ts +38 -31
  171. package/speechflow-cli/src/speechflow-node-a2a-wav.ts +6 -5
  172. package/speechflow-cli/src/speechflow-node-a2t-amazon.ts +47 -25
  173. package/speechflow-cli/src/speechflow-node-a2t-deepgram.ts +17 -6
  174. package/speechflow-cli/src/speechflow-node-a2t-google.ts +12 -4
  175. package/speechflow-cli/src/speechflow-node-a2t-openai.ts +39 -31
  176. package/speechflow-cli/src/speechflow-node-t2a-amazon.ts +16 -5
  177. package/speechflow-cli/src/speechflow-node-t2a-elevenlabs.ts +17 -5
  178. package/speechflow-cli/src/speechflow-node-t2a-google.ts +17 -5
  179. package/speechflow-cli/src/speechflow-node-t2a-kitten.ts +178 -0
  180. package/speechflow-cli/src/speechflow-node-t2a-kokoro.ts +24 -10
  181. package/speechflow-cli/src/speechflow-node-t2a-openai.ts +17 -5
  182. package/speechflow-cli/src/speechflow-node-t2a-supertonic.ts +22 -7
  183. package/speechflow-cli/src/speechflow-node-t2t-amazon.ts +1 -1
  184. package/speechflow-cli/src/speechflow-node-t2t-deepl.ts +1 -1
  185. package/speechflow-cli/src/speechflow-node-t2t-format.ts +1 -1
  186. package/speechflow-cli/src/speechflow-node-t2t-google.ts +4 -2
  187. package/speechflow-cli/src/speechflow-node-t2t-modify.ts +1 -1
  188. package/speechflow-cli/src/speechflow-node-t2t-opus.ts +10 -2
  189. package/speechflow-cli/src/speechflow-node-t2t-profanity.ts +1 -1
  190. package/speechflow-cli/src/speechflow-node-t2t-punctuation.ts +1 -1
  191. package/speechflow-cli/src/speechflow-node-t2t-sentence.ts +215 -62
  192. package/speechflow-cli/src/speechflow-node-t2t-spellcheck.ts +1 -1
  193. package/speechflow-cli/src/speechflow-node-t2t-subtitle.ts +39 -15
  194. package/speechflow-cli/src/speechflow-node-t2t-summary.ts +3 -3
  195. package/speechflow-cli/src/speechflow-node-t2t-translate.ts +1 -1
  196. package/speechflow-cli/src/speechflow-node-x2x-filter.ts +4 -3
  197. package/speechflow-cli/src/speechflow-node-x2x-trace.ts +1 -1
  198. package/speechflow-cli/src/speechflow-node-xio-device.ts +21 -7
  199. package/speechflow-cli/src/speechflow-node-xio-exec.ts +30 -16
  200. package/speechflow-cli/src/speechflow-node-xio-file.ts +15 -7
  201. package/speechflow-cli/src/speechflow-node-xio-mqtt.ts +28 -15
  202. package/speechflow-cli/src/speechflow-node-xio-vban.ts +35 -22
  203. package/speechflow-cli/src/speechflow-node-xio-webrtc.ts +92 -70
  204. package/speechflow-cli/src/speechflow-node-xio-websocket.ts +79 -22
  205. package/speechflow-cli/src/speechflow-node.ts +7 -8
  206. package/speechflow-cli/src/speechflow-util-audio-wt.ts +46 -7
  207. package/speechflow-cli/src/speechflow-util-audio.ts +31 -17
  208. package/speechflow-cli/src/speechflow-util-error.ts +3 -3
  209. package/speechflow-cli/src/speechflow-util-llm.ts +14 -3
  210. package/speechflow-cli/src/speechflow-util-misc.ts +63 -6
  211. package/speechflow-cli/src/speechflow-util-queue.ts +103 -81
  212. package/speechflow-cli/src/speechflow-util-stream.ts +40 -8
  213. package/speechflow-cli/src/speechflow-util.ts +1 -1
  214. package/speechflow-cli/src/speechflow.ts +1 -1
  215. package/speechflow-ui-db/dst/index.html +1 -1
  216. package/speechflow-ui-db/dst/index.js +15 -15
  217. package/speechflow-ui-db/etc/eslint.mjs +1 -1
  218. package/speechflow-ui-db/etc/oxlint.jsonc +1 -1
  219. package/speechflow-ui-db/etc/stx.conf +1 -1
  220. package/speechflow-ui-db/etc/stylelint.js +1 -1
  221. package/speechflow-ui-db/etc/stylelint.yaml +1 -1
  222. package/speechflow-ui-db/etc/vite-client.mts +1 -1
  223. package/speechflow-ui-db/package.d/@typescript-eslint+typescript-estree+8.57.2.patch +12 -0
  224. package/speechflow-ui-db/package.json +22 -16
  225. package/speechflow-ui-db/src/app.styl +1 -1
  226. package/speechflow-ui-db/src/app.vue +1 -1
  227. package/speechflow-ui-db/src/index.html +1 -1
  228. package/speechflow-ui-db/src/index.ts +1 -1
  229. package/speechflow-ui-st/dst/index.html +1 -1
  230. package/speechflow-ui-st/dst/index.js +31 -31
  231. package/speechflow-ui-st/etc/eslint.mjs +1 -1
  232. package/speechflow-ui-st/etc/oxlint.jsonc +1 -1
  233. package/speechflow-ui-st/etc/stx.conf +1 -1
  234. package/speechflow-ui-st/etc/stylelint.js +1 -1
  235. package/speechflow-ui-st/etc/stylelint.yaml +1 -1
  236. package/speechflow-ui-st/etc/vite-client.mts +1 -1
  237. package/speechflow-ui-st/package.d/@typescript-eslint+typescript-estree+8.57.2.patch +12 -0
  238. package/speechflow-ui-st/package.json +23 -17
  239. package/speechflow-ui-st/src/app.styl +1 -1
  240. package/speechflow-ui-st/src/app.vue +1 -1
  241. package/speechflow-ui-st/src/index.html +1 -1
  242. package/speechflow-ui-st/src/index.ts +1 -1
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  /*
3
3
  ** SpeechFlow - Speech Processing Flow Graph
4
- ** Copyright (c) 2024-2025 Dr. Ralf S. Engelschall <rse@engelschall.com>
4
+ ** Copyright (c) 2024-2026 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
7
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
@@ -59,6 +59,45 @@ class SpeechFlowNodeT2TSentence extends speechflow_node_1.default {
59
59
  queueRecv = this.queue.pointerUse("recv");
60
60
  closing = false;
61
61
  workingOffTimer = null;
62
+ lastChunkTime = 0;
63
+ /* known abbreviations from English and German (lowercased),
64
+ which should NOT be treated as sentence boundaries */
65
+ static abbreviations = new Set([
66
+ "prof", "dr", "mr", "mrs", "ms", "jr", "sr", "st",
67
+ "vs", "etc", "ca", "bzw", "bspw", "usw", "sog", "ggf", "evtl"
68
+ ]);
69
+ /* find the first valid sentence boundary in text */
70
+ static findSentenceBoundary(text) {
71
+ for (let i = 0; i < text.length; i++) {
72
+ /* match sentence-ending punctuation (including ellipsis "..." and "…") */
73
+ const pm = /^(\.\.\.|\u2026|\.|\?|!)/.exec(text.slice(i, i + 3));
74
+ if (!pm)
75
+ continue;
76
+ const firstPunctPos = i;
77
+ i += pm[1].length - 1;
78
+ /* extract the word preceding the punctuation mark */
79
+ let j = Math.max(0, firstPunctPos - 1);
80
+ while (j >= 0 && /^[A-Za-z\u00C0-\u024F]$/.test(text[j]))
81
+ j--;
82
+ const precedingWord = text.substring(j + 1, firstPunctPos);
83
+ /* skip single-letter abbreviations (handles "U.S.", "e.g.", "i.e.", etc.) */
84
+ if (precedingWord.length === 1 && /^[A-Za-z]$/.test(precedingWord))
85
+ continue;
86
+ /* skip known multi-letter abbreviations (case-insensitive matching) */
87
+ if (SpeechFlowNodeT2TSentence.abbreviations.has(precedingWord.toLowerCase()))
88
+ continue;
89
+ /* return what follows the punctuation mark
90
+ (also skip over optional closing quotes/parentheses/brackets) */
91
+ const after = text.substring(i + 1);
92
+ const m = after.match(/^(["\u201D\u2019)\]]*)\s+([\s\S]+)$/);
93
+ if (m !== null)
94
+ return { sentence: text.substring(0, i + 1 + m[1].length), rest: m[2] };
95
+ /* found a punctuation at end of text (possibly with trailing closing chars and whitespace) */
96
+ if (/^["\u201D\u2019)\]]*\s*$/.test(after))
97
+ return { sentence: text.substring(0, i + 1) + after.replace(/\s+$/, ""), rest: "" };
98
+ }
99
+ return null;
100
+ }
62
101
  /* construct node */
63
102
  constructor(id, cfg, opts, args) {
64
103
  super(id, cfg, opts, args);
@@ -73,7 +112,7 @@ class SpeechFlowNodeT2TSentence extends speechflow_node_1.default {
73
112
  }
74
113
  /* concatenate two payloads with proper whitespacing */
75
114
  concatPayload(s1, s2) {
76
- if (!(s1.match(/\s+$/) || s2.match(/^\s+/)))
115
+ if (!(/\s+$/.test(s1) || /^\s+/.test(s2)))
77
116
  return `${s1} ${s2}`;
78
117
  else
79
118
  return `${s1}${s2}`;
@@ -82,22 +121,12 @@ class SpeechFlowNodeT2TSentence extends speechflow_node_1.default {
82
121
  async open() {
83
122
  /* clear destruction flag */
84
123
  this.closing = false;
85
- /* work off queued text frames */
86
- let workingOff = false;
87
- const workOffQueue = async () => {
88
- if (this.closing)
89
- return;
90
- /* control working off round */
91
- if (workingOff)
92
- return;
93
- workingOff = true;
94
- if (this.workingOffTimer !== null) {
95
- clearTimeout(this.workingOffTimer);
96
- this.workingOffTimer = null;
97
- }
98
- this.queue.off("write", workOffQueue);
99
- /* try to work off one or more chunks */
100
- while (!this.closing) {
124
+ /* work off queued text frames (inner processing) */
125
+ const workOffQueueInner = () => {
126
+ const maxIterations = 50;
127
+ let iterations = 0;
128
+ while (!this.closing && iterations < maxIterations) {
129
+ iterations++;
101
130
  const element = this.queueSplit.peek();
102
131
  if (element === undefined)
103
132
  break;
@@ -106,19 +135,22 @@ class SpeechFlowNodeT2TSentence extends speechflow_node_1.default {
106
135
  break;
107
136
  }
108
137
  /* skip elements already completed */
109
- if (element.type === "text-frame" && element.chunk.kind === "final" && element.complete === true) {
138
+ if (element.type === "text-frame"
139
+ && element.chunk.kind === "final"
140
+ && element.complete === true) {
110
141
  this.queueSplit.walk(+1);
111
142
  continue;
112
143
  }
113
144
  /* perform sentence splitting on input chunk */
114
145
  if (element.chunk.kind === "final") {
146
+ element.chunk = element.chunk.clone();
115
147
  const chunk = element.chunk;
116
148
  const payload = chunk.payload;
117
- const m = payload.match(/^((?:.|\r?\n)+?[.;?!])(?:\s+((?:.|\r?\n)+)|\s*)$/);
118
- if (m !== null) {
149
+ const boundary = SpeechFlowNodeT2TSentence.findSentenceBoundary(payload);
150
+ if (boundary !== null) {
119
151
  /* contains a sentence */
120
- const [, sentence, rest] = m;
121
- if (rest !== undefined && rest !== "") {
152
+ const { sentence, rest } = boundary;
153
+ if (rest !== "") {
122
154
  /* contains more than a sentence */
123
155
  const chunk2 = chunk.clone();
124
156
  const duration = luxon_1.Duration.fromMillis(chunk.timestampEnd.minus(chunk.timestampStart).toMillis() *
@@ -128,22 +160,20 @@ class SpeechFlowNodeT2TSentence extends speechflow_node_1.default {
128
160
  chunk.payload = sentence;
129
161
  chunk2.payload = rest;
130
162
  element.complete = true;
131
- this.queue.silent(true);
132
- this.queueSplit.touch();
133
- this.queue.silent(false);
163
+ this.queue.silently(() => { this.queueSplit.touch(); });
134
164
  this.queueSplit.walk(+1);
135
165
  this.queueSplit.insert({ type: "text-frame", chunk: chunk2, complete: false });
136
166
  }
137
167
  else {
138
168
  /* contains just the sentence */
139
169
  element.complete = true;
140
- this.queue.silent(true);
141
- this.queueSplit.silent(true);
142
- const position = this.queueSplit.position();
143
- this.queueSplit.walk(+1);
144
- this.queue.silent(false);
145
- this.queueSplit.silent(false);
146
- this.queueSplit.touch(position);
170
+ const position = this.queue.silently(() => this.queueSplit.silently(() => {
171
+ const pos = this.queueSplit.position();
172
+ this.queueSplit.walk(+1);
173
+ return pos;
174
+ }));
175
+ if (position < this.queue.elements.length)
176
+ this.queueSplit.touch(position);
147
177
  }
148
178
  }
149
179
  else {
@@ -164,19 +194,31 @@ class SpeechFlowNodeT2TSentence extends speechflow_node_1.default {
164
194
  }
165
195
  if (element2.chunk.kind === "final") {
166
196
  /* merge into following chunk */
197
+ element2.chunk = element2.chunk.clone();
167
198
  element2.chunk.timestampStart = element.chunk.timestampStart;
168
199
  element2.chunk.payload = this.concatPayload(element.chunk.payload, element2.chunk.payload);
169
200
  /* remove current element and touch now current element */
170
- this.queue.silent(true);
171
- this.queueSplit.delete();
172
- this.queue.silent(false);
201
+ this.queue.silently(() => { this.queueSplit.delete(); });
173
202
  this.queueSplit.touch();
174
203
  }
175
204
  else
176
205
  break;
177
206
  }
207
+ else if (this.lastChunkTime > 0
208
+ && (Date.now() - this.lastChunkTime) >= this.params.timeout) {
209
+ /* no following chunk yet, but timeout expired:
210
+ flush incomplete sentence fragment */
211
+ element.complete = true;
212
+ const position = this.queue.silently(() => this.queueSplit.silently(() => {
213
+ const pos = this.queueSplit.position();
214
+ this.queueSplit.walk(+1);
215
+ return pos;
216
+ }));
217
+ if (position < this.queue.elements.length)
218
+ this.queueSplit.touch(position);
219
+ }
178
220
  else {
179
- /* no following chunk yet */
221
+ /* no following chunk yet, still within timeout */
180
222
  break;
181
223
  }
182
224
  }
@@ -184,16 +226,44 @@ class SpeechFlowNodeT2TSentence extends speechflow_node_1.default {
184
226
  else
185
227
  break;
186
228
  }
187
- /* re-initiate working off round (if still not destroyed) */
188
- if (!this.closing) {
189
- this.workingOffTimer = setTimeout(workOffQueue, 100);
190
- this.queue.once("write", workOffQueue);
229
+ return (!this.closing && iterations >= maxIterations);
230
+ };
231
+ /* work off queued text frames (outer processing) */
232
+ let workingOff = false;
233
+ const workOffQueue = async () => {
234
+ if (this.closing)
235
+ return;
236
+ /* control working off round */
237
+ if (workingOff)
238
+ return;
239
+ workingOff = true;
240
+ if (this.workingOffTimer !== null) {
241
+ clearTimeout(this.workingOffTimer);
242
+ this.workingOffTimer = null;
243
+ }
244
+ this.queue.off("write", workOffQueue);
245
+ /* try to work off one or more chunks */
246
+ let hasMore = false;
247
+ try {
248
+ hasMore = workOffQueueInner();
249
+ }
250
+ catch (error) {
251
+ this.log("error", `sentence splitting error: ${error}`);
252
+ }
253
+ finally {
254
+ /* re-initiate working off round (if still not destroyed) */
255
+ workingOff = false;
256
+ if (!this.closing) {
257
+ this.workingOffTimer = setTimeout(workOffQueue, hasMore ? 0 : 100);
258
+ this.queue.once("write", workOffQueue);
259
+ }
191
260
  }
192
- workingOff = false;
193
261
  };
194
262
  this.queue.once("write", workOffQueue);
195
263
  /* provide Duplex stream and internally attach to classifier */
196
- let previewed = false;
264
+ let previewedPayload = "";
265
+ let flushListenerRegistered = false;
266
+ let eofPushed = false;
197
267
  const self = this;
198
268
  this.stream = new node_stream_1.default.Duplex({
199
269
  writableObjectMode: true,
@@ -225,8 +295,9 @@ class SpeechFlowNodeT2TSentence extends speechflow_node_1.default {
225
295
  }
226
296
  }
227
297
  }
228
- previewed = false;
298
+ previewedPayload = "";
229
299
  self.queueRecv.append({ type: "text-frame", chunk, complete: false });
300
+ self.lastChunkTime = Date.now();
230
301
  callback();
231
302
  }
232
303
  },
@@ -236,23 +307,44 @@ class SpeechFlowNodeT2TSentence extends speechflow_node_1.default {
236
307
  callback();
237
308
  return;
238
309
  }
310
+ /* promote any trailing intermediate chunk to final
311
+ (no replacement will ever arrive, so treat it as final) */
312
+ const recvPos = self.queueRecv.position();
313
+ if (recvPos > 0) {
314
+ const element = self.queueRecv.peek(recvPos - 1);
315
+ if (element
316
+ && element.type === "text-frame"
317
+ && element.chunk.kind === "intermediate") {
318
+ element.chunk = element.chunk.clone();
319
+ element.chunk.kind = "final";
320
+ }
321
+ }
239
322
  /* signal end of file */
240
323
  self.queueRecv.append({ type: "text-eof" });
241
324
  callback();
242
325
  },
243
326
  /* send text chunk(s) (readable side of stream) */
244
327
  read(_size) {
328
+ /* idempotently push EOF to readable side */
329
+ const pushNull = () => {
330
+ if (eofPushed)
331
+ return;
332
+ eofPushed = true;
333
+ this.push(null);
334
+ };
245
335
  /* flush pending text chunks */
246
336
  const flushPendingChunks = () => {
337
+ flushListenerRegistered = false;
247
338
  if (self.closing) {
248
- this.push(null);
339
+ pushNull();
249
340
  return;
250
341
  }
251
342
  const element = self.queueSend.peek();
252
343
  if (element !== undefined
253
344
  && element.type === "text-eof") {
254
- this.push(null);
345
+ pushNull();
255
346
  self.queueSend.walk(+1);
347
+ self.queue.trim();
256
348
  }
257
349
  else if (element !== undefined
258
350
  && element.type === "text-frame"
@@ -264,7 +356,7 @@ class SpeechFlowNodeT2TSentence extends speechflow_node_1.default {
264
356
  if (nextElement === undefined)
265
357
  break;
266
358
  else if (nextElement.type === "text-eof") {
267
- this.push(null);
359
+ pushNull();
268
360
  self.queueSend.walk(+1);
269
361
  eofSeen = true;
270
362
  break;
@@ -272,19 +364,21 @@ class SpeechFlowNodeT2TSentence extends speechflow_node_1.default {
272
364
  else if (nextElement.type === "text-frame"
273
365
  && nextElement.complete !== true)
274
366
  break;
275
- self.log("info", `send text 1 (${nextElement.chunk.kind}): ${JSON.stringify(nextElement.chunk.payload)} pos=${self.queueSend.position()}`);
367
+ self.log("info", `send text/complete (${nextElement.chunk.kind}): ${JSON.stringify(nextElement.chunk.payload)} pos=${self.queueSend.position()}`);
276
368
  this.push(nextElement.chunk);
277
369
  self.queueSend.walk(+1);
278
- self.queue.trim();
279
370
  }
371
+ previewedPayload = "";
372
+ self.queue.trim();
280
373
  /* wait for more data (unless end-of-stream was reached) */
281
- if (!eofSeen && !self.closing)
374
+ if (!eofSeen && !self.closing && !flushListenerRegistered) {
375
+ flushListenerRegistered = true;
282
376
  self.queue.once("write", flushPendingChunks);
377
+ }
283
378
  }
284
379
  else if (element !== undefined
285
380
  && element.type === "text-frame"
286
381
  && element.complete === false
287
- && !previewed
288
382
  && self.params.interim === true) {
289
383
  /* merge together all still queued elements and
290
384
  send this out as an intermediate chunk as preview */
@@ -297,16 +391,24 @@ class SpeechFlowNodeT2TSentence extends speechflow_node_1.default {
297
391
  if (element2.type === "text-eof")
298
392
  break;
299
393
  previewChunk.payload = self.concatPayload(previewChunk.payload, element2.chunk.payload);
394
+ previewChunk.timestampEnd = element2.chunk.timestampEnd;
395
+ }
396
+ /* send preview only if payload actually changed */
397
+ if (previewChunk.payload !== previewedPayload) {
398
+ this.push(previewChunk);
399
+ self.log("info", `send text/preview (intermediate): ${JSON.stringify(previewChunk.payload)}`);
400
+ previewedPayload = previewChunk.payload;
300
401
  }
301
- this.push(previewChunk);
302
- self.log("info", `send text 2 (intermediate): ${JSON.stringify(previewChunk.payload)}`);
303
- previewed = true;
304
402
  /* wait for more data */
305
- if (!self.closing)
403
+ if (!self.closing && !flushListenerRegistered) {
404
+ flushListenerRegistered = true;
306
405
  self.queue.once("write", flushPendingChunks);
406
+ }
307
407
  }
308
- else if (!self.closing)
408
+ else if (!self.closing && !flushListenerRegistered) {
409
+ flushListenerRegistered = true;
309
410
  self.queue.once("write", flushPendingChunks);
411
+ }
310
412
  };
311
413
  flushPendingChunks();
312
414
  }
@@ -321,8 +423,9 @@ class SpeechFlowNodeT2TSentence extends speechflow_node_1.default {
321
423
  clearTimeout(this.workingOffTimer);
322
424
  this.workingOffTimer = null;
323
425
  }
324
- /* remove any pending event listeners */
426
+ /* remove any pending event listeners and clear queue */
325
427
  this.queue.removeAllListeners("write");
428
+ this.queue.clear();
326
429
  /* shutdown stream */
327
430
  if (this.stream !== null) {
328
431
  await util.destroyStream(this.stream);
@@ -1 +1 @@
1
- {"version":3,"file":"speechflow-node-t2t-sentence.js","sourceRoot":"","sources":["../src/speechflow-node-t2t-sentence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"speechflow-node-t2t-sentence.js","sourceRoot":"","sources":["../src/speechflow-node-t2t-sentence.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  /*
3
3
  ** SpeechFlow - Speech Processing Flow Graph
4
- ** Copyright (c) 2024-2025 Dr. Ralf S. Engelschall <rse@engelschall.com>
4
+ ** Copyright (c) 2024-2026 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
7
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  /*
3
3
  ** SpeechFlow - Speech Processing Flow Graph
4
- ** Copyright (c) 2024-2025 Dr. Ralf S. Engelschall <rse@engelschall.com>
4
+ ** Copyright (c) 2024-2026 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
7
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
@@ -119,6 +119,8 @@ class SpeechFlowNodeT2TSubtitle extends speechflow_node_1.default {
119
119
  /* produce SRT/VTT blocks */
120
120
  let output = convertSingle(timestampStart, timestampEnd, chunk.payload);
121
121
  if (this.params.words) {
122
+ if (words.length === 0)
123
+ this.log("warning", "word-level subtitle highlighting requested but no word-level timing data available");
122
124
  /* produce additional SRT/VTT blocks with each word highlighted */
123
125
  const occurrences = new Map();
124
126
  for (const word of words) {
@@ -168,7 +170,7 @@ class SpeechFlowNodeT2TSubtitle extends speechflow_node_1.default {
168
170
  else if (this.params.mode === "import") {
169
171
  /* parse timestamp in SRT format ("HH:MM:SS,mmm") or VTT format ("HH:MM:SS.mmm") */
170
172
  const parseTimestamp = (ts) => {
171
- const match = ts.match(/^(\d{2}):(\d{2}):(\d{2})[,.](\d{3})$/);
173
+ const match = ts.match(/^(\d{2,}):(\d{2}):(\d{2})[,.](\d{3})$/);
172
174
  if (!match)
173
175
  throw new Error(`invalid timestamp format: "${ts}"`);
174
176
  const hours = Number.parseInt(match[1], 10);
@@ -198,7 +200,7 @@ class SpeechFlowNodeT2TSubtitle extends speechflow_node_1.default {
198
200
  lineIdx = 1;
199
201
  /* parse timestamp line */
200
202
  const timeLine = lines[lineIdx];
201
- const timeMatch = timeLine.match(/^(\d{2}:\d{2}:\d{2},\d{3})\s*-->\s*(\d{2}:\d{2}:\d{2},\d{3})/);
203
+ const timeMatch = timeLine.match(/^(\d{2,}:\d{2}:\d{2},\d{3})\s*-->\s*(\d{2,}:\d{2}:\d{2},\d{3})/);
202
204
  if (!timeMatch) {
203
205
  this.log("warning", "SRT contains invalid timestamp line");
204
206
  continue;
@@ -222,8 +224,8 @@ class SpeechFlowNodeT2TSubtitle extends speechflow_node_1.default {
222
224
  const blocks = content.trim().split(/\r?\n\r?\n+/);
223
225
  for (const block of blocks) {
224
226
  const lines = block.trim().split(/\r?\n/);
225
- if (lines.length < 1) {
226
- this.log("warning", "VTT block contains fewer than 1 line");
227
+ if (lines.length < 2) {
228
+ this.log("warning", "VTT block contains fewer than 2 lines");
227
229
  continue;
228
230
  }
229
231
  /* skip optional cue identifier lines */
@@ -234,7 +236,7 @@ class SpeechFlowNodeT2TSubtitle extends speechflow_node_1.default {
234
236
  continue;
235
237
  /* parse timestamp line */
236
238
  const timeLine = lines[lineIdx];
237
- const timeMatch = timeLine.match(/^(\d{2}:\d{2}:\d{2}\.\d{3})\s*-->\s*(\d{2}:\d{2}:\d{2}\.\d{3})/);
239
+ const timeMatch = timeLine.match(/^(\d{2,}:\d{2}:\d{2}\.\d{3})\s*-->\s*(\d{2,}:\d{2}:\d{2}\.\d{3})/);
238
240
  if (!timeMatch) {
239
241
  this.log("warning", "VTT contains invalid timestamp line");
240
242
  continue;
@@ -272,23 +274,37 @@ class SpeechFlowNodeT2TSubtitle extends speechflow_node_1.default {
272
274
  }
273
275
  /* accumulate input */
274
276
  buffer += chunk.payload;
275
- /* parse accumulated input */
277
+ /* find the last double-newline boundary to separate
278
+ complete blocks from a potentially incomplete trailing block */
279
+ const boundary = /\r?\n\r?\n/g;
280
+ let lastBoundaryEnd = -1;
281
+ let match;
282
+ while ((match = boundary.exec(buffer)) !== null)
283
+ lastBoundaryEnd = match.index + match[0].length;
284
+ /* if no complete block boundary found, wait for more data */
285
+ if (lastBoundaryEnd < 0) {
286
+ callback();
287
+ return;
288
+ }
289
+ /* split buffer into complete portion and remainder */
290
+ const complete = buffer.substring(0, lastBoundaryEnd);
291
+ const remainder = buffer.substring(lastBoundaryEnd);
292
+ /* parse only the complete portion */
276
293
  try {
277
294
  /* parse entries */
278
- const entries = (self.params.format === "srt" ? parseSRT(buffer) : parseVTT(buffer));
295
+ const entries = (self.params.format === "srt" ? parseSRT(complete) : parseVTT(complete));
279
296
  /* emit parsed entries as individual chunks */
280
297
  for (const entry of entries) {
281
298
  const chunkNew = new speechflow_node_1.SpeechFlowChunk(entry.start, entry.end, "final", "text", entry.text);
282
299
  this.push(chunkNew);
283
300
  }
284
- /* clear buffer after successful parse */
285
- buffer = "";
286
- callback();
287
301
  }
288
302
  catch (error) {
289
- buffer = "";
290
- callback(util.ensureError(error));
303
+ self.log("warning", `subtitle parse error: ${util.ensureError(error).message}`);
291
304
  }
305
+ /* keep only the unparsed remainder in the buffer */
306
+ buffer = remainder;
307
+ callback();
292
308
  },
293
309
  final(callback) {
294
310
  /* process any remaining buffer content */
@@ -380,7 +396,11 @@ class SpeechFlowNodeT2TSubtitle extends speechflow_node_1.default {
380
396
  const emit = (chunk) => {
381
397
  const data = JSON.stringify(chunk);
382
398
  for (const info of wsPeers.values())
383
- info.ws.send(data);
399
+ if (info.ws.readyState === ws_1.default.OPEN)
400
+ info.ws.send(data, (err) => {
401
+ if (err)
402
+ this.log("warning", `HAPI: WebSocket: subtitle send failed: ${err.message}`);
403
+ });
384
404
  };
385
405
  /* establish writable stream */
386
406
  this.stream = new node_stream_1.default.Writable({
@@ -1 +1 @@
1
- {"version":3,"file":"speechflow-node-t2t-subtitle.js","sourceRoot":"","sources":["../src/speechflow-node-t2t-subtitle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"speechflow-node-t2t-subtitle.js","sourceRoot":"","sources":["../src/speechflow-node-t2t-subtitle.ts"],"names":[],"mappings":"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"}