echogarden 1.8.7 → 2.0.0

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 (299) hide show
  1. package/README.md +23 -18
  2. package/data/schemas/options.json +52 -47
  3. package/dist/alignment/DTWSequenceAlignment.d.ts +1 -1
  4. package/dist/alignment/DTWSequenceAlignment.js +5 -5
  5. package/dist/alignment/DTWSequenceAlignment.js.map +1 -1
  6. package/dist/alignment/SpeechAlignment.js +6 -6
  7. package/dist/alignment/SpeechAlignment.js.map +1 -1
  8. package/dist/api/Alignment.d.ts +1 -1
  9. package/dist/api/Alignment.js +49 -11
  10. package/dist/api/Alignment.js.map +1 -1
  11. package/dist/api/Denoising.d.ts +4 -2
  12. package/dist/api/Denoising.js +65 -13
  13. package/dist/api/Denoising.js.map +1 -1
  14. package/dist/api/SourceSeparation.js +9 -6
  15. package/dist/api/SourceSeparation.js.map +1 -1
  16. package/dist/api/SpeechLanguageDetection.js +4 -4
  17. package/dist/api/SpeechLanguageDetection.js.map +1 -1
  18. package/dist/api/Synthesis.d.ts +2 -2
  19. package/dist/api/Synthesis.js +10 -7
  20. package/dist/api/Synthesis.js.map +1 -1
  21. package/dist/api/VoiceActivityDetection.js +2 -2
  22. package/dist/api/VoiceActivityDetection.js.map +1 -1
  23. package/dist/audio/AudioBufferConversion.d.ts +2 -2
  24. package/dist/audio/AudioBufferConversion.js +77 -43
  25. package/dist/audio/AudioBufferConversion.js.map +1 -1
  26. package/dist/audio/AudioPlayer.d.ts +7 -5
  27. package/dist/audio/AudioPlayer.js +135 -49
  28. package/dist/audio/AudioPlayer.js.map +1 -1
  29. package/dist/audio/AudioUtilities.d.ts +4 -3
  30. package/dist/audio/AudioUtilities.js +30 -15
  31. package/dist/audio/AudioUtilities.js.map +1 -1
  32. package/dist/audio/SoxPath.js +3 -3
  33. package/dist/audio/SoxPath.js.map +1 -1
  34. package/dist/build-tools/MakeTarballsForInstalledPackages.js +3 -3
  35. package/dist/build-tools/MakeTarballsForInstalledPackages.js.map +1 -1
  36. package/dist/cli/CLI.js +30 -36
  37. package/dist/cli/CLI.js.map +1 -1
  38. package/dist/cli/CLIConfigFile.js +2 -2
  39. package/dist/cli/CLIConfigFile.js.map +1 -1
  40. package/dist/cli/CLIOptions.d.ts +2 -0
  41. package/dist/cli/CLIOptions.js +1 -1
  42. package/dist/cli/CLIOptions.js.map +1 -1
  43. package/dist/codecs/FFMpegTranscoder.d.ts +3 -3
  44. package/dist/codecs/FFMpegTranscoder.js +6 -6
  45. package/dist/codecs/FFMpegTranscoder.js.map +1 -1
  46. package/dist/codecs/TIMITCodec.d.ts +1 -1
  47. package/dist/codecs/TIMITCodec.js +4 -3
  48. package/dist/codecs/TIMITCodec.js.map +1 -1
  49. package/dist/codecs/WaveCodec.d.ts +3 -3
  50. package/dist/codecs/WaveCodec.js +37 -34
  51. package/dist/codecs/WaveCodec.js.map +1 -1
  52. package/dist/data-structures/DynamicTypedArray.d.ts +17 -0
  53. package/dist/data-structures/DynamicTypedArray.js +47 -0
  54. package/dist/data-structures/DynamicTypedArray.js.map +1 -0
  55. package/dist/data-structures/Queue.js.map +1 -0
  56. package/dist/data-structures/WindowedList.js.map +1 -0
  57. package/dist/denoising/NSNet2.d.ts +26 -0
  58. package/dist/denoising/NSNet2.js +128 -0
  59. package/dist/denoising/NSNet2.js.map +1 -0
  60. package/dist/denoising/RNNoise.js +3 -3
  61. package/dist/denoising/RNNoise.js.map +1 -1
  62. package/dist/dsp/FFT.d.ts +6 -1
  63. package/dist/dsp/FFT.js +17 -0
  64. package/dist/dsp/FFT.js.map +1 -1
  65. package/dist/encodings/Ascii.d.ts +10 -0
  66. package/dist/encodings/Ascii.js +41 -0
  67. package/dist/encodings/Ascii.js.map +1 -0
  68. package/dist/encodings/Base64.d.ts +5 -0
  69. package/dist/encodings/Base64.js +114 -0
  70. package/dist/encodings/Base64.js.map +1 -0
  71. package/dist/encodings/Hex.d.ts +3 -0
  72. package/dist/encodings/Hex.js +52 -0
  73. package/dist/encodings/Hex.js.map +1 -0
  74. package/dist/{utilities → encodings}/LEB128.d.ts +1 -1
  75. package/dist/{utilities → encodings}/LEB128.js +4 -4
  76. package/dist/encodings/LEB128.js.map +1 -0
  77. package/dist/{utilities → encodings}/LPVarInt.d.ts +1 -1
  78. package/dist/{utilities → encodings}/LPVarInt.js +6 -6
  79. package/dist/encodings/LPVarInt.js.map +1 -0
  80. package/dist/encodings/TextEncodingsCommon.d.ts +4 -0
  81. package/dist/encodings/TextEncodingsCommon.js +2 -0
  82. package/dist/encodings/TextEncodingsCommon.js.map +1 -0
  83. package/dist/encodings/Utf16.d.ts +10 -0
  84. package/dist/encodings/Utf16.js +36 -0
  85. package/dist/encodings/Utf16.js.map +1 -0
  86. package/dist/encodings/Utf32.d.ts +9 -0
  87. package/dist/encodings/Utf32.js +44 -0
  88. package/dist/encodings/Utf32.js.map +1 -0
  89. package/dist/encodings/Utf8.d.ts +10 -0
  90. package/dist/encodings/Utf8.js +97 -0
  91. package/dist/encodings/Utf8.js.map +1 -0
  92. package/dist/math/MedianFilter.js.map +1 -1
  93. package/dist/nlp/JapaneseSegmentation.js +2 -2
  94. package/dist/nlp/JapaneseSegmentation.js.map +1 -1
  95. package/dist/recognition/GoogleCloudSTT.js +2 -1
  96. package/dist/recognition/GoogleCloudSTT.js.map +1 -1
  97. package/dist/recognition/SileroSTT.js +3 -3
  98. package/dist/recognition/SileroSTT.js.map +1 -1
  99. package/dist/recognition/VoskSTT.js +3 -3
  100. package/dist/recognition/VoskSTT.js.map +1 -1
  101. package/dist/recognition/WhisperCppSTT.js +4 -5
  102. package/dist/recognition/WhisperCppSTT.js.map +1 -1
  103. package/dist/recognition/WhisperSTT.js +8 -7
  104. package/dist/recognition/WhisperSTT.js.map +1 -1
  105. package/dist/server/Client.d.ts +1 -1
  106. package/dist/server/Client.js +2 -1
  107. package/dist/server/Client.js.map +1 -1
  108. package/dist/server/Server.js +5 -4
  109. package/dist/server/Server.js.map +1 -1
  110. package/dist/server/Worker.js +1 -1
  111. package/dist/server/Worker.js.map +1 -1
  112. package/dist/source-separation/MDXNetSourceSeparation.js +1 -1
  113. package/dist/source-separation/MDXNetSourceSeparation.js.map +1 -1
  114. package/dist/speech-search/DTWSpeechSearch.d.ts +1 -1
  115. package/dist/speech-search/DTWSpeechSearch.js +25 -6
  116. package/dist/speech-search/DTWSpeechSearch.js.map +1 -1
  117. package/dist/subtitles/Subtitles.js +2 -2
  118. package/dist/subtitles/Subtitles.js.map +1 -1
  119. package/dist/synthesis/AzureCognitiveServicesTTS.js +17 -18
  120. package/dist/synthesis/AzureCognitiveServicesTTS.js.map +1 -1
  121. package/dist/synthesis/CoquiServerTTS.js +1 -1
  122. package/dist/synthesis/CoquiServerTTS.js.map +1 -1
  123. package/dist/synthesis/ElevenlabsTTS.js +1 -1
  124. package/dist/synthesis/ElevenlabsTTS.js.map +1 -1
  125. package/dist/synthesis/EspeakTTS.d.ts +0 -1
  126. package/dist/synthesis/EspeakTTS.js +0 -9
  127. package/dist/synthesis/EspeakTTS.js.map +1 -1
  128. package/dist/synthesis/FliteTTS.js +7 -8
  129. package/dist/synthesis/FliteTTS.js.map +1 -1
  130. package/dist/synthesis/GoogleCloudTTS.d.ts +1 -1
  131. package/dist/synthesis/GoogleCloudTTS.js +2 -1
  132. package/dist/synthesis/GoogleCloudTTS.js.map +1 -1
  133. package/dist/synthesis/GoogleTranslateTTS.d.ts +1 -1
  134. package/dist/synthesis/GoogleTranslateTTS.js +4 -3
  135. package/dist/synthesis/GoogleTranslateTTS.js.map +1 -1
  136. package/dist/synthesis/MicrosoftEdgeTTS.js +32 -7
  137. package/dist/synthesis/MicrosoftEdgeTTS.js.map +1 -1
  138. package/dist/synthesis/SapiTTS.js +1 -1
  139. package/dist/synthesis/SapiTTS.js.map +1 -1
  140. package/dist/synthesis/StreamlabsPollyTTS.d.ts +1 -1
  141. package/dist/synthesis/StreamlabsPollyTTS.js +1 -1
  142. package/dist/synthesis/StreamlabsPollyTTS.js.map +1 -1
  143. package/dist/synthesis/SvoxPicoTTS.js +6 -6
  144. package/dist/synthesis/SvoxPicoTTS.js.map +1 -1
  145. package/dist/synthesis/VitsTTS.js +2 -2
  146. package/dist/synthesis/VitsTTS.js.map +1 -1
  147. package/dist/tests/Test.js +1 -47
  148. package/dist/tests/Test.js.map +1 -1
  149. package/dist/text-language-detection/FastTextLanguageDetection.js +2 -2
  150. package/dist/text-language-detection/FastTextLanguageDetection.js.map +1 -1
  151. package/dist/typings/TypedArray.d.ts +4 -0
  152. package/dist/typings/TypedArray.js +2 -0
  153. package/dist/typings/TypedArray.js.map +1 -0
  154. package/dist/utilities/BinaryArrayConversion.d.ts +12 -22
  155. package/dist/utilities/BinaryArrayConversion.js +40 -90
  156. package/dist/utilities/BinaryArrayConversion.js.map +1 -1
  157. package/dist/utilities/BinaryUtilities.d.ts +13 -0
  158. package/dist/utilities/BinaryUtilities.js +113 -0
  159. package/dist/utilities/BinaryUtilities.js.map +1 -0
  160. package/dist/utilities/Compression.js +7 -6
  161. package/dist/utilities/Compression.js.map +1 -1
  162. package/dist/utilities/FileDownloader.js +26 -47
  163. package/dist/utilities/FileDownloader.js.map +1 -1
  164. package/dist/utilities/FileReader.d.ts +14 -0
  165. package/dist/utilities/FileReader.js +71 -0
  166. package/dist/utilities/FileReader.js.map +1 -0
  167. package/dist/utilities/FileSystem.d.ts +19 -16
  168. package/dist/utilities/FileSystem.js +170 -109
  169. package/dist/utilities/FileSystem.js.map +1 -1
  170. package/dist/utilities/FileWriter.d.ts +12 -0
  171. package/dist/utilities/FileWriter.js +60 -0
  172. package/dist/utilities/FileWriter.js.map +1 -0
  173. package/dist/utilities/NpmUtilities.d.ts +1 -0
  174. package/dist/utilities/NpmUtilities.js +14 -0
  175. package/dist/utilities/NpmUtilities.js.map +1 -0
  176. package/dist/utilities/PackageManager.js +7 -5
  177. package/dist/utilities/PackageManager.js.map +1 -1
  178. package/dist/utilities/PathUtilities.d.ts +8 -0
  179. package/dist/utilities/PathUtilities.js +28 -7
  180. package/dist/utilities/PathUtilities.js.map +1 -1
  181. package/dist/utilities/SignalChannel.d.ts +3 -1
  182. package/dist/utilities/SignalChannel.js +9 -5
  183. package/dist/utilities/SignalChannel.js.map +1 -1
  184. package/dist/utilities/StringBuilder.d.ts +10 -0
  185. package/dist/utilities/StringBuilder.js +39 -0
  186. package/dist/utilities/StringBuilder.js.map +1 -0
  187. package/dist/utilities/StringUtilities.js.map +1 -1
  188. package/dist/utilities/TarballMaker.js +6 -7
  189. package/dist/utilities/TarballMaker.js.map +1 -1
  190. package/dist/utilities/Timer.js +2 -2
  191. package/dist/utilities/Timer.js.map +1 -1
  192. package/dist/utilities/Utilities.d.ts +11 -5
  193. package/dist/utilities/Utilities.js +69 -33
  194. package/dist/utilities/Utilities.js.map +1 -1
  195. package/dist/utilities/VirtualFileReadStream.d.ts +3 -3
  196. package/dist/utilities/VirtualFileReadStream.js.map +1 -1
  197. package/dist/utilities/WasmMemoryManager.d.ts +5 -2
  198. package/dist/utilities/WasmMemoryManager.js +15 -4
  199. package/dist/utilities/WasmMemoryManager.js.map +1 -1
  200. package/docs/API.md +1 -1
  201. package/docs/Licenses.md +3 -0
  202. package/docs/Options.md +9 -3
  203. package/docs/Tasklist.md +0 -1
  204. package/docs/Technical.md +2 -2
  205. package/package.json +20 -22
  206. package/src/alignment/DTWSequenceAlignment.ts +5 -5
  207. package/src/alignment/SpeechAlignment.ts +6 -6
  208. package/src/api/Alignment.ts +65 -12
  209. package/src/api/Denoising.ts +97 -17
  210. package/src/api/SourceSeparation.ts +11 -8
  211. package/src/api/SpeechLanguageDetection.ts +4 -4
  212. package/src/api/Synthesis.ts +15 -11
  213. package/src/api/VoiceActivityDetection.ts +2 -2
  214. package/src/audio/AudioBufferConversion.ts +84 -45
  215. package/src/audio/AudioPlayer.ts +155 -53
  216. package/src/audio/AudioUtilities.ts +38 -22
  217. package/src/audio/SoxPath.ts +3 -3
  218. package/src/build-tools/MakeTarballsForInstalledPackages.ts +3 -3
  219. package/src/cli/CLI.ts +30 -36
  220. package/src/cli/CLIConfigFile.ts +2 -2
  221. package/src/cli/CLIOptions.ts +4 -1
  222. package/src/codecs/FFMpegTranscoder.ts +11 -11
  223. package/src/codecs/TIMITCodec.ts +5 -4
  224. package/src/codecs/WaveCodec.ts +42 -39
  225. package/src/data-structures/DynamicTypedArray.ts +64 -0
  226. package/src/denoising/NSNet2.ts +182 -0
  227. package/src/denoising/RNNoise.ts +3 -3
  228. package/src/dsp/FFT.ts +21 -1
  229. package/src/encodings/Ascii.ts +60 -0
  230. package/src/encodings/Base64.ts +157 -0
  231. package/src/encodings/Hex.ts +67 -0
  232. package/src/{utilities → encodings}/LEB128.ts +4 -4
  233. package/src/{utilities → encodings}/LPVarInt.ts +6 -6
  234. package/src/encodings/TextEncodingsCommon.ts +4 -0
  235. package/src/encodings/Utf16.ts +52 -0
  236. package/src/encodings/Utf32.ts +62 -0
  237. package/src/encodings/Utf8.ts +117 -0
  238. package/src/math/MedianFilter.ts +0 -2
  239. package/src/nlp/JapaneseSegmentation.ts +2 -2
  240. package/src/recognition/GoogleCloudSTT.ts +2 -1
  241. package/src/recognition/SileroSTT.ts +3 -3
  242. package/src/recognition/VoskSTT.ts +3 -3
  243. package/src/recognition/WhisperCppSTT.ts +4 -5
  244. package/src/recognition/WhisperSTT.ts +8 -7
  245. package/src/server/Client.ts +4 -3
  246. package/src/server/Server.ts +6 -5
  247. package/src/server/Worker.ts +1 -1
  248. package/src/source-separation/MDXNetSourceSeparation.ts +1 -1
  249. package/src/speech-search/DTWSpeechSearch.ts +36 -7
  250. package/src/subtitles/Subtitles.ts +3 -3
  251. package/src/synthesis/AzureCognitiveServicesTTS.ts +18 -15
  252. package/src/synthesis/CoquiServerTTS.ts +2 -2
  253. package/src/synthesis/ElevenlabsTTS.ts +1 -1
  254. package/src/synthesis/EspeakTTS.ts +0 -15
  255. package/src/synthesis/FliteTTS.ts +7 -8
  256. package/src/synthesis/GoogleCloudTTS.ts +3 -2
  257. package/src/synthesis/GoogleTranslateTTS.ts +5 -4
  258. package/src/synthesis/MicrosoftEdgeTTS.ts +47 -15
  259. package/src/synthesis/SapiTTS.ts +1 -1
  260. package/src/synthesis/StreamlabsPollyTTS.ts +1 -1
  261. package/src/synthesis/SvoxPicoTTS.ts +8 -8
  262. package/src/synthesis/VitsTTS.ts +2 -2
  263. package/src/tests/Test.ts +1 -60
  264. package/src/text-language-detection/FastTextLanguageDetection.ts +2 -2
  265. package/src/typings/Fillers.d.ts +2 -4
  266. package/src/typings/TypedArray.ts +5 -0
  267. package/src/utilities/BinaryArrayConversion.ts +51 -125
  268. package/src/utilities/BinaryUtilities.ts +138 -0
  269. package/src/utilities/Compression.ts +7 -6
  270. package/src/utilities/FileDownloader.ts +27 -52
  271. package/src/utilities/FileReader.ts +89 -0
  272. package/src/utilities/FileSystem.ts +213 -120
  273. package/src/utilities/FileWriter.ts +72 -0
  274. package/src/utilities/NpmUtilities.ts +23 -0
  275. package/src/utilities/PackageManager.ts +8 -5
  276. package/src/utilities/PathUtilities.ts +36 -7
  277. package/src/utilities/SignalChannel.ts +14 -7
  278. package/src/utilities/StringBuilder.ts +45 -0
  279. package/src/utilities/StringUtilities.ts +2 -0
  280. package/src/utilities/TarballMaker.ts +6 -7
  281. package/src/utilities/Timer.ts +4 -2
  282. package/src/utilities/Utilities.ts +79 -45
  283. package/src/utilities/VirtualFileReadStream.ts +5 -5
  284. package/src/utilities/WasmMemoryManager.ts +20 -6
  285. package/tsconfig.json +96 -0
  286. package/dist/utilities/DynamicUint8Array.d.ts +0 -9
  287. package/dist/utilities/DynamicUint8Array.js +0 -31
  288. package/dist/utilities/DynamicUint8Array.js.map +0 -1
  289. package/dist/utilities/LEB128.js.map +0 -1
  290. package/dist/utilities/LPVarInt.js.map +0 -1
  291. package/dist/utilities/Queue.js.map +0 -1
  292. package/dist/utilities/WindowedList.js.map +0 -1
  293. package/src/utilities/DynamicUint8Array.ts +0 -39
  294. /package/dist/{utilities → data-structures}/Queue.d.ts +0 -0
  295. /package/dist/{utilities → data-structures}/Queue.js +0 -0
  296. /package/dist/{utilities → data-structures}/WindowedList.d.ts +0 -0
  297. /package/dist/{utilities → data-structures}/WindowedList.js +0 -0
  298. /package/src/{utilities → data-structures}/Queue.ts +0 -0
  299. /package/src/{utilities → data-structures}/WindowedList.ts +0 -0
@@ -283,28 +283,25 @@ export function getRawAudioDuration(rawAudio) {
283
283
  }
284
284
  export async function ensureRawAudio(input, outSampleRate, outChannelCount) {
285
285
  let inputAsRawAudio = input;
286
- if (inputAsRawAudio.audioChannels?.length > 0 && inputAsRawAudio.sampleRate) {
286
+ if (isRawAudio(input)) {
287
287
  const inputAudioChannelCount = inputAsRawAudio.audioChannels.length;
288
288
  if (outChannelCount == 1 && inputAudioChannelCount > 1) {
289
289
  inputAsRawAudio = downmixToMono(inputAsRawAudio);
290
290
  }
291
- if (outChannelCount == 2 && inputAudioChannelCount == 1) {
291
+ else if (outChannelCount == 2 && inputAudioChannelCount == 1) {
292
292
  inputAsRawAudio = cloneRawAudio(inputAsRawAudio);
293
293
  inputAsRawAudio.audioChannels.push(inputAsRawAudio.audioChannels[0].slice());
294
294
  }
295
- if (outChannelCount != null && outChannelCount > 2 && outChannelCount != inputAudioChannelCount) {
295
+ else if (outChannelCount != null && outChannelCount > 2 && outChannelCount != inputAudioChannelCount) {
296
296
  throw new Error(`Can't convert ${inputAudioChannelCount} channels to ${outChannelCount} channels. Channel conversion of raw audio currently only supports mono and stereo inputs.`);
297
297
  }
298
- if (outSampleRate && inputAsRawAudio.sampleRate != outSampleRate) {
298
+ if (outSampleRate && inputAsRawAudio.sampleRate !== outSampleRate) {
299
299
  inputAsRawAudio = await resampleAudioSpeex(inputAsRawAudio, outSampleRate);
300
300
  }
301
301
  }
302
302
  else if (typeof input == 'string' || input instanceof Uint8Array) {
303
- if (input instanceof Uint8Array && !Buffer.isBuffer(input)) {
304
- input = Buffer.from(input);
305
- }
306
- const inputAsStringOrBuffer = input;
307
- inputAsRawAudio = await FFMpegTranscoder.decodeToChannels(inputAsStringOrBuffer, outSampleRate, outChannelCount);
303
+ const inputAsStringOrUint8Array = input;
304
+ inputAsRawAudio = await FFMpegTranscoder.decodeToChannels(inputAsStringOrUint8Array, outSampleRate, outChannelCount);
308
305
  }
309
306
  else {
310
307
  throw new Error('Received an invalid input audio data type.');
@@ -312,16 +309,34 @@ export async function ensureRawAudio(input, outSampleRate, outChannelCount) {
312
309
  return inputAsRawAudio;
313
310
  }
314
311
  export function subtractAudio(audio1, audio2) {
315
- const sampleCount = audio1.audioChannels[0].length;
316
- const subtractedAudioChannels = [new Float32Array(sampleCount), new Float32Array(sampleCount)];
317
- for (let i = 0; i < sampleCount; i++) {
318
- for (let channelIndex = 0; channelIndex < 2; channelIndex++) {
319
- subtractedAudioChannels[channelIndex][i] = audio1.audioChannels[channelIndex][i] - audio2.audioChannels[channelIndex][i];
312
+ if (audio1.sampleRate !== audio2.sampleRate) {
313
+ throw new Error(`Audio sequences have different sample rates`);
314
+ }
315
+ if (audio1.audioChannels.length !== audio2.audioChannels.length) {
316
+ throw new Error(`Audio sequences have different channel counts`);
317
+ }
318
+ const sampleRate = audio1.sampleRate;
319
+ const channelCount = audio1.audioChannels.length;
320
+ const sampleCount = Math.min(audio1.audioChannels[0].length, audio2.audioChannels[0].length);
321
+ const subtractedAudioChannels = [];
322
+ for (let channelIndex = 0; channelIndex < channelCount; channelIndex++) {
323
+ const subtractedSamples = new Float32Array(sampleCount);
324
+ const samples1 = audio1.audioChannels[channelIndex];
325
+ const samples2 = audio2.audioChannels[channelIndex];
326
+ for (let sampleIndex = 0; sampleIndex < sampleCount; sampleIndex++) {
327
+ subtractedSamples[sampleIndex] = samples1[sampleIndex] - samples2[sampleIndex];
320
328
  }
329
+ subtractedAudioChannels.push(subtractedSamples);
321
330
  }
322
- const subtractedRawAudio = { audioChannels: subtractedAudioChannels, sampleRate: audio1.sampleRate };
331
+ const subtractedRawAudio = {
332
+ audioChannels: subtractedAudioChannels,
333
+ sampleRate: sampleRate
334
+ };
323
335
  return subtractedRawAudio;
324
336
  }
337
+ export function isRawAudio(obj) {
338
+ return typeof obj === 'object' && typeof obj.sampleRate === 'number' && Array.isArray(obj.audioChannels);
339
+ }
325
340
  ////////////////////////////////////////////////////////////////////////////////////////////////
326
341
  // Unit conversion
327
342
  ////////////////////////////////////////////////////////////////////////////////////////////////
@@ -1 +1 @@
1
- {"version":3,"file":"AudioUtilities.js","sourceRoot":"","sources":["../../src/audio/AudioUtilities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AudioUtilities.js","sourceRoot":"","sources":["../../src/audio/AudioUtilities.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import path from 'path';
2
1
  import { loadPackage } from '../utilities/PackageManager.js';
3
2
  import { commandExists } from '../utilities/Utilities.js';
4
3
  import { getGlobalOption } from '../api/GlobalOptions.js';
4
+ import { joinPath } from '../utilities/PathUtilities.js';
5
5
  export async function tryResolvingSoxPath() {
6
6
  if (getGlobalOption('soxPath')) {
7
7
  return getGlobalOption('soxPath');
@@ -10,14 +10,14 @@ export async function tryResolvingSoxPath() {
10
10
  const arch = process.arch;
11
11
  if (platform === 'win32') {
12
12
  const soxPackagePath = await loadPackage('sox-14.4.1a-win32');
13
- return path.join(soxPackagePath, 'sox.exe');
13
+ return joinPath(soxPackagePath, 'sox.exe');
14
14
  }
15
15
  if (await commandExists('sox')) {
16
16
  return 'sox';
17
17
  }
18
18
  if (platform === 'linux' && arch === 'x64') {
19
19
  const soxPackagePath = await loadPackage('sox-14.4.2-linux-minimal');
20
- return path.join(soxPackagePath, 'sox');
20
+ return joinPath(soxPackagePath, 'sox');
21
21
  }
22
22
  return undefined;
23
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SoxPath.js","sourceRoot":"","sources":["../../src/audio/SoxPath.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAA;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAEzD,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACxC,IAAI,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;QAChC,OAAO,eAAe,CAAC,SAAS,CAAC,CAAA;IAClC,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;IACjC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;IAEzB,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QAC1B,MAAM,cAAc,GAAG,MAAM,WAAW,CAAC,mBAAmB,CAAC,CAAA;QAE7D,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,CAAA;IAC5C,CAAC;IAED,IAAI,MAAM,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,KAAK,CAAA;IACb,CAAC;IAED,IAAI,QAAQ,KAAK,OAAO,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QAC5C,MAAM,cAAc,GAAG,MAAM,WAAW,CAAC,0BAA0B,CAAC,CAAA;QAEpE,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;IACxC,CAAC;IAED,OAAO,SAAS,CAAA;AACjB,CAAC"}
1
+ {"version":3,"file":"SoxPath.js","sourceRoot":"","sources":["../../src/audio/SoxPath.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAA;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAA;AAExD,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACxC,IAAI,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;QAChC,OAAO,eAAe,CAAC,SAAS,CAAC,CAAA;IAClC,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;IACjC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;IAEzB,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QAC1B,MAAM,cAAc,GAAG,MAAM,WAAW,CAAC,mBAAmB,CAAC,CAAA;QAE7D,OAAO,QAAQ,CAAC,cAAc,EAAE,SAAS,CAAC,CAAA;IAC3C,CAAC;IAED,IAAI,MAAM,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,KAAK,CAAA;IACb,CAAC;IAED,IAAI,QAAQ,KAAK,OAAO,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QAC5C,MAAM,cAAc,GAAG,MAAM,WAAW,CAAC,0BAA0B,CAAC,CAAA;QAEpE,OAAO,QAAQ,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;IACvC,CAAC;IAED,OAAO,SAAS,CAAA;AACjB,CAAC"}
@@ -1,16 +1,16 @@
1
- import path from 'path';
2
1
  import { existsSync, readdir } from '../utilities/FileSystem.js';
3
2
  import { ensureAndGetPackagesDir } from '../utilities/PackageManager.js';
3
+ import { joinPath } from '../utilities/PathUtilities.js';
4
4
  import { createNamedTarball } from '../utilities/TarballMaker.js';
5
5
  import { setupProgramTerminationListeners } from '../utilities/Utilities.js';
6
6
  async function makeTarballsForInstalledPackages(tarballDir, skipIfExists = false) {
7
7
  const packagesDir = await ensureAndGetPackagesDir();
8
8
  const packageList = await readdir(packagesDir);
9
9
  for (const packageName of packageList) {
10
- if (skipIfExists && existsSync(path.join(tarballDir, `${packageName}.tar.gz`))) {
10
+ if (skipIfExists && existsSync(joinPath(tarballDir, `${packageName}.tar.gz`))) {
11
11
  continue;
12
12
  }
13
- const packagePath = path.join(packagesDir, packageName);
13
+ const packagePath = joinPath(packagesDir, packageName);
14
14
  await createNamedTarball(packagePath, packageName, tarballDir);
15
15
  }
16
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MakeTarballsForInstalledPackages.js","sourceRoot":"","sources":["../../src/build-tools/MakeTarballsForInstalledPackages.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AACjE,OAAO,EAAE,gCAAgC,EAAE,MAAM,2BAA2B,CAAA;AAE5E,KAAK,UAAU,gCAAgC,CAAC,UAAkB,EAAE,YAAY,GAAG,KAAK;IACvF,MAAM,WAAW,GAAG,MAAM,uBAAuB,EAAE,CAAA;IACnD,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,CAAA;IAE9C,KAAK,MAAM,WAAW,IAAI,WAAW,EAAE,CAAC;QACvC,IAAI,YAAY,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,WAAW,SAAS,CAAC,CAAC,EAAE,CAAC;YAChF,SAAQ;QACT,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;QACvD,MAAM,kBAAkB,CAAC,WAAW,EAAE,WAAW,EAAE,UAAU,CAAC,CAAA;IAC/D,CAAC;AACF,CAAC;AAED,gCAAgC,EAAE,CAAA;AAElC,MAAM,gCAAgC,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAA;AAErE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"MakeTarballsForInstalledPackages.js","sourceRoot":"","sources":["../../src/build-tools/MakeTarballsForInstalledPackages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAA;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AACjE,OAAO,EAAE,gCAAgC,EAAE,MAAM,2BAA2B,CAAA;AAE5E,KAAK,UAAU,gCAAgC,CAAC,UAAkB,EAAE,YAAY,GAAG,KAAK;IACvF,MAAM,WAAW,GAAG,MAAM,uBAAuB,EAAE,CAAA;IACnD,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,CAAA;IAE9C,KAAK,MAAM,WAAW,IAAI,WAAW,EAAE,CAAC;QACvC,IAAI,YAAY,IAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,WAAW,SAAS,CAAC,CAAC,EAAE,CAAC;YAC/E,SAAQ;QACT,CAAC;QAED,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;QACtD,MAAM,kBAAkB,CAAC,WAAW,EAAE,WAAW,EAAE,UAAU,CAAC,CAAA;IAC/D,CAAC;AACF,CAAC;AAED,gCAAgC,EAAE,CAAA;AAElC,MAAM,gCAAgC,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAA;AAErE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA"}
package/dist/cli/CLI.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import * as API from '../api/API.js';
2
2
  import { parseCLIArguments } from './CLIParser.js';
3
- import { getWithDefault, setupUnhandledExceptionListeners, splitFilenameOnExtendedExtension, stringifyAndFormatJson } from '../utilities/Utilities.js';
3
+ import { parseJSONAndGetType, getWithDefault, parseJson, setupUnhandledExceptionListeners, splitFilenameOnExtendedExtension, stringifyAndFormatJson } from '../utilities/Utilities.js';
4
4
  import { getOptionTypeFromSchema } from './CLIOptionsSchema.js';
5
5
  import { parseConfigFile, parseJSONConfigFile } from './CLIConfigFile.js';
6
6
  import chalk from 'chalk';
@@ -9,20 +9,18 @@ import { subtitlesToText, timelineToSubtitles } from '../subtitles/Subtitles.js'
9
9
  import { Logger, resetActiveLogger } from '../utilities/Logger.js';
10
10
  import { isMainThread, parentPort } from 'node:worker_threads';
11
11
  import { encodeFromChannels, getDefaultFFMpegOptionsForSpeech } from '../codecs/FFMpegTranscoder.js';
12
- import path, { parse as parsePath } from 'node:path';
13
12
  import { splitToParagraphs, splitToWords, wordCharacterPattern } from '../nlp/Segmentation.js';
14
- import { playAudioSamples, playAudioWithWordTimeline } from '../audio/AudioPlayer.js';
13
+ import { playAudioSamplesWithKeyboardControls, playAudioWithWordTimeline } from '../audio/AudioPlayer.js';
15
14
  import { extendDeep } from '../utilities/ObjectUtilities.js';
16
15
  import { addTimeOffsetToTimeline, addWordTextOffsetsToTimeline, roundTimelineProperties } from '../utilities/Timeline.js';
17
- import { ensureDir, existsSync, readAndParseJsonFile, readFile, readdir, writeFileSafe } from '../utilities/FileSystem.js';
16
+ import { ensureDir, existsSync, readAndParseJsonFile, readdir, readFileAsUtf8, writeFileSafe } from '../utilities/FileSystem.js';
18
17
  import { formatLanguageCodeWithName, getShortLanguageCode } from '../utilities/Locale.js';
19
18
  import { ensureAndGetPackagesDir, getVersionTagFromPackageName, loadPackage, resolveVersionTagForUnversionedPackageName } from '../utilities/PackageManager.js';
20
19
  import { removePackage } from '../utilities/PackageManager.js';
21
20
  import { appName } from '../api/Common.js';
22
21
  import { startServer } from '../server/Server.js';
23
22
  import { OpenPromise } from '../utilities/OpenPromise.js';
24
- import JSON5 from 'json5';
25
- import { getLowercaseFileExtension, resolveToModuleRootDir } from '../utilities/PathUtilities.js';
23
+ import { getLowercaseFileExtension, joinPath, parsePath, resolveToModuleRootDir } from '../utilities/PathUtilities.js';
26
24
  import { CLIOptionsKeys } from './CLIOptions.js';
27
25
  import { convertHtmlToText, formatIntegerWithLeadingZeros, formatListWithQuotedElements } from '../utilities/StringUtilities.js';
28
26
  //const log = logToStderr
@@ -350,7 +348,7 @@ export async function speak(operationData) {
350
348
  throw new Error(`The given source file '${sourceFile}' was not found.`);
351
349
  }
352
350
  const sourceFileExtension = getLowercaseFileExtension(sourceFile);
353
- const fileContent = await readFile(sourceFile, { encoding: 'utf-8' });
351
+ const fileContent = await readFileAsUtf8(sourceFile);
354
352
  if (options.ssml && sourceFileExtension != 'xml' && sourceFileExtension != 'ssml') {
355
353
  throw new Error(`SSML option is set, but source file doesn't have an 'xml' or 'ssml' extension.`);
356
354
  }
@@ -363,7 +361,7 @@ export async function speak(operationData) {
363
361
  textSegments = splitToParagraphs(textContent, 'single', 'preserve');
364
362
  }
365
363
  else if (sourceFileExtension == 'srt' || sourceFileExtension == 'vtt') {
366
- const fileContent = await readFile(sourceFile, { encoding: 'utf-8' });
364
+ const fileContent = await readFileAsUtf8(sourceFile);
367
365
  //textSegments = subtitlesToTimeline(fileContent).map(entry => entry.text)
368
366
  textSegments = [subtitlesToText(fileContent)];
369
367
  }
@@ -411,7 +409,7 @@ export async function speak(operationData) {
411
409
  //gainAmount = Math.min(gainAmount, 0)
412
410
  const audioWithAddedGain = applyGainDecibels(segmentData.audio, gainAmount);
413
411
  const segmentWordTimeline = segmentData.timeline.flatMap(sentenceTimeline => sentenceTimeline.timeline);
414
- await playAudioWithWordTimeline(audioWithAddedGain, segmentWordTimeline, segmentData.transcript);
412
+ await playAudioWithWordTimeline(audioWithAddedGain, segmentWordTimeline, segmentData.transcript, cliOptions.player);
415
413
  }
416
414
  }
417
415
  if (options.outputAudioFormat?.codec) {
@@ -474,7 +472,7 @@ export async function transcribe(operationData) {
474
472
  audioToPlay = inputRawAudio;
475
473
  }
476
474
  const normalizedAudioToPlay = normalizeAudioLevel(audioToPlay);
477
- await playAudioWithWordTimeline(normalizedAudioToPlay, wordTimeline, transcript);
475
+ await playAudioWithWordTimeline(normalizedAudioToPlay, wordTimeline, transcript, cliOptions.player);
478
476
  }
479
477
  }
480
478
  export async function align(operationData) {
@@ -496,7 +494,7 @@ export async function align(operationData) {
496
494
  throw new Error(`The given reference file '${alignmentReferenceFile}' was not found.`);
497
495
  }
498
496
  const referenceFileExtension = getLowercaseFileExtension(alignmentReferenceFile);
499
- const fileContent = await readFile(alignmentReferenceFile, { encoding: 'utf-8' });
497
+ const fileContent = await readFileAsUtf8(alignmentReferenceFile);
500
498
  let text;
501
499
  if (referenceFileExtension == 'txt') {
502
500
  text = fileContent;
@@ -547,7 +545,7 @@ export async function align(operationData) {
547
545
  audioToPlay = inputRawAudio;
548
546
  }
549
547
  const normalizedAudioToPlay = normalizeAudioLevel(audioToPlay);
550
- await playAudioWithWordTimeline(normalizedAudioToPlay, wordTimeline, transcript);
548
+ await playAudioWithWordTimeline(normalizedAudioToPlay, wordTimeline, transcript, cliOptions.player);
551
549
  }
552
550
  }
553
551
  export async function alignTranslation(operationData) {
@@ -569,7 +567,7 @@ export async function alignTranslation(operationData) {
569
567
  throw new Error(`The given reference file '${alignmentReferenceFile}' was not found.`);
570
568
  }
571
569
  const referenceFileExtension = getLowercaseFileExtension(alignmentReferenceFile);
572
- const fileContent = await readFile(alignmentReferenceFile, { encoding: 'utf-8' });
570
+ const fileContent = await readFileAsUtf8(alignmentReferenceFile);
573
571
  let text;
574
572
  if (referenceFileExtension == 'txt') {
575
573
  text = fileContent;
@@ -620,7 +618,7 @@ export async function alignTranslation(operationData) {
620
618
  audioToPlay = inputRawAudio;
621
619
  }
622
620
  const normalizedAudioToPlay = normalizeAudioLevel(audioToPlay);
623
- await playAudioWithWordTimeline(normalizedAudioToPlay, wordTimeline, translatedTranscript);
621
+ await playAudioWithWordTimeline(normalizedAudioToPlay, wordTimeline, translatedTranscript, cliOptions.player);
624
622
  }
625
623
  }
626
624
  export async function alignTranscriptAndTranslation(operationData) {
@@ -651,7 +649,7 @@ export async function alignTranscriptAndTranslation(operationData) {
651
649
  let transcript;
652
650
  {
653
651
  const nativeTranscriptFileExtension = getLowercaseFileExtension(nativeTranscriptFilePath);
654
- const fileContent = await readFile(nativeTranscriptFilePath, { encoding: 'utf-8' });
652
+ const fileContent = await readFileAsUtf8(nativeTranscriptFilePath);
655
653
  if (nativeTranscriptFileExtension == 'txt') {
656
654
  transcript = fileContent;
657
655
  }
@@ -668,7 +666,7 @@ export async function alignTranscriptAndTranslation(operationData) {
668
666
  let translatedTranscript;
669
667
  {
670
668
  const translatedTranscriptFileExtension = getLowercaseFileExtension(translatedTranscriptFilePath);
671
- const fileContent = await readFile(translatedTranscriptFilePath, { encoding: 'utf-8' });
669
+ const fileContent = await readFileAsUtf8(translatedTranscriptFilePath);
672
670
  if (translatedTranscriptFileExtension == 'txt') {
673
671
  translatedTranscript = fileContent;
674
672
  }
@@ -718,7 +716,7 @@ export async function alignTranscriptAndTranslation(operationData) {
718
716
  audioToPlay = inputRawAudio;
719
717
  }
720
718
  const normalizedAudioToPlay = normalizeAudioLevel(audioToPlay);
721
- await playAudioWithWordTimeline(normalizedAudioToPlay, translatedWordTimeline, translatedTranscript);
719
+ await playAudioWithWordTimeline(normalizedAudioToPlay, translatedWordTimeline, translatedTranscript, cliOptions.player);
722
720
  }
723
721
  }
724
722
  export async function alignTimelineTranslation(operationData) {
@@ -744,7 +742,7 @@ export async function alignTimelineTranslation(operationData) {
744
742
  throw new Error(`The given reference file '${translationFilePath}' was not found.`);
745
743
  }
746
744
  const translationFileExtension = getLowercaseFileExtension(translationFilePath);
747
- const translationFileContent = await readFile(translationFilePath, { encoding: 'utf-8' });
745
+ const translationFileContent = await readFileAsUtf8(translationFilePath);
748
746
  let translationText;
749
747
  if (translationFileExtension == 'txt') {
750
748
  translationText = translationFileContent;
@@ -779,7 +777,7 @@ export async function alignTimelineTranslation(operationData) {
779
777
  let timelineToPlay;
780
778
  transcriptToPlay = translationText;
781
779
  timelineToPlay = translationWordTimeline;
782
- await playAudioWithWordTimeline(normalizedAudioToPlay, timelineToPlay, transcriptToPlay);
780
+ await playAudioWithWordTimeline(normalizedAudioToPlay, timelineToPlay, transcriptToPlay, cliOptions.player);
783
781
  }
784
782
  }
785
783
  export async function translateText(operationData) {
@@ -794,7 +792,7 @@ export async function translateText(operationData) {
794
792
  throw new Error(`The given input file '${inputFilename}' was not found.`);
795
793
  }
796
794
  const inputFileExtension = getLowercaseFileExtension(inputFilename);
797
- const inputFileContent = await readFile(inputFilename, { encoding: 'utf-8' });
795
+ const inputFileContent = await readFileAsUtf8(inputFilename);
798
796
  let inputText;
799
797
  if (inputFileExtension === 'txt') {
800
798
  inputText = inputFileContent;
@@ -889,7 +887,7 @@ export async function translateSpeech(operationData) {
889
887
  }
890
888
  transcriptToPlay = transcriptToPlay.trim();
891
889
  }
892
- await playAudioWithWordTimeline(normalizedAudioToPlay, timelineToPlay, transcriptToPlay);
890
+ await playAudioWithWordTimeline(normalizedAudioToPlay, timelineToPlay, transcriptToPlay, cliOptions.player);
893
891
  }
894
892
  }
895
893
  export async function detectLanguage(operationData, mode) {
@@ -914,7 +912,7 @@ export async function detectLanguage(operationData, mode) {
914
912
  const options = await optionsLookupToTypedObject(operationOptionsLookup, 'TextLanguageDetectionOptions');
915
913
  allowOverwrite = getWithDefault(cliOptions.overwrite, overwriteByDefault);
916
914
  await checkOutputFilenames(outputFilenames, false, true, false);
917
- let text = await readFile(inputFilePath, { encoding: 'utf-8' });
915
+ let text = await readFileAsUtf8(inputFilePath);
918
916
  if (inputFileExtension == 'srt' || inputFileExtension == 'vtt') {
919
917
  text = subtitlesToText(text);
920
918
  }
@@ -988,7 +986,7 @@ export async function detectVoiceActivity(operationData) {
988
986
  const timelineToPlay = verboseTimeline.map(entry => {
989
987
  return { ...entry, type: 'word' };
990
988
  });
991
- await playAudioWithWordTimeline(normalizedAudio, timelineToPlay);
989
+ await playAudioWithWordTimeline(normalizedAudio, timelineToPlay, cliOptions.player);
992
990
  }
993
991
  }
994
992
  export async function denoise(operationData) {
@@ -1018,7 +1016,7 @@ export async function denoise(operationData) {
1018
1016
  }
1019
1017
  logger.end();
1020
1018
  if (cliOptions.play) {
1021
- await playAudioSamples(denoisedAudio);
1019
+ await playAudioSamplesWithKeyboardControls(denoisedAudio, cliOptions.player);
1022
1020
  }
1023
1021
  }
1024
1022
  export async function isolate(operationData) {
@@ -1047,7 +1045,7 @@ export async function isolate(operationData) {
1047
1045
  }
1048
1046
  logger.end();
1049
1047
  if (cliOptions.play) {
1050
- await playAudioSamples(isolatedRawAudio);
1048
+ await playAudioSamplesWithKeyboardControls(isolatedRawAudio, cliOptions.player);
1051
1049
  }
1052
1050
  }
1053
1051
  export async function listEngines(operationData) {
@@ -1342,20 +1340,16 @@ async function optionsLookupToTypedObject(cliOptionsMap, optionsRoot, additional
1342
1340
  }
1343
1341
  else if (optionType == 'array' || optionType == 'object') {
1344
1342
  try {
1345
- const { default: JSON5 } = await import('json5');
1346
- parsedValue = JSON5.parse(value);
1343
+ parsedValue = await parseJson(value, true);
1347
1344
  }
1348
1345
  catch (e) {
1349
1346
  parsedValue = value;
1350
1347
  }
1351
1348
  }
1352
1349
  else if (optionIsUnion) {
1353
- const isArrayJSON = value.startsWith('[') && value.endsWith(']');
1354
- const isObjectJSON = value.startsWith('{') && value.endsWith('}');
1355
- const isNumberJSON = !isNaN(Number.parseFloat(value));
1356
- const isBooleanJSON = value == 'true' || value == 'false';
1357
- if (isArrayJSON || isObjectJSON || isNumberJSON || isBooleanJSON) {
1358
- parsedValue = JSON5.parse(value);
1350
+ const { parsedValue: json5ParsedValue, jsonType } = await parseJSONAndGetType(value, true);
1351
+ if (jsonType === 'number' || jsonType === 'boolean' || jsonType === 'array' || jsonType === 'object') {
1352
+ parsedValue = json5ParsedValue;
1359
1353
  }
1360
1354
  else {
1361
1355
  parsedValue = value;
@@ -1445,7 +1439,7 @@ function getFileSaver(outputFilePath, allowOverwrite) {
1445
1439
  if (!allowOverwrite) {
1446
1440
  const filenameParts = splitFilenameOnExtendedExtension(parsedPath.base);
1447
1441
  for (let i = 1; existsSync(outputFilePath); i++) {
1448
- outputFilePath = path.join(parsedPath.dir, `${filenameParts[0]}_${formatIntegerWithLeadingZeros(i, 3)}`);
1442
+ outputFilePath = joinPath(parsedPath.dir, `${filenameParts[0]}_${formatIntegerWithLeadingZeros(i, 3)}`);
1449
1443
  if (filenameParts[1]) {
1450
1444
  outputFilePath += `.${filenameParts[1]}`;
1451
1445
  }
@@ -1456,14 +1450,14 @@ function getFileSaver(outputFilePath, allowOverwrite) {
1456
1450
  if (fileExtension == 'txt') {
1457
1451
  fileSaver = async (audio, timeline, text) => {
1458
1452
  await ensureDir(fileDir);
1459
- return writeFileSafe(outputFilePath, text, { encoding: 'utf-8' });
1453
+ return writeFileSafe(outputFilePath, text);
1460
1454
  };
1461
1455
  }
1462
1456
  else if (fileExtension == 'json') {
1463
1457
  fileSaver = async (audio, timeline, text) => {
1464
1458
  await ensureDir(fileDir);
1465
1459
  const roundedTimeline = roundTimelineProperties(timeline);
1466
- return writeFileSafe(outputFilePath, stringifyAndFormatJson(roundedTimeline));
1460
+ return writeFileSafe(outputFilePath, await stringifyAndFormatJson(roundedTimeline));
1467
1461
  };
1468
1462
  }
1469
1463
  else if (fileExtension == 'srt') {