echogarden 0.12.2 → 1.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 (334) hide show
  1. package/README.md +15 -14
  2. package/data/schemas/options.json +398 -111
  3. package/dist/alignment/DTWMfccSequenceAlignment.d.ts +1 -1
  4. package/dist/alignment/DTWMfccSequenceAlignment.js +8 -8
  5. package/dist/alignment/DTWSequenceAlignment.d.ts +1 -1
  6. package/dist/alignment/DTWSequenceAlignment.js +1 -1
  7. package/dist/alignment/DTWSequenceAlignmentWindowed.d.ts +1 -1
  8. package/dist/alignment/DTWSequenceAlignmentWindowed.js +2 -2
  9. package/dist/alignment/LevenshteinSequenceAlignment.d.ts +1 -1
  10. package/dist/alignment/LevenshteinSequenceAlignment.js +1 -1
  11. package/dist/alignment/SpeechAlignment.d.ts +11 -6
  12. package/dist/alignment/SpeechAlignment.js +113 -71
  13. package/dist/alignment/SpeechAlignment.js.map +1 -1
  14. package/dist/api/API.d.ts +13 -12
  15. package/dist/api/API.js +14 -13
  16. package/dist/api/API.js.map +1 -1
  17. package/dist/api/APIOptions.d.ts +5 -4
  18. package/dist/api/Alignment.d.ts +15 -9
  19. package/dist/api/Alignment.js +92 -74
  20. package/dist/api/Alignment.js.map +1 -1
  21. package/dist/api/Common.js +1 -1
  22. package/dist/api/Denoising.d.ts +6 -6
  23. package/dist/api/Denoising.js +23 -23
  24. package/dist/api/Denoising.js.map +1 -1
  25. package/dist/api/LanguageDetection.d.ts +19 -12
  26. package/dist/api/LanguageDetection.js +88 -38
  27. package/dist/api/LanguageDetection.js.map +1 -1
  28. package/dist/api/Recognition.d.ts +16 -6
  29. package/dist/api/Recognition.js +129 -55
  30. package/dist/api/Recognition.js.map +1 -1
  31. package/dist/api/SourceSeparation.d.ts +17 -0
  32. package/dist/api/SourceSeparation.js +61 -0
  33. package/dist/api/SourceSeparation.js.map +1 -0
  34. package/dist/api/Synthesis.d.ts +18 -18
  35. package/dist/api/Synthesis.js +191 -164
  36. package/dist/api/Synthesis.js.map +1 -1
  37. package/dist/api/Translation.d.ts +19 -8
  38. package/dist/api/Translation.js +132 -35
  39. package/dist/api/Translation.js.map +1 -1
  40. package/dist/api/Vad.d.ts +10 -5
  41. package/dist/api/Vad.js +76 -38
  42. package/dist/api/Vad.js.map +1 -1
  43. package/dist/audio/AudioBufferConversion.d.ts +1 -1
  44. package/dist/audio/AudioBufferConversion.js +4 -4
  45. package/dist/audio/AudioPlayer.d.ts +1 -1
  46. package/dist/audio/AudioPlayer.js +26 -26
  47. package/dist/audio/AudioPlayer.js.map +1 -1
  48. package/dist/audio/AudioRecorder.d.ts +1 -1
  49. package/dist/audio/AudioRecorder.js +5 -5
  50. package/dist/audio/AudioUtilities.d.ts +13 -9
  51. package/dist/audio/AudioUtilities.js +86 -24
  52. package/dist/audio/AudioUtilities.js.map +1 -1
  53. package/dist/cli/CLI.d.ts +3 -3
  54. package/dist/cli/CLI.js +271 -162
  55. package/dist/cli/CLI.js.map +1 -1
  56. package/dist/cli/CLIConfigFile.js +8 -8
  57. package/dist/cli/CLILauncher.js +6 -6
  58. package/dist/cli/CLIOptionsSchema.js +2 -2
  59. package/dist/cli/CLIParser.js +5 -5
  60. package/dist/cli/CLIStarter.js +4 -4
  61. package/dist/codecs/FFMpegTranscoder.d.ts +2 -2
  62. package/dist/codecs/FFMpegTranscoder.js +37 -37
  63. package/dist/codecs/FFMpegTranscoder.js.map +1 -1
  64. package/dist/codecs/TIMITCodec.js +5 -5
  65. package/dist/codecs/WaveCodec.d.ts +1 -1
  66. package/dist/codecs/WaveCodec.js +22 -22
  67. package/dist/denoising/RNNoise.d.ts +1 -1
  68. package/dist/denoising/RNNoise.js +9 -9
  69. package/dist/dsp/BiquadFilter.d.ts +3 -2
  70. package/dist/dsp/BiquadFilter.js +18 -11
  71. package/dist/dsp/BiquadFilter.js.map +1 -1
  72. package/dist/dsp/DecayingPeakEstimator.d.ts +16 -0
  73. package/dist/dsp/DecayingPeakEstimator.js +23 -0
  74. package/dist/dsp/DecayingPeakEstimator.js.map +1 -0
  75. package/dist/dsp/FFT.d.ts +8 -4
  76. package/dist/dsp/FFT.js +76 -30
  77. package/dist/dsp/FFT.js.map +1 -1
  78. package/dist/dsp/KWeightingFilter.d.ts +9 -0
  79. package/dist/dsp/KWeightingFilter.js +40 -0
  80. package/dist/dsp/KWeightingFilter.js.map +1 -0
  81. package/dist/dsp/LoudnessEstimator.d.ts +21 -0
  82. package/dist/dsp/LoudnessEstimator.js +47 -0
  83. package/dist/dsp/LoudnessEstimator.js.map +1 -0
  84. package/dist/dsp/MFCC.d.ts +2 -2
  85. package/dist/dsp/MFCC.js +15 -15
  86. package/dist/dsp/MelSpectogram.d.ts +1 -1
  87. package/dist/dsp/MelSpectogram.js +6 -6
  88. package/dist/dsp/Rubberband.d.ts +11 -11
  89. package/dist/dsp/Rubberband.js +27 -27
  90. package/dist/dsp/Sonic.d.ts +1 -1
  91. package/dist/dsp/Sonic.js +3 -3
  92. package/dist/dsp/SpeexResampler.d.ts +1 -1
  93. package/dist/dsp/SpeexResampler.js +2 -2
  94. package/dist/math/VectorMath.d.ts +12 -8
  95. package/dist/math/VectorMath.js +35 -32
  96. package/dist/math/VectorMath.js.map +1 -1
  97. package/dist/nlp/ChineseSegmentation.js +2 -2
  98. package/dist/nlp/CompromiseNLP.js +3 -3
  99. package/dist/nlp/EspeakPhonemizer.js +30 -30
  100. package/dist/nlp/IPA.js +20 -20
  101. package/dist/nlp/JapaneseSegmentation.js +6 -6
  102. package/dist/nlp/Lexicon.d.ts +1 -1
  103. package/dist/nlp/Lexicon.js +7 -7
  104. package/dist/nlp/Segmentation.d.ts +3 -0
  105. package/dist/nlp/Segmentation.js +21 -14
  106. package/dist/nlp/Segmentation.js.map +1 -1
  107. package/dist/nlp/TextNormalizer.js +16 -16
  108. package/dist/recognition/AmazonTranscribeSTT.d.ts +2 -2
  109. package/dist/recognition/AmazonTranscribeSTT.js +13 -14
  110. package/dist/recognition/AmazonTranscribeSTT.js.map +1 -1
  111. package/dist/recognition/AzureCognitiveServicesSTT.js +5 -6
  112. package/dist/recognition/AzureCognitiveServicesSTT.js.map +1 -1
  113. package/dist/recognition/GoogleCloudSTT.d.ts +3 -3
  114. package/dist/recognition/GoogleCloudSTT.js +18 -18
  115. package/dist/recognition/OpenAICloudSTT.d.ts +19 -0
  116. package/dist/recognition/OpenAICloudSTT.js +81 -0
  117. package/dist/recognition/OpenAICloudSTT.js.map +1 -0
  118. package/dist/recognition/SileroSTT.d.ts +2 -2
  119. package/dist/recognition/SileroSTT.js +25 -25
  120. package/dist/recognition/VoskSTT.d.ts +2 -2
  121. package/dist/recognition/VoskSTT.js +8 -8
  122. package/dist/recognition/WhisperCppSTT.d.ts +88 -0
  123. package/dist/recognition/WhisperCppSTT.js +332 -0
  124. package/dist/recognition/WhisperCppSTT.js.map +1 -0
  125. package/dist/recognition/WhisperSTT.d.ts +49 -25
  126. package/dist/recognition/WhisperSTT.js +626 -481
  127. package/dist/recognition/WhisperSTT.js.map +1 -1
  128. package/dist/server/Client.d.ts +1 -1
  129. package/dist/server/Client.js +22 -22
  130. package/dist/server/Server.js +9 -9
  131. package/dist/server/Server.js.map +1 -1
  132. package/dist/server/Worker.d.ts +22 -22
  133. package/dist/server/Worker.js +36 -36
  134. package/dist/server/Worker.js.map +1 -1
  135. package/dist/server/WorkerStarter.js +2 -2
  136. package/dist/source-separation/MDXNetSourceSeparation.d.ts +11 -0
  137. package/dist/source-separation/MDXNetSourceSeparation.js +161 -0
  138. package/dist/source-separation/MDXNetSourceSeparation.js.map +1 -0
  139. package/dist/speech-language-detection/SileroLanguageDetection.d.ts +1 -1
  140. package/dist/speech-language-detection/SileroLanguageDetection.js +7 -7
  141. package/dist/subtitles/Subtitles.d.ts +10 -0
  142. package/dist/subtitles/Subtitles.js +2 -2
  143. package/dist/subtitles/Subtitles.js.map +1 -1
  144. package/dist/synthesis/AwsPollyTTS.d.ts +1 -1
  145. package/dist/synthesis/AwsPollyTTS.js +12 -12
  146. package/dist/synthesis/AzureCognitiveServicesTTS.js +7 -7
  147. package/dist/synthesis/CoquiServerTTS.js +10 -10
  148. package/dist/synthesis/CoquiServerTTS.js.map +1 -1
  149. package/dist/synthesis/ElevenlabsTTS.d.ts +23 -0
  150. package/dist/synthesis/ElevenlabsTTS.js +103 -0
  151. package/dist/synthesis/ElevenlabsTTS.js.map +1 -0
  152. package/dist/synthesis/EspeakTTS.d.ts +6 -5
  153. package/dist/synthesis/EspeakTTS.js +81 -69
  154. package/dist/synthesis/EspeakTTS.js.map +1 -1
  155. package/dist/synthesis/FliteTTS.d.ts +3 -3
  156. package/dist/synthesis/FliteTTS.js +154 -154
  157. package/dist/synthesis/FliteTTS.js.map +1 -1
  158. package/dist/synthesis/GoogleCloudTTS.d.ts +3 -3
  159. package/dist/synthesis/GoogleCloudTTS.js +17 -17
  160. package/dist/synthesis/GoogleCloudTTS.js.map +1 -1
  161. package/dist/synthesis/GoogleTranslateTTS.d.ts +1 -1
  162. package/dist/synthesis/GoogleTranslateTTS.js +103 -103
  163. package/dist/synthesis/MicrosoftEdgeTTS.d.ts +2 -2
  164. package/dist/synthesis/MicrosoftEdgeTTS.js +74 -74
  165. package/dist/synthesis/OpenAICloudTTS.d.ts +13 -0
  166. package/dist/synthesis/OpenAICloudTTS.js +169 -0
  167. package/dist/synthesis/OpenAICloudTTS.js.map +1 -0
  168. package/dist/synthesis/SamTTS.js +3 -3
  169. package/dist/synthesis/SapiTTS.d.ts +3 -3
  170. package/dist/synthesis/SapiTTS.js +26 -26
  171. package/dist/synthesis/StreamlabsPollyTTS.d.ts +2 -2
  172. package/dist/synthesis/StreamlabsPollyTTS.js +27 -27
  173. package/dist/synthesis/SvoxPicoTTS.d.ts +2 -2
  174. package/dist/synthesis/SvoxPicoTTS.js +65 -65
  175. package/dist/synthesis/SvoxPicoTTS.js.map +1 -1
  176. package/dist/synthesis/VitsTTS.d.ts +3 -3
  177. package/dist/synthesis/VitsTTS.js +378 -378
  178. package/dist/synthesis/VitsTTS.js.map +1 -1
  179. package/dist/tests/Test.js +2 -2
  180. package/dist/utilities/Compression.d.ts +5 -0
  181. package/dist/utilities/Compression.js +29 -13
  182. package/dist/utilities/Compression.js.map +1 -1
  183. package/dist/utilities/FileDownloader.d.ts +1 -1
  184. package/dist/utilities/FileDownloader.js +16 -16
  185. package/dist/utilities/FileSystem.js +7 -7
  186. package/dist/utilities/Locale.d.ts +7 -7
  187. package/dist/utilities/Locale.js +15 -15
  188. package/dist/utilities/Logger.js +3 -3
  189. package/dist/utilities/ObjectUtilities.js +19 -19
  190. package/dist/utilities/OpenPromise.js +2 -2
  191. package/dist/utilities/OpenPromise.js.map +1 -1
  192. package/dist/utilities/PackageManager.js +31 -0
  193. package/dist/utilities/PackageManager.js.map +1 -1
  194. package/dist/utilities/PathUtilities.js +8 -8
  195. package/dist/utilities/RandomGenerator.js +2 -2
  196. package/dist/utilities/SmoothEstimator.d.ts +8 -0
  197. package/dist/utilities/SmoothEstimator.js +25 -0
  198. package/dist/utilities/SmoothEstimator.js.map +1 -0
  199. package/dist/utilities/TarballMaker.js +8 -8
  200. package/dist/utilities/Timeline.d.ts +3 -2
  201. package/dist/utilities/Timeline.js +11 -11
  202. package/dist/utilities/Timeline.js.map +1 -1
  203. package/dist/utilities/Timer.js +4 -4
  204. package/dist/utilities/Utilities.d.ts +4 -0
  205. package/dist/utilities/Utilities.js +38 -15
  206. package/dist/utilities/Utilities.js.map +1 -1
  207. package/dist/utilities/WasmMemoryManager.js +7 -7
  208. package/dist/utilities/WebReader.js +23 -23
  209. package/dist/utilities/WikipediaReader.js +2 -2
  210. package/dist/voice-activity-detection/AdaptiveGateVAD.d.ts +28 -0
  211. package/dist/voice-activity-detection/AdaptiveGateVAD.js +138 -0
  212. package/dist/voice-activity-detection/AdaptiveGateVAD.js.map +1 -0
  213. package/dist/voice-activity-detection/SileroVAD.d.ts +1 -1
  214. package/dist/voice-activity-detection/SileroVAD.js +5 -5
  215. package/dist/voice-activity-detection/SileroVAD.js.map +1 -1
  216. package/dist/voice-activity-detection/WebRtcVAD.d.ts +1 -1
  217. package/dist/voice-activity-detection/WebRtcVAD.js +4 -4
  218. package/docs/API.md +29 -11
  219. package/docs/CLI.md +31 -7
  220. package/docs/Contributing.md +38 -0
  221. package/docs/Development.md +91 -19
  222. package/docs/Engines.md +28 -16
  223. package/docs/Licenses.md +4 -1
  224. package/docs/Options.md +159 -79
  225. package/docs/Releases.md +262 -0
  226. package/docs/Server.md +7 -7
  227. package/docs/Tasklist.md +96 -76
  228. package/docs/Technical.md +4 -4
  229. package/package.json +13 -14
  230. package/src/alignment/DTWMfccSequenceAlignment.ts +9 -9
  231. package/src/alignment/DTWSequenceAlignment.ts +2 -2
  232. package/src/alignment/DTWSequenceAlignmentWindowed.ts +3 -3
  233. package/src/alignment/LevenshteinSequenceAlignment.ts +2 -2
  234. package/src/alignment/SpeechAlignment.ts +195 -86
  235. package/src/api/API.ts +14 -13
  236. package/src/api/APIOptions.ts +12 -11
  237. package/src/api/Alignment.ts +148 -92
  238. package/src/api/Common.ts +1 -1
  239. package/src/api/Denoising.ts +28 -28
  240. package/src/api/LanguageDetection.ts +135 -48
  241. package/src/api/Recognition.ts +198 -59
  242. package/src/api/SourceSeparation.ts +99 -0
  243. package/src/api/Synthesis.ts +217 -181
  244. package/src/api/Translation.ts +193 -40
  245. package/src/api/Vad.ts +110 -41
  246. package/src/audio/AudioBufferConversion.ts +4 -4
  247. package/src/audio/AudioPlayer.ts +27 -27
  248. package/src/audio/AudioRecorder.ts +5 -5
  249. package/src/audio/AudioUtilities.ts +107 -24
  250. package/src/cli/CLI.ts +313 -164
  251. package/src/cli/CLIConfigFile.ts +8 -8
  252. package/src/cli/CLILauncher.ts +6 -6
  253. package/src/cli/CLIOptionsSchema.ts +2 -2
  254. package/src/cli/CLIParser.ts +5 -5
  255. package/src/cli/CLIStarter.ts +4 -4
  256. package/src/codecs/FFMpegTranscoder.ts +38 -38
  257. package/src/codecs/TIMITCodec.ts +5 -5
  258. package/src/codecs/WaveCodec.ts +22 -22
  259. package/src/denoising/RNNoise.ts +9 -9
  260. package/src/dsp/BiquadFilter.ts +19 -11
  261. package/src/dsp/DecayingPeakEstimator.ts +35 -0
  262. package/src/dsp/FFT.ts +103 -35
  263. package/src/dsp/KWeightingFilter.ts +43 -0
  264. package/src/dsp/LoudnessEstimator.ts +74 -0
  265. package/src/dsp/MFCC.ts +15 -15
  266. package/src/dsp/MelSpectogram.ts +7 -7
  267. package/src/dsp/Rubberband.ts +38 -38
  268. package/src/dsp/Sonic.ts +4 -4
  269. package/src/dsp/SpeexResampler.ts +2 -2
  270. package/src/math/VectorMath.ts +42 -33
  271. package/src/nlp/ChineseSegmentation.ts +3 -3
  272. package/src/nlp/CompromiseNLP.ts +3 -3
  273. package/src/nlp/EspeakPhonemizer.ts +30 -30
  274. package/src/nlp/IPA.ts +20 -20
  275. package/src/nlp/JapaneseSegmentation.ts +6 -6
  276. package/src/nlp/Lexicon.ts +8 -8
  277. package/src/nlp/Segmentation.ts +23 -14
  278. package/src/nlp/TextNormalizer.ts +16 -16
  279. package/src/recognition/AmazonTranscribeSTT.ts +16 -17
  280. package/src/recognition/AzureCognitiveServicesSTT.ts +8 -6
  281. package/src/recognition/GoogleCloudSTT.ts +21 -21
  282. package/src/recognition/OpenAICloudSTT.ts +142 -0
  283. package/src/recognition/SileroSTT.ts +26 -26
  284. package/src/recognition/VoskSTT.ts +10 -10
  285. package/src/recognition/WhisperCppSTT.ts +555 -0
  286. package/src/recognition/WhisperSTT.ts +760 -507
  287. package/src/server/Client.ts +23 -23
  288. package/src/server/Server.ts +9 -9
  289. package/src/server/Worker.ts +53 -53
  290. package/src/server/WorkerStarter.ts +2 -2
  291. package/src/source-separation/MDXNetSourceSeparation.ts +228 -0
  292. package/src/speech-language-detection/SileroLanguageDetection.ts +8 -8
  293. package/src/subtitles/Subtitles.ts +3 -3
  294. package/src/synthesis/AwsPollyTTS.ts +14 -14
  295. package/src/synthesis/AzureCognitiveServicesTTS.ts +10 -10
  296. package/src/synthesis/CoquiServerTTS.ts +10 -10
  297. package/src/synthesis/ElevenlabsTTS.ts +137 -0
  298. package/src/synthesis/EspeakTTS.ts +90 -71
  299. package/src/synthesis/FliteTTS.ts +157 -157
  300. package/src/synthesis/GoogleCloudTTS.ts +19 -19
  301. package/src/synthesis/GoogleTranslateTTS.ts +104 -104
  302. package/src/synthesis/MicrosoftEdgeTTS.ts +80 -80
  303. package/src/synthesis/OpenAICloudTTS.ts +196 -0
  304. package/src/synthesis/SamTTS.ts +3 -3
  305. package/src/synthesis/SapiTTS.ts +29 -29
  306. package/src/synthesis/StreamlabsPollyTTS.ts +29 -29
  307. package/src/synthesis/SvoxPicoTTS.ts +67 -67
  308. package/src/synthesis/VitsTTS.ts +380 -380
  309. package/src/tests/Test.ts +4 -4
  310. package/src/utilities/Compression.ts +34 -13
  311. package/src/utilities/FileDownloader.ts +19 -19
  312. package/src/utilities/FileSystem.ts +7 -7
  313. package/src/utilities/Locale.ts +22 -22
  314. package/src/utilities/Logger.ts +4 -4
  315. package/src/utilities/ObjectUtilities.ts +19 -19
  316. package/src/utilities/OpenPromise.ts +2 -2
  317. package/src/utilities/PackageManager.ts +40 -0
  318. package/src/utilities/PathUtilities.ts +8 -8
  319. package/src/utilities/RandomGenerator.ts +3 -3
  320. package/src/utilities/SmoothEstimator.ts +35 -0
  321. package/src/utilities/TarballMaker.ts +9 -9
  322. package/src/utilities/Timeline.ts +15 -13
  323. package/src/utilities/Timer.ts +4 -4
  324. package/src/utilities/Utilities.ts +49 -15
  325. package/src/utilities/WasmMemoryManager.ts +7 -7
  326. package/src/utilities/WebReader.ts +23 -23
  327. package/src/utilities/WikipediaReader.ts +2 -2
  328. package/src/voice-activity-detection/AdaptiveGateVAD.ts +202 -0
  329. package/src/voice-activity-detection/SileroVAD.ts +5 -5
  330. package/src/voice-activity-detection/WebRtcVAD.ts +5 -5
  331. package/dist/synthesis/ElevenLabsTTS.d.ts +0 -8
  332. package/dist/synthesis/ElevenLabsTTS.js +0 -82
  333. package/dist/synthesis/ElevenLabsTTS.js.map +0 -1
  334. package/src/synthesis/ElevenLabsTTS.ts +0 -104
@@ -1,6 +1,6 @@
1
1
  import { WebSocket } from 'ws'
2
2
  import { encode as encodeMsgPack, decode as decodeMsgPack } from 'msgpack-lite'
3
- import { RequestVoiceListResult, SynthesisOptions, SynthesisSegmentEvent, SynthesisResult, VoiceListRequestOptions } from "../api/Synthesis.js"
3
+ import { RequestVoiceListResult, SynthesisOptions, SynthesisSegmentEvent, SynthesisResult, VoiceListRequestOptions } from '../api/Synthesis.js'
4
4
  import { SynthesisResponseMessage, SynthesisSegmentEventMessage, SynthesisSentenceEventMessage, VoiceListRequestMessage, WorkerRequestMessage, VoiceListResponseMessage, AlignmentRequestMessage, AlignmentResponseMessage, RecognitionRequestMessage, RecognitionResponseMessage, SpeechTranslationRequestMessage, SpeechTranslationResponseMessage, SpeechLanguageDetectionRequestMessage, SpeechLanguageDetectionResponseMessage, TextLanguageDetectionResponseMessage, TextLanguageDetectionRequestMessage, SynthesisRequestMessage } from './Worker.js'
5
5
  import { getRandomHexString, logToStderr } from '../utilities/Utilities.js'
6
6
  import { OpenPromise } from '../utilities/OpenPromise.js'
@@ -20,9 +20,9 @@ export class Client {
20
20
 
21
21
  constructor(sourceChannel: WebSocket | WorkerThread) {
22
22
  if (sourceChannel instanceof WebSocket) {
23
- sourceChannel.on("message", (messageData, isBinary) => {
23
+ sourceChannel.on('message', (messageData, isBinary) => {
24
24
  if (!isBinary) {
25
- log(`Received an unexpected string WebSocket message: '${(messageData as Buffer).toString("utf-8")}'`)
25
+ log(`Received an unexpected string WebSocket message: '${(messageData as Buffer).toString('utf-8')}'`)
26
26
  return
27
27
  }
28
28
 
@@ -44,11 +44,11 @@ export class Client {
44
44
  sourceChannel.send(encodedMessage)
45
45
  }
46
46
  } else if (sourceChannel instanceof WorkerThread) {
47
- sourceChannel.on("message", (message) => {
47
+ sourceChannel.on('message', (message) => {
48
48
  this.onMessage(message)
49
49
  })
50
50
 
51
- sourceChannel.on("error", (e) => {
51
+ sourceChannel.on('error', (e) => {
52
52
  throw e
53
53
  })
54
54
 
@@ -64,17 +64,17 @@ export class Client {
64
64
  const requestOpenPromise = new OpenPromise<SynthesisResult>()
65
65
 
66
66
  const requestMessage: SynthesisRequestMessage = {
67
- messageType: "SynthesisRequest",
67
+ messageType: 'SynthesisRequest',
68
68
  input,
69
69
  options
70
70
  }
71
71
 
72
72
  function onResponse(responseMessage: SynthesisResponseMessage | SynthesisSegmentEventMessage | SynthesisSentenceEventMessage) {
73
- if (responseMessage.messageType == "SynthesisResponse") {
73
+ if (responseMessage.messageType == 'SynthesisResponse') {
74
74
  requestOpenPromise.resolve(responseMessage)
75
- } else if (responseMessage.messageType == "SynthesisSegmentEvent" && onSegment) {
75
+ } else if (responseMessage.messageType == 'SynthesisSegmentEvent' && onSegment) {
76
76
  onSegment(responseMessage)
77
- } else if (responseMessage.messageType == "SynthesisSentenceEvent" && onSentence) {
77
+ } else if (responseMessage.messageType == 'SynthesisSentenceEvent' && onSentence) {
78
78
  onSentence(responseMessage)
79
79
  }
80
80
  }
@@ -96,12 +96,12 @@ export class Client {
96
96
  const requestOpenPromise = new OpenPromise<RequestVoiceListResult>()
97
97
 
98
98
  const requestMessage: VoiceListRequestMessage = {
99
- messageType: "VoiceListRequest",
99
+ messageType: 'VoiceListRequest',
100
100
  options
101
101
  }
102
102
 
103
103
  function onResponse(responseMessage: VoiceListResponseMessage) {
104
- if (responseMessage.messageType == "VoiceListResponse") {
104
+ if (responseMessage.messageType == 'VoiceListResponse') {
105
105
  requestOpenPromise.resolve(responseMessage)
106
106
  }
107
107
  }
@@ -123,13 +123,13 @@ export class Client {
123
123
  const requestOpenPromise = new OpenPromise<RecognitionResult>()
124
124
 
125
125
  const requestMessage: RecognitionRequestMessage = {
126
- messageType: "RecognitionRequest",
126
+ messageType: 'RecognitionRequest',
127
127
  input,
128
128
  options
129
129
  }
130
130
 
131
131
  function onResponse(responseMessage: RecognitionResponseMessage) {
132
- if (responseMessage.messageType == "RecognitionResponse") {
132
+ if (responseMessage.messageType == 'RecognitionResponse') {
133
133
  requestOpenPromise.resolve(responseMessage)
134
134
  }
135
135
  }
@@ -150,14 +150,14 @@ export class Client {
150
150
  const requestOpenPromise = new OpenPromise<AlignmentResult>()
151
151
 
152
152
  const requestMessage: AlignmentRequestMessage = {
153
- messageType: "AlignmentRequest",
153
+ messageType: 'AlignmentRequest',
154
154
  input,
155
155
  transcript,
156
156
  options
157
157
  }
158
158
 
159
159
  function onResponse(responseMessage: AlignmentResponseMessage) {
160
- if (responseMessage.messageType == "AlignmentResponse") {
160
+ if (responseMessage.messageType == 'AlignmentResponse') {
161
161
  requestOpenPromise.resolve(responseMessage)
162
162
  }
163
163
  }
@@ -179,13 +179,13 @@ export class Client {
179
179
  const requestOpenPromise = new OpenPromise<SpeechTranslationResult>()
180
180
 
181
181
  const requestMessage: SpeechTranslationRequestMessage = {
182
- messageType: "SpeechTranslationRequest",
182
+ messageType: 'SpeechTranslationRequest',
183
183
  input,
184
184
  options
185
185
  }
186
186
 
187
187
  function onResponse(responseMessage: SpeechTranslationResponseMessage) {
188
- if (responseMessage.messageType == "SpeechTranslationResponse") {
188
+ if (responseMessage.messageType == 'SpeechTranslationResponse') {
189
189
  requestOpenPromise.resolve(responseMessage)
190
190
  }
191
191
  }
@@ -207,13 +207,13 @@ export class Client {
207
207
  const requestOpenPromise = new OpenPromise<SpeechLanguageDetectionResult>()
208
208
 
209
209
  const requestMessage: SpeechLanguageDetectionRequestMessage = {
210
- messageType: "SpeechLanguageDetectionRequest",
210
+ messageType: 'SpeechLanguageDetectionRequest',
211
211
  input,
212
212
  options
213
213
  }
214
214
 
215
215
  function onResponse(responseMessage: SpeechLanguageDetectionResponseMessage) {
216
- if (responseMessage.messageType == "SpeechLanguageDetectionResponse") {
216
+ if (responseMessage.messageType == 'SpeechLanguageDetectionResponse') {
217
217
  requestOpenPromise.resolve(responseMessage)
218
218
  }
219
219
  }
@@ -235,13 +235,13 @@ export class Client {
235
235
  const requestOpenPromise = new OpenPromise<TextLanguageDetectionResult>()
236
236
 
237
237
  const requestMessage: TextLanguageDetectionRequestMessage = {
238
- messageType: "TextLanguageDetectionRequest",
238
+ messageType: 'TextLanguageDetectionRequest',
239
239
  input,
240
240
  options
241
241
  }
242
242
 
243
243
  function onResponse(responseMessage: TextLanguageDetectionResponseMessage) {
244
- if (responseMessage.messageType == "TextLanguageDetectionResponse") {
244
+ if (responseMessage.messageType == 'TextLanguageDetectionResponse') {
245
245
  requestOpenPromise.resolve(responseMessage)
246
246
  }
247
247
  }
@@ -270,7 +270,7 @@ export class Client {
270
270
  this.sendMessage(request)
271
271
 
272
272
  function onResponseMessage(message: any) {
273
- if (message.messageType == "Error") {
273
+ if (message.messageType == 'Error') {
274
274
  onErrorResponse(message.error)
275
275
  } else {
276
276
  onResponse(message)
@@ -284,7 +284,7 @@ export class Client {
284
284
  const requestId = incomingMessage.requestId
285
285
 
286
286
  if (!requestId) {
287
- log("Received a WebSocket message without a request ID")
287
+ log('Received a WebSocket message without a request ID')
288
288
  return
289
289
  }
290
290
 
@@ -22,7 +22,7 @@ export async function startServer(serverOptions: ServerOptions, onStarted: (opti
22
22
 
23
23
  function onHttpRequest(request: IncomingMessage, response: ServerResponse) {
24
24
  response.writeHead(200, { 'Content-Type': 'text/plain' })
25
- response.end("This is the Echogarden HTTP server!")
25
+ response.end('This is the Echogarden HTTP server!')
26
26
  }
27
27
 
28
28
  if (serverOptions.secure) {
@@ -59,7 +59,7 @@ export async function startServer(serverOptions: ServerOptions, onStarted: (opti
59
59
  const requestIdToWebSocket = new Map<string, WebSocket>()
60
60
 
61
61
  function onWorkerMessage(message: any) {
62
- if (message.name == "writeToStdErr") {
62
+ if (message.name == 'writeToStdErr') {
63
63
  return
64
64
  }
65
65
 
@@ -67,7 +67,7 @@ export async function startServer(serverOptions: ServerOptions, onStarted: (opti
67
67
  message['inputRawAudio'] = undefined
68
68
 
69
69
  if (!message.requestId) {
70
- throw new Error("Worker message doesn't have a request ID")
70
+ throw new Error(`Worker message doesn't have a request ID`)
71
71
  }
72
72
 
73
73
  const ws = requestIdToWebSocket.get(message.requestId)
@@ -93,12 +93,12 @@ export async function startServer(serverOptions: ServerOptions, onStarted: (opti
93
93
 
94
94
  const serverOpenPromise = new OpenPromise<void>
95
95
 
96
- wss.on("listening", () => {
96
+ wss.on('listening', () => {
97
97
  log(chalk.gray(`Started Echogarden WebSocket server on port ${serverOptions.port}`))
98
98
  onStarted(serverOptions)
99
99
  })
100
100
 
101
- wss.on("close", () => {
101
+ wss.on('close', () => {
102
102
  serverOpenPromise.resolve()
103
103
  })
104
104
 
@@ -107,7 +107,7 @@ export async function startServer(serverOptions: ServerOptions, onStarted: (opti
107
107
 
108
108
  ws.on('message', (messageData, isBinary) => {
109
109
  if (!isBinary) {
110
- log(chalk.gray((`Received an unexpected string WebSocket message: '${(messageData as Buffer).toString("utf-8")}'`)))
110
+ log(chalk.gray(`Received an unexpected string WebSocket message: '${(messageData as Buffer).toString('utf-8')}'`))
111
111
  return
112
112
  }
113
113
 
@@ -123,7 +123,7 @@ export async function startServer(serverOptions: ServerOptions, onStarted: (opti
123
123
  const requestId = incomingMessage.requestId
124
124
 
125
125
  if (!requestId) {
126
- log(chalk.gray(("Received a WebSocket message without a request ID")))
126
+ log(chalk.gray('Received a WebSocket message without a request ID'))
127
127
  return
128
128
  }
129
129
 
@@ -140,7 +140,7 @@ export async function startServer(serverOptions: ServerOptions, onStarted: (opti
140
140
  log(`${chalk.redBright('WebSocket error')}: ${e.message}`)
141
141
  })
142
142
 
143
- ws.on("close", () => {
143
+ ws.on('close', () => {
144
144
  const keysToDelete: string[] = []
145
145
 
146
146
  requestIdToWebSocket.forEach((value, key) => {
@@ -151,7 +151,7 @@ export async function startServer(serverOptions: ServerOptions, onStarted: (opti
151
151
 
152
152
  keysToDelete.forEach(key => requestIdToWebSocket.delete(key))
153
153
 
154
- log(chalk.gray((`Incoming connection from ${ req.socket.remoteAddress } was closed`)))
154
+ log(chalk.gray(`Incoming connection from ${ req.socket.remoteAddress } was closed`))
155
155
  })
156
156
  })
157
157
 
@@ -1,16 +1,16 @@
1
- import { RequestVoiceListResult, SynthesisOptions, SynthesisSegmentEventData, SynthesisResult, VoiceListRequestOptions, requestVoiceList, synthesize } from "../api/Synthesis.js"
2
- import { Queue } from "../utilities/Queue.js"
3
- import { logToStderr, yieldToEventLoop } from "../utilities/Utilities.js"
4
- import { AudioSourceParam } from "../audio/AudioUtilities.js"
5
- import { RecognitionOptions, RecognitionResult, recognize } from "../api/Recognition.js"
6
- import { AlignmentOptions, AlignmentResult, align } from "../api/Alignment.js"
7
- import { SpeechTranslationOptions, SpeechTranslationResult, translateSpeech } from "../api/Translation.js"
8
- import { resetActiveLogger } from "../utilities/Logger.js"
1
+ import { RequestVoiceListResult, SynthesisOptions, SynthesisSegmentEventData, SynthesisResult, VoiceListRequestOptions, requestVoiceList, synthesize } from '../api/Synthesis.js'
2
+ import { Queue } from '../utilities/Queue.js'
3
+ import { logToStderr, yieldToEventLoop } from '../utilities/Utilities.js'
4
+ import { AudioSourceParam } from '../audio/AudioUtilities.js'
5
+ import { RecognitionOptions, RecognitionResult, recognize } from '../api/Recognition.js'
6
+ import { AlignmentOptions, AlignmentResult, align } from '../api/Alignment.js'
7
+ import { SpeechTranslationOptions, SpeechTranslationResult, translateSpeech } from '../api/Translation.js'
8
+ import { resetActiveLogger } from '../utilities/Logger.js'
9
9
  import { writeToStderr } from '../utilities/Utilities.js'
10
10
  import { Worker, SHARE_ENV } from 'node:worker_threads'
11
- import { SpeechLanguageDetectionOptions, SpeechLanguageDetectionResult, TextLanguageDetectionOptions, TextLanguageDetectionResult, detectSpeechLanguage, detectTextLanguage } from "../api/LanguageDetection.js"
12
- import chalk from "chalk"
13
- import { resolveToModuleRootDir } from "../utilities/PathUtilities.js"
11
+ import { SpeechLanguageDetectionOptions, SpeechLanguageDetectionResult, TextLanguageDetectionOptions, TextLanguageDetectionResult, detectSpeechLanguage, detectTextLanguage } from '../api/LanguageDetection.js'
12
+ import chalk from 'chalk'
13
+ import { resolveToModuleRootDir } from '../utilities/PathUtilities.js'
14
14
 
15
15
  const log = logToStderr
16
16
 
@@ -33,7 +33,7 @@ export function startMessageChannel() {
33
33
  messageChannel.port2.start()
34
34
 
35
35
  addListenerToClientMessages((message) => {
36
- if (message.messageType == "CancelationRequest") {
36
+ if (message.messageType == 'CancelationRequest' || message.messageType == 'CancellationRequest') {
37
37
  //log(`CANCEL REQUESTED FOR ${message.requestId}`)
38
38
  canceledRequests.add(message.requestId)
39
39
  return
@@ -70,7 +70,7 @@ async function processQueueIfIdle() {
70
70
  })
71
71
  }
72
72
 
73
- function setCancelationFlagIfNeeded() {
73
+ function setCancellationFlagIfNeeded() {
74
74
  if (canceledRequests.has(requestId)) {
75
75
  cancelCurrentTask = true
76
76
  canceledRequests.delete(requestId)
@@ -79,28 +79,28 @@ async function processQueueIfIdle() {
79
79
 
80
80
  await yieldToEventLoop()
81
81
 
82
- setCancelationFlagIfNeeded()
83
- const cancelationFlagSetterInterval = setInterval(setCancelationFlagIfNeeded, 20)
82
+ setCancellationFlagIfNeeded()
83
+ const cancellationFlagSetterInterval = setInterval(setCancellationFlagIfNeeded, 20)
84
84
 
85
85
  try {
86
86
  if (cancelCurrentTask) {
87
87
  //log(`******* CANCELED BEFORE START: ${requestId} *******`)
88
- throw new Error("Canceled")
88
+ throw new Error('Canceled')
89
89
  }
90
90
 
91
91
  await processMessage(incomingMessage, sendMessage)
92
92
  } catch (e: any) {
93
- log(`${chalk.redBright("Error")}: ${e.message}`)
93
+ log(`${chalk.redBright('Error')}: ${e.message}`)
94
94
 
95
95
  sendMessageToClient({
96
96
  requestId,
97
- messageType: "Error",
97
+ messageType: 'Error',
98
98
  error: e
99
99
  })
100
100
  } finally {
101
101
  resetActiveLogger()
102
102
 
103
- clearInterval(cancelationFlagSetterInterval)
103
+ clearInterval(cancellationFlagSetterInterval)
104
104
  cancelCurrentTask = false
105
105
  }
106
106
  }
@@ -110,37 +110,37 @@ async function processQueueIfIdle() {
110
110
 
111
111
  export async function processMessage(message: WorkerRequestMessage, sendMessage: MessageFunc) {
112
112
  switch (message.messageType) {
113
- case "SynthesisRequest": {
113
+ case 'SynthesisRequest': {
114
114
  await processSynthesisRequest(message, sendMessage)
115
115
  break
116
116
  }
117
117
 
118
- case "VoiceListRequest": {
118
+ case 'VoiceListRequest': {
119
119
  await processVoiceListRequest(message, sendMessage)
120
120
  break
121
121
  }
122
122
 
123
- case "RecognitionRequest": {
123
+ case 'RecognitionRequest': {
124
124
  await processRecognitionRequest(message, sendMessage)
125
125
  break
126
126
  }
127
127
 
128
- case "AlignmentRequest": {
128
+ case 'AlignmentRequest': {
129
129
  await processAlignmentRequest(message, sendMessage)
130
130
  break
131
131
  }
132
132
 
133
- case "SpeechTranslationRequest": {
133
+ case 'SpeechTranslationRequest': {
134
134
  await processSpeechTranslationRequest(message, sendMessage)
135
135
  break
136
136
  }
137
137
 
138
- case "SpeechLanguageDetectionRequest": {
138
+ case 'SpeechLanguageDetectionRequest': {
139
139
  await processSpeechLanguageDetectionRequest(message, sendMessage)
140
140
  break
141
141
  }
142
142
 
143
- case "TextLanguageDetectionRequest": {
143
+ case 'TextLanguageDetectionRequest': {
144
144
  await processTextLanguageDetectionRequest(message, sendMessage)
145
145
  break
146
146
  }
@@ -157,7 +157,7 @@ export async function processMessage(message: WorkerRequestMessage, sendMessage:
157
157
  async function processSynthesisRequest(message: SynthesisRequestMessage, sendMessage: MessageFunc) {
158
158
  async function onSegment(eventData: SynthesisSegmentEventData) {
159
159
  const responseMessage: SynthesisSegmentEventMessage = {
160
- messageType: "SynthesisSegmentEvent",
160
+ messageType: 'SynthesisSegmentEvent',
161
161
  ...eventData
162
162
  }
163
163
 
@@ -166,7 +166,7 @@ async function processSynthesisRequest(message: SynthesisRequestMessage, sendMes
166
166
 
167
167
  async function onSentence(eventData: SynthesisSegmentEventData) {
168
168
  const responseMessage: SynthesisSentenceEventMessage = {
169
- messageType: "SynthesisSentenceEvent",
169
+ messageType: 'SynthesisSentenceEvent',
170
170
  ...eventData
171
171
  }
172
172
 
@@ -176,7 +176,7 @@ async function processSynthesisRequest(message: SynthesisRequestMessage, sendMes
176
176
  const result = await synthesize(message.input, message.options, onSegment, onSentence)
177
177
 
178
178
  const responseMessage: SynthesisResponseMessage = {
179
- messageType: "SynthesisResponse",
179
+ messageType: 'SynthesisResponse',
180
180
  ...result
181
181
  }
182
182
 
@@ -185,28 +185,28 @@ async function processSynthesisRequest(message: SynthesisRequestMessage, sendMes
185
185
 
186
186
  // Synthesis message types
187
187
  export interface SynthesisRequestMessage extends WorkerMessageBase {
188
- messageType: "SynthesisRequest"
188
+ messageType: 'SynthesisRequest'
189
189
  input: string | string[]
190
190
  options: SynthesisOptions
191
191
  }
192
192
 
193
193
  export interface SynthesisResponseMessage extends WorkerMessageBase, SynthesisResult {
194
- messageType: "SynthesisResponse"
194
+ messageType: 'SynthesisResponse'
195
195
  }
196
196
 
197
197
  export interface SynthesisSegmentEventMessage extends WorkerMessageBase, SynthesisSegmentEventData {
198
- messageType: "SynthesisSegmentEvent"
198
+ messageType: 'SynthesisSegmentEvent'
199
199
  }
200
200
 
201
201
  export interface SynthesisSentenceEventMessage extends WorkerMessageBase, SynthesisSegmentEventData {
202
- messageType: "SynthesisSentenceEvent"
202
+ messageType: 'SynthesisSentenceEvent'
203
203
  }
204
204
 
205
205
  async function processVoiceListRequest(message: VoiceListRequestMessage, sendMessage: MessageFunc) {
206
206
  const result = await requestVoiceList(message.options)
207
207
 
208
208
  const responseMessage: VoiceListResponseMessage = {
209
- messageType: "VoiceListResponse",
209
+ messageType: 'VoiceListResponse',
210
210
  ...result
211
211
  }
212
212
 
@@ -215,12 +215,12 @@ async function processVoiceListRequest(message: VoiceListRequestMessage, sendMes
215
215
 
216
216
  // Voice list message types
217
217
  export interface VoiceListRequestMessage extends WorkerMessageBase {
218
- messageType: "VoiceListRequest"
218
+ messageType: 'VoiceListRequest'
219
219
  options: VoiceListRequestOptions
220
220
  }
221
221
 
222
222
  export interface VoiceListResponseMessage extends WorkerMessageBase, RequestVoiceListResult {
223
- messageType: "VoiceListResponse"
223
+ messageType: 'VoiceListResponse'
224
224
  }
225
225
 
226
226
  ///////////////////////////////////////////////////////////////////////////////////////////////
@@ -230,7 +230,7 @@ async function processRecognitionRequest(message: RecognitionRequestMessage, sen
230
230
  const result = await recognize(message.input, message.options)
231
231
 
232
232
  const responseMessage: RecognitionResponseMessage = {
233
- messageType: "RecognitionResponse",
233
+ messageType: 'RecognitionResponse',
234
234
  ...result
235
235
  }
236
236
 
@@ -239,13 +239,13 @@ async function processRecognitionRequest(message: RecognitionRequestMessage, sen
239
239
 
240
240
  // Recognition message types
241
241
  export interface RecognitionRequestMessage extends WorkerMessageBase {
242
- messageType: "RecognitionRequest"
242
+ messageType: 'RecognitionRequest'
243
243
  input: AudioSourceParam
244
244
  options: RecognitionOptions
245
245
  }
246
246
 
247
247
  export interface RecognitionResponseMessage extends WorkerMessageBase, RecognitionResult {
248
- messageType: "RecognitionResponse"
248
+ messageType: 'RecognitionResponse'
249
249
  }
250
250
 
251
251
  ///////////////////////////////////////////////////////////////////////////////////////////////
@@ -255,7 +255,7 @@ async function processAlignmentRequest(message: AlignmentRequestMessage, sendMes
255
255
  const result = await align(message.input, message.transcript, message.options)
256
256
 
257
257
  const responseMessage: AlignmentResponseMessage = {
258
- messageType: "AlignmentResponse",
258
+ messageType: 'AlignmentResponse',
259
259
  ...result
260
260
  }
261
261
 
@@ -264,14 +264,14 @@ async function processAlignmentRequest(message: AlignmentRequestMessage, sendMes
264
264
 
265
265
  // Alignment message types
266
266
  export interface AlignmentRequestMessage extends WorkerMessageBase {
267
- messageType: "AlignmentRequest"
267
+ messageType: 'AlignmentRequest'
268
268
  input: AudioSourceParam
269
269
  transcript: string
270
270
  options: AlignmentOptions
271
271
  }
272
272
 
273
273
  export interface AlignmentResponseMessage extends WorkerMessageBase, AlignmentResult {
274
- messageType: "AlignmentResponse"
274
+ messageType: 'AlignmentResponse'
275
275
  }
276
276
 
277
277
  ///////////////////////////////////////////////////////////////////////////////////////////////
@@ -281,7 +281,7 @@ async function processSpeechTranslationRequest(message: SpeechTranslationRequest
281
281
  const result = await translateSpeech(message.input, message.options)
282
282
 
283
283
  const responseMessage: SpeechTranslationResponseMessage = {
284
- messageType: "SpeechTranslationResponse",
284
+ messageType: 'SpeechTranslationResponse',
285
285
  ...result
286
286
  }
287
287
 
@@ -290,13 +290,13 @@ async function processSpeechTranslationRequest(message: SpeechTranslationRequest
290
290
 
291
291
  // Speech translation message types
292
292
  export interface SpeechTranslationRequestMessage extends WorkerMessageBase {
293
- messageType: "SpeechTranslationRequest"
293
+ messageType: 'SpeechTranslationRequest'
294
294
  input: AudioSourceParam
295
295
  options: SpeechTranslationOptions
296
296
  }
297
297
 
298
298
  export interface SpeechTranslationResponseMessage extends WorkerMessageBase, SpeechTranslationResult {
299
- messageType: "SpeechTranslationResponse"
299
+ messageType: 'SpeechTranslationResponse'
300
300
  }
301
301
 
302
302
  ///////////////////////////////////////////////////////////////////////////////////////////////
@@ -306,7 +306,7 @@ async function processSpeechLanguageDetectionRequest(message: SpeechLanguageDete
306
306
  const result = await detectSpeechLanguage(message.input, message.options)
307
307
 
308
308
  const responseMessage: SpeechLanguageDetectionResponseMessage = {
309
- messageType: "SpeechLanguageDetectionResponse",
309
+ messageType: 'SpeechLanguageDetectionResponse',
310
310
  ...result
311
311
  }
312
312
 
@@ -315,13 +315,13 @@ async function processSpeechLanguageDetectionRequest(message: SpeechLanguageDete
315
315
 
316
316
  // Speech language detection message types
317
317
  export interface SpeechLanguageDetectionRequestMessage extends WorkerMessageBase {
318
- messageType: "SpeechLanguageDetectionRequest"
318
+ messageType: 'SpeechLanguageDetectionRequest'
319
319
  input: AudioSourceParam
320
320
  options: SpeechLanguageDetectionOptions
321
321
  }
322
322
 
323
323
  export interface SpeechLanguageDetectionResponseMessage extends WorkerMessageBase, SpeechLanguageDetectionResult {
324
- messageType: "SpeechLanguageDetectionResponse"
324
+ messageType: 'SpeechLanguageDetectionResponse'
325
325
  }
326
326
 
327
327
  ///////////////////////////////////////////////////////////////////////////////////////////////
@@ -331,7 +331,7 @@ async function processTextLanguageDetectionRequest(message: TextLanguageDetectio
331
331
  const result = await detectTextLanguage(message.input, message.options)
332
332
 
333
333
  const responseMessage: TextLanguageDetectionResponseMessage = {
334
- messageType: "TextLanguageDetectionResponse",
334
+ messageType: 'TextLanguageDetectionResponse',
335
335
  ...result
336
336
  }
337
337
 
@@ -340,13 +340,13 @@ async function processTextLanguageDetectionRequest(message: TextLanguageDetectio
340
340
 
341
341
  // Text language detection message types
342
342
  export interface TextLanguageDetectionRequestMessage extends WorkerMessageBase {
343
- messageType: "TextLanguageDetectionRequest"
343
+ messageType: 'TextLanguageDetectionRequest'
344
344
  input: string
345
345
  options: TextLanguageDetectionOptions
346
346
  }
347
347
 
348
348
  export interface TextLanguageDetectionResponseMessage extends WorkerMessageBase, TextLanguageDetectionResult {
349
- messageType: "TextLanguageDetectionResponse"
349
+ messageType: 'TextLanguageDetectionResponse'
350
350
  }
351
351
 
352
352
  ///////////////////////////////////////////////////////////////////////////////////////////////
@@ -395,8 +395,8 @@ export async function startNewWorkerThread() {
395
395
  env: SHARE_ENV
396
396
  })
397
397
 
398
- workerThread.on("message", (message) => {
399
- if (message.name == "writeToStdErr") {
398
+ workerThread.on('message', (message) => {
399
+ if (message.name == 'writeToStdErr') {
400
400
  writeToStderr(message.text)
401
401
  }
402
402
  })
@@ -15,7 +15,7 @@ async function startIfInWorkerThread() {
15
15
 
16
16
  const initOpenPromise = new OpenPromise<void>()
17
17
 
18
- parentPort.once("message", (message) => {
18
+ parentPort.once('message', (message) => {
19
19
  if (message.name == 'init') {
20
20
  process.stderr.isTTY = message.stdErrIsTTY
21
21
  process.stderr.hasColors = () => message.hasColors
@@ -31,7 +31,7 @@ async function startIfInWorkerThread() {
31
31
 
32
32
  await initOpenPromise.promise
33
33
 
34
- parentPort.on("message", (message: any) => {
34
+ parentPort.on('message', (message: any) => {
35
35
  sendMessageToWorker(message)
36
36
  })
37
37
  }