echogarden 0.0.1 → 0.1.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 (295) hide show
  1. package/README.md +59 -1
  2. package/data/lexicons/heteronyms.json +674 -0
  3. package/data/schemas/options.json +1057 -0
  4. package/data/tables/lcid-table.json +7427 -0
  5. package/dist/alignment/DTWMfccSequenceAlignment.d.ts +2 -0
  6. package/dist/alignment/DTWMfccSequenceAlignment.js +26 -0
  7. package/dist/alignment/DTWMfccSequenceAlignment.js.map +1 -0
  8. package/dist/alignment/DTWSequenceAlignment.d.ts +5 -0
  9. package/dist/alignment/DTWSequenceAlignment.js +99 -0
  10. package/dist/alignment/DTWSequenceAlignment.js.map +1 -0
  11. package/dist/alignment/DTWSequenceAlignmentWindowed.d.ts +5 -0
  12. package/dist/alignment/DTWSequenceAlignmentWindowed.js +161 -0
  13. package/dist/alignment/DTWSequenceAlignmentWindowed.js.map +1 -0
  14. package/dist/alignment/LevenshteinSequenceAlignment.d.ts +5 -0
  15. package/dist/alignment/LevenshteinSequenceAlignment.js +102 -0
  16. package/dist/alignment/LevenshteinSequenceAlignment.js.map +1 -0
  17. package/dist/alignment/SpeechAlignment.d.ts +27 -0
  18. package/dist/alignment/SpeechAlignment.js +266 -0
  19. package/dist/alignment/SpeechAlignment.js.map +1 -0
  20. package/dist/api/API.d.ts +8 -0
  21. package/dist/api/API.js +10 -0
  22. package/dist/api/API.js.map +1 -0
  23. package/dist/api/APIOptions.d.ts +12 -0
  24. package/dist/api/APIOptions.js +2 -0
  25. package/dist/api/APIOptions.js.map +1 -0
  26. package/dist/api/Alignment.d.ts +32 -0
  27. package/dist/api/Alignment.js +134 -0
  28. package/dist/api/Alignment.js.map +1 -0
  29. package/dist/api/Denoising.d.ts +14 -0
  30. package/dist/api/Denoising.js +66 -0
  31. package/dist/api/Denoising.js.map +1 -0
  32. package/dist/api/Globals.d.ts +1 -0
  33. package/dist/api/Globals.js +2 -0
  34. package/dist/api/Globals.js.map +1 -0
  35. package/dist/api/LanguageDetection.d.ts +49 -0
  36. package/dist/api/LanguageDetection.js +118 -0
  37. package/dist/api/LanguageDetection.js.map +1 -0
  38. package/dist/api/Recognition.d.ts +49 -0
  39. package/dist/api/Recognition.js +162 -0
  40. package/dist/api/Recognition.js.map +1 -0
  41. package/dist/api/Synthesis.d.ts +125 -0
  42. package/dist/api/Synthesis.js +892 -0
  43. package/dist/api/Synthesis.js.map +1 -0
  44. package/dist/api/Translation.d.ts +25 -0
  45. package/dist/api/Translation.js +69 -0
  46. package/dist/api/Translation.js.map +1 -0
  47. package/dist/api/Vad.d.ts +25 -0
  48. package/dist/api/Vad.js +88 -0
  49. package/dist/api/Vad.js.map +1 -0
  50. package/dist/audio/AudioBufferConversion.d.ts +15 -0
  51. package/dist/audio/AudioBufferConversion.js +228 -0
  52. package/dist/audio/AudioBufferConversion.js.map +1 -0
  53. package/dist/audio/AudioPlayer.d.ts +9 -0
  54. package/dist/audio/AudioPlayer.js +232 -0
  55. package/dist/audio/AudioPlayer.js.map +1 -0
  56. package/dist/audio/AudioRecorder.d.ts +3 -0
  57. package/dist/audio/AudioRecorder.js +68 -0
  58. package/dist/audio/AudioRecorder.js.map +1 -0
  59. package/dist/audio/AudioUtilities.d.ts +48 -0
  60. package/dist/audio/AudioUtilities.js +209 -0
  61. package/dist/audio/AudioUtilities.js.map +1 -0
  62. package/dist/audio/SoxPath.d.ts +1 -0
  63. package/dist/audio/SoxPath.js +19 -0
  64. package/dist/audio/SoxPath.js.map +1 -0
  65. package/dist/cli/CLI.d.ts +8 -0
  66. package/dist/cli/CLI.js +860 -0
  67. package/dist/cli/CLI.js.map +1 -0
  68. package/dist/cli/CLIConfigFile.d.ts +3 -0
  69. package/dist/cli/CLIConfigFile.js +62 -0
  70. package/dist/cli/CLIConfigFile.js.map +1 -0
  71. package/dist/cli/CLILauncher.d.ts +2 -0
  72. package/dist/cli/CLILauncher.js +22 -0
  73. package/dist/cli/CLILauncher.js.map +1 -0
  74. package/dist/cli/CLIOptionsSchema.d.ts +5 -0
  75. package/dist/cli/CLIOptionsSchema.js +36 -0
  76. package/dist/cli/CLIOptionsSchema.js.map +1 -0
  77. package/dist/cli/CLIParser.d.ts +6 -0
  78. package/dist/cli/CLIParser.js +34 -0
  79. package/dist/cli/CLIParser.js.map +1 -0
  80. package/dist/cli/CLIStarter.d.ts +1 -0
  81. package/dist/cli/CLIStarter.js +3 -0
  82. package/dist/cli/CLIStarter.js.map +1 -0
  83. package/dist/codecs/FFMpegTranscoder.d.ts +20 -0
  84. package/dist/codecs/FFMpegTranscoder.js +169 -0
  85. package/dist/codecs/FFMpegTranscoder.js.map +1 -0
  86. package/dist/codecs/TIMITCodec.d.ts +9 -0
  87. package/dist/codecs/TIMITCodec.js +14 -0
  88. package/dist/codecs/TIMITCodec.js.map +1 -0
  89. package/dist/codecs/WaveCodec.d.ts +19 -0
  90. package/dist/codecs/WaveCodec.js +208 -0
  91. package/dist/codecs/WaveCodec.js.map +1 -0
  92. package/dist/denoising/RNNoise.d.ts +6 -0
  93. package/dist/denoising/RNNoise.js +68 -0
  94. package/dist/denoising/RNNoise.js.map +1 -0
  95. package/dist/dsp/BiquadFilter.d.ts +26 -0
  96. package/dist/dsp/BiquadFilter.js +399 -0
  97. package/dist/dsp/BiquadFilter.js.map +1 -0
  98. package/dist/dsp/FFT.d.ts +9 -0
  99. package/dist/dsp/FFT.js +135 -0
  100. package/dist/dsp/FFT.js.map +1 -0
  101. package/dist/dsp/MFCC.d.ts +25 -0
  102. package/dist/dsp/MFCC.js +162 -0
  103. package/dist/dsp/MFCC.js.map +1 -0
  104. package/dist/dsp/MelSpectogram.d.ts +19 -0
  105. package/dist/dsp/MelSpectogram.js +102 -0
  106. package/dist/dsp/MelSpectogram.js.map +1 -0
  107. package/dist/dsp/Rubberband.d.ts +52 -0
  108. package/dist/dsp/Rubberband.js +186 -0
  109. package/dist/dsp/Rubberband.js.map +1 -0
  110. package/dist/dsp/Sonic.d.ts +2 -0
  111. package/dist/dsp/Sonic.js +39 -0
  112. package/dist/dsp/Sonic.js.map +1 -0
  113. package/dist/dsp/SpeexResampler.d.ts +3 -0
  114. package/dist/dsp/SpeexResampler.js +53 -0
  115. package/dist/dsp/SpeexResampler.js.map +1 -0
  116. package/dist/math/VectorMath.d.ts +70 -0
  117. package/dist/math/VectorMath.js +564 -0
  118. package/dist/math/VectorMath.js.map +1 -0
  119. package/dist/nlp/ChineseSegmentation.d.ts +1 -0
  120. package/dist/nlp/ChineseSegmentation.js +53 -0
  121. package/dist/nlp/ChineseSegmentation.js.map +1 -0
  122. package/dist/nlp/CompromiseNLP.d.ts +15 -0
  123. package/dist/nlp/CompromiseNLP.js +66 -0
  124. package/dist/nlp/CompromiseNLP.js.map +1 -0
  125. package/dist/nlp/EspeakPhonemizer.d.ts +4 -0
  126. package/dist/nlp/EspeakPhonemizer.js +133 -0
  127. package/dist/nlp/EspeakPhonemizer.js.map +1 -0
  128. package/dist/nlp/IPA.d.ts +19 -0
  129. package/dist/nlp/IPA.js +113 -0
  130. package/dist/nlp/IPA.js.map +1 -0
  131. package/dist/nlp/JapaneseSegmentation.d.ts +1 -0
  132. package/dist/nlp/JapaneseSegmentation.js +40 -0
  133. package/dist/nlp/JapaneseSegmentation.js.map +1 -0
  134. package/dist/nlp/Lexicon.d.ts +17 -0
  135. package/dist/nlp/Lexicon.js +6 -0
  136. package/dist/nlp/Lexicon.js.map +1 -0
  137. package/dist/nlp/PhoneConversion.d.ts +6 -0
  138. package/dist/nlp/PhoneConversion.js +467 -0
  139. package/dist/nlp/PhoneConversion.js.map +1 -0
  140. package/dist/nlp/Segmentation.d.ts +41 -0
  141. package/dist/nlp/Segmentation.js +158 -0
  142. package/dist/nlp/Segmentation.js.map +1 -0
  143. package/dist/nlp/TextNormalizer.d.ts +4 -0
  144. package/dist/nlp/TextNormalizer.js +69 -0
  145. package/dist/nlp/TextNormalizer.js.map +1 -0
  146. package/dist/recognition/AmazonTranscribeSTT.d.ts +6 -0
  147. package/dist/recognition/AmazonTranscribeSTT.js +79 -0
  148. package/dist/recognition/AmazonTranscribeSTT.js.map +1 -0
  149. package/dist/recognition/AzureCognitiveServicesSTT.d.ts +7 -0
  150. package/dist/recognition/AzureCognitiveServicesSTT.js +51 -0
  151. package/dist/recognition/AzureCognitiveServicesSTT.js.map +1 -0
  152. package/dist/recognition/GoogleCloudSTT.d.ts +7 -0
  153. package/dist/recognition/GoogleCloudSTT.js +66 -0
  154. package/dist/recognition/GoogleCloudSTT.js.map +1 -0
  155. package/dist/recognition/SileroSTT.d.ts +9 -0
  156. package/dist/recognition/SileroSTT.js +125 -0
  157. package/dist/recognition/SileroSTT.js.map +1 -0
  158. package/dist/recognition/VoskSTT.d.ts +10 -0
  159. package/dist/recognition/VoskSTT.js +78 -0
  160. package/dist/recognition/VoskSTT.js.map +1 -0
  161. package/dist/recognition/WhisperSTT.d.ts +69 -0
  162. package/dist/recognition/WhisperSTT.js +977 -0
  163. package/dist/recognition/WhisperSTT.js.map +1 -0
  164. package/dist/server/Server.d.ts +1 -0
  165. package/dist/server/Server.js +18 -0
  166. package/dist/server/Server.js.map +1 -0
  167. package/dist/speech-language-detection/SileroLanguageDetection.d.ts +9 -0
  168. package/dist/speech-language-detection/SileroLanguageDetection.js +47 -0
  169. package/dist/speech-language-detection/SileroLanguageDetection.js.map +1 -0
  170. package/dist/subtitles/Subtitles.d.ts +25 -0
  171. package/dist/subtitles/Subtitles.js +286 -0
  172. package/dist/subtitles/Subtitles.js.map +1 -0
  173. package/dist/synthesis/AwsPollyTTS.d.ts +7 -0
  174. package/dist/synthesis/AwsPollyTTS.js +51 -0
  175. package/dist/synthesis/AwsPollyTTS.js.map +1 -0
  176. package/dist/synthesis/AzureCognitiveServicesTTS.d.ts +9 -0
  177. package/dist/synthesis/AzureCognitiveServicesTTS.js +103 -0
  178. package/dist/synthesis/AzureCognitiveServicesTTS.js.map +1 -0
  179. package/dist/synthesis/CoquiServerTTS.d.ts +6 -0
  180. package/dist/synthesis/CoquiServerTTS.js +22 -0
  181. package/dist/synthesis/CoquiServerTTS.js.map +1 -0
  182. package/dist/synthesis/ElevenLabsTTS.d.ts +8 -0
  183. package/dist/synthesis/ElevenLabsTTS.js +48 -0
  184. package/dist/synthesis/ElevenLabsTTS.js.map +1 -0
  185. package/dist/synthesis/EspeakTTS.d.ts +46 -0
  186. package/dist/synthesis/EspeakTTS.js +353 -0
  187. package/dist/synthesis/EspeakTTS.js.map +1 -0
  188. package/dist/synthesis/FliteTTS.d.ts +17 -0
  189. package/dist/synthesis/FliteTTS.js +326 -0
  190. package/dist/synthesis/FliteTTS.js.map +1 -0
  191. package/dist/synthesis/GoogleCloudTTS.d.ts +16 -0
  192. package/dist/synthesis/GoogleCloudTTS.js +72 -0
  193. package/dist/synthesis/GoogleCloudTTS.js.map +1 -0
  194. package/dist/synthesis/GoogleTranslateTTS.d.ts +13 -0
  195. package/dist/synthesis/GoogleTranslateTTS.js +177 -0
  196. package/dist/synthesis/GoogleTranslateTTS.js.map +1 -0
  197. package/dist/synthesis/MicrosoftEdgeTTS.d.ts +10 -0
  198. package/dist/synthesis/MicrosoftEdgeTTS.js +216 -0
  199. package/dist/synthesis/MicrosoftEdgeTTS.js.map +1 -0
  200. package/dist/synthesis/SamTTS.d.ts +4 -0
  201. package/dist/synthesis/SamTTS.js +21 -0
  202. package/dist/synthesis/SamTTS.js.map +1 -0
  203. package/dist/synthesis/SapiTTS.d.ts +9 -0
  204. package/dist/synthesis/SapiTTS.js +211 -0
  205. package/dist/synthesis/SapiTTS.js.map +1 -0
  206. package/dist/synthesis/StreamlabsPollyTTS.d.ts +12 -0
  207. package/dist/synthesis/StreamlabsPollyTTS.js +88 -0
  208. package/dist/synthesis/StreamlabsPollyTTS.js.map +1 -0
  209. package/dist/synthesis/SvoxPicoTTS.d.ts +11 -0
  210. package/dist/synthesis/SvoxPicoTTS.js +236 -0
  211. package/dist/synthesis/SvoxPicoTTS.js.map +1 -0
  212. package/dist/synthesis/VitsTTS.d.ts +27 -0
  213. package/dist/synthesis/VitsTTS.js +359 -0
  214. package/dist/synthesis/VitsTTS.js.map +1 -0
  215. package/dist/tests/Test.d.ts +1 -0
  216. package/dist/tests/Test.js +10 -0
  217. package/dist/tests/Test.js.map +1 -0
  218. package/dist/text-language-detection/FastTextLanguageDetection.d.ts +2 -0
  219. package/dist/text-language-detection/FastTextLanguageDetection.js +38 -0
  220. package/dist/text-language-detection/FastTextLanguageDetection.js.map +1 -0
  221. package/dist/text-language-detection/TinyLDLanguageDetection.d.ts +2 -0
  222. package/dist/text-language-detection/TinyLDLanguageDetection.js +12 -0
  223. package/dist/text-language-detection/TinyLDLanguageDetection.js.map +1 -0
  224. package/dist/utilities/BinaryArrayConversion.d.ts +15 -0
  225. package/dist/utilities/BinaryArrayConversion.js +115 -0
  226. package/dist/utilities/BinaryArrayConversion.js.map +1 -0
  227. package/dist/utilities/Compression.d.ts +4 -0
  228. package/dist/utilities/Compression.js +67 -0
  229. package/dist/utilities/Compression.js.map +1 -0
  230. package/dist/utilities/FileDownloader.d.ts +3 -0
  231. package/dist/utilities/FileDownloader.js +147 -0
  232. package/dist/utilities/FileDownloader.js.map +1 -0
  233. package/dist/utilities/FileSystem.d.ts +30 -0
  234. package/dist/utilities/FileSystem.js +141 -0
  235. package/dist/utilities/FileSystem.js.map +1 -0
  236. package/dist/utilities/Hashing.d.ts +10 -0
  237. package/dist/utilities/Hashing.js +169 -0
  238. package/dist/utilities/Hashing.js.map +1 -0
  239. package/dist/utilities/Locale.d.ts +9 -0
  240. package/dist/utilities/Locale.js +65 -0
  241. package/dist/utilities/Locale.js.map +1 -0
  242. package/dist/utilities/Logger.d.ts +11 -0
  243. package/dist/utilities/Logger.js +49 -0
  244. package/dist/utilities/Logger.js.map +1 -0
  245. package/dist/utilities/NdArrayUtilities.d.ts +3 -0
  246. package/dist/utilities/NdArrayUtilities.js +22 -0
  247. package/dist/utilities/NdArrayUtilities.js.map +1 -0
  248. package/dist/utilities/ObjectUtilities.d.ts +4 -0
  249. package/dist/utilities/ObjectUtilities.js +132 -0
  250. package/dist/utilities/ObjectUtilities.js.map +1 -0
  251. package/dist/utilities/OpenPromise.d.ts +6 -0
  252. package/dist/utilities/OpenPromise.js +12 -0
  253. package/dist/utilities/OpenPromise.js.map +1 -0
  254. package/dist/utilities/PackageManager.d.ts +4 -0
  255. package/dist/utilities/PackageManager.js +46 -0
  256. package/dist/utilities/PackageManager.js.map +1 -0
  257. package/dist/utilities/RandomGenerator.d.ts +35 -0
  258. package/dist/utilities/RandomGenerator.js +149 -0
  259. package/dist/utilities/RandomGenerator.js.map +1 -0
  260. package/dist/utilities/TarballMaker.d.ts +4 -0
  261. package/dist/utilities/TarballMaker.js +50 -0
  262. package/dist/utilities/TarballMaker.js.map +1 -0
  263. package/dist/utilities/Timeline.d.ts +20 -0
  264. package/dist/utilities/Timeline.js +110 -0
  265. package/dist/utilities/Timeline.js.map +1 -0
  266. package/dist/utilities/Timer.d.ts +13 -0
  267. package/dist/utilities/Timer.js +70 -0
  268. package/dist/utilities/Timer.js.map +1 -0
  269. package/dist/utilities/Utilities.d.ts +68 -0
  270. package/dist/utilities/Utilities.js +305 -0
  271. package/dist/utilities/Utilities.js.map +1 -0
  272. package/dist/utilities/WasmMemoryManager.d.ts +142 -0
  273. package/dist/utilities/WasmMemoryManager.js +407 -0
  274. package/dist/utilities/WasmMemoryManager.js.map +1 -0
  275. package/dist/utilities/WebReader.d.ts +1 -0
  276. package/dist/utilities/WebReader.js +47 -0
  277. package/dist/utilities/WebReader.js.map +1 -0
  278. package/dist/utilities/WikipediaReader.d.ts +1 -0
  279. package/dist/utilities/WikipediaReader.js +31 -0
  280. package/dist/utilities/WikipediaReader.js.map +1 -0
  281. package/dist/voice-activity-detection/SileroVAD.d.ts +13 -0
  282. package/dist/voice-activity-detection/SileroVAD.js +58 -0
  283. package/dist/voice-activity-detection/SileroVAD.js.map +1 -0
  284. package/dist/voice-activity-detection/WebRtcVAD.d.ts +3 -0
  285. package/dist/voice-activity-detection/WebRtcVAD.js +53 -0
  286. package/dist/voice-activity-detection/WebRtcVAD.js.map +1 -0
  287. package/docs/CLI.md +234 -0
  288. package/docs/Development.md +3 -0
  289. package/docs/Engines.md +80 -0
  290. package/docs/Licenses.md +37 -0
  291. package/docs/Options.md +192 -0
  292. package/docs/Roadmap.md +16 -0
  293. package/docs/Technical.md +72 -0
  294. package/package.json +119 -19
  295. package/cli.js +0 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CLI.js","sourceRoot":"","sources":["../../src/cli/CLI.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function parseConfigFile(path: string): Promise<ParsedConfigFile>;
2
+ export declare function parseJSONConfigFile(path: string): Promise<ParsedConfigFile>;
3
+ export type ParsedConfigFile = Map<string, Map<string, string>>;
@@ -0,0 +1,62 @@
1
+ import { readAndParseJsonFile, readFile } from "../utilities/FileSystem.js";
2
+ export async function parseConfigFile(path) {
3
+ const fileContent = await readFile(path, { encoding: "utf-8" });
4
+ const lines = fileContent
5
+ .split(/\r?\n/g)
6
+ .map(line => line.trim());
7
+ const sectionRegExp = /\s*\[(.*)\]\s*$/;
8
+ const sectionMap = new Map();
9
+ let currentSectionName = "";
10
+ for (let lineIndex = 0; lineIndex < lines.length; lineIndex++) {
11
+ const line = lines[lineIndex];
12
+ if (line.length == 0 || line.startsWith("#")) {
13
+ continue;
14
+ }
15
+ const sectionMatch = sectionRegExp.exec(line);
16
+ if (sectionMatch) {
17
+ currentSectionName = sectionMatch[1];
18
+ continue;
19
+ }
20
+ if (!(sectionMap.has(currentSectionName))) {
21
+ sectionMap.set(currentSectionName, new Map());
22
+ }
23
+ const splitPoint = line.indexOf("=");
24
+ let key;
25
+ let value;
26
+ if (splitPoint == 0) {
27
+ throw new Error(`Invalid empty key on line ${lineIndex + 1}`);
28
+ }
29
+ else if (splitPoint > 0) {
30
+ key = line.substring(0, splitPoint).trim();
31
+ value = line.substring(splitPoint + 1).trim();
32
+ if (value) {
33
+ sectionMap.get(currentSectionName).set(key, value);
34
+ }
35
+ }
36
+ }
37
+ return sectionMap;
38
+ }
39
+ export async function parseJSONConfigFile(path) {
40
+ const parsedJSON = await readAndParseJsonFile(path);
41
+ const result = new Map();
42
+ for (const command in parsedJSON) {
43
+ const commandObj = parsedJSON[command];
44
+ const commandMap = new Map();
45
+ function addFromObject(obj, pathPrefix) {
46
+ for (const propertyName in obj) {
47
+ const propertyValue = obj[propertyName];
48
+ const propertyPath = pathPrefix == "" ? propertyName : `${pathPrefix}.${propertyName}`;
49
+ if (typeof propertyValue == "object") {
50
+ addFromObject(propertyValue, propertyPath);
51
+ }
52
+ else {
53
+ commandMap.set(propertyPath, propertyValue);
54
+ }
55
+ }
56
+ }
57
+ addFromObject(commandObj, "");
58
+ result.set(command, commandMap);
59
+ }
60
+ return result;
61
+ }
62
+ //# sourceMappingURL=CLIConfigFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CLIConfigFile.js","sourceRoot":"","sources":["../../src/cli/CLIConfigFile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
@@ -0,0 +1,22 @@
1
+ #!/usr/bin/env node
2
+ import { spawn } from 'child_process';
3
+ import { resolve } from 'path';
4
+ import { setupProgramTerminationListeners, setupUnhandledExceptionListeners } from '../utilities/Utilities.js';
5
+ setupUnhandledExceptionListeners();
6
+ setupProgramTerminationListeners();
7
+ const cmd = process.argv[0];
8
+ const scriptArgs = process.argv.slice(2);
9
+ const cliScriptPath = resolve(process.cwd(), "dist/cli/CLIStarter.js");
10
+ const args = [
11
+ "--no-warnings",
12
+ "--no-experimental-fetch",
13
+ "--experimental-wasm-threads",
14
+ "--experimental-wasi-unstable-preview1",
15
+ cliScriptPath,
16
+ ...scriptArgs
17
+ ];
18
+ const child = spawn(cmd, args, { stdio: "inherit" });
19
+ child.on("close", code => {
20
+ process.exit(code);
21
+ });
22
+ //# sourceMappingURL=CLILauncher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CLILauncher.js","sourceRoot":"","sources":["../../src/cli/CLILauncher.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAC9B,OAAO,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,MAAM,2BAA2B,CAAA;AAE9G,gCAAgC,EAAE,CAAA;AAClC,gCAAgC,EAAE,CAAA;AAElC,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAC3B,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAExC,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,wBAAwB,CAAC,CAAA;AAEtE,MAAM,IAAI,GAAG;IACZ,eAAe;IACf,yBAAyB;IACzB,6BAA6B;IAC7B,uCAAuC;IACvC,aAAa;IACb,GAAG,UAAU;CACb,CAAA;AAED,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;AAEpD,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE;IACxB,OAAO,CAAC,IAAI,CAAC,IAAc,CAAC,CAAA;AAC7B,CAAC,CAAC,CAAA"}
@@ -0,0 +1,5 @@
1
+ export declare function getOptionTypeFromSchema(path: string[], schema: any): SchemaTypeDefinition;
2
+ export type SchemaTypeDefinition = {
3
+ type: string;
4
+ enum?: any[];
5
+ };
@@ -0,0 +1,36 @@
1
+ export function getOptionTypeFromSchema(path, schema) {
2
+ const definitions = schema.definitions;
3
+ let currentObject = definitions;
4
+ for (let keyIndex = 0; keyIndex < path.length; keyIndex++) {
5
+ const isLastKey = keyIndex == path.length - 1;
6
+ const key = path[keyIndex];
7
+ currentObject = currentObject[key];
8
+ if (!currentObject) {
9
+ throw new Error(`'${key}' is not a valid property of '${path.slice(0, keyIndex).join(".")}'.`);
10
+ }
11
+ if ("$ref" in currentObject) {
12
+ const refString = currentObject['$ref'];
13
+ const parsedRef = refString.substring(refString.lastIndexOf('/') + 1);
14
+ currentObject = definitions[parsedRef];
15
+ }
16
+ const currentObjectType = currentObject['type'];
17
+ if (isLastKey) {
18
+ let possibleValues = undefined;
19
+ if ('enum' in currentObject) {
20
+ possibleValues = currentObject['enum'];
21
+ }
22
+ else if ('const' in currentObject) {
23
+ possibleValues = [currentObject['const']];
24
+ }
25
+ return { type: currentObjectType, enum: possibleValues };
26
+ }
27
+ if (currentObjectType == 'object') {
28
+ currentObject = currentObject['properties'];
29
+ }
30
+ else {
31
+ throw new Error(`Property '${key}' is not an object, but has type ${currentObjectType}`);
32
+ }
33
+ }
34
+ return { type: "", enum: undefined };
35
+ }
36
+ //# sourceMappingURL=CLIOptionsSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CLIOptionsSchema.js","sourceRoot":"","sources":["../../src/cli/CLIOptionsSchema.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,uBAAuB,CAAC,IAAc,EAAE,MAAW;IAClE,MAAM,WAAW,GAAG,MAAM,CAAC,WAAkB,CAAA;IAE7C,IAAI,aAAa,GAAG,WAAW,CAAA;IAE/B,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE;QAC1D,MAAM,SAAS,GAAG,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;QAE7C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAA;QAE1B,aAAa,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;QAElC,IAAI,CAAC,aAAa,EAAE;YACnB,MAAM,IAAI,KAAK,CAAC,IAAI,GAAG,iCAAiC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;SAC9F;QAED,IAAI,MAAM,IAAI,aAAa,EAAE;YAC5B,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,CAAW,CAAA;YACjD,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;YAErE,aAAa,GAAG,WAAW,CAAC,SAAS,CAAC,CAAA;SACtC;QAED,MAAM,iBAAiB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;QAE/C,IAAI,SAAS,EAAE;YACd,IAAI,cAAc,GAAsB,SAAS,CAAA;YAEjD,IAAI,MAAM,IAAI,aAAa,EAAE;gBAC5B,cAAc,GAAG,aAAa,CAAC,MAAM,CAAU,CAAA;aAC/C;iBAAM,IAAI,OAAO,IAAI,aAAa,EAAE;gBACpC,cAAc,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAA;aACzC;YAED,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,cAAc,EAAE,CAAA;SACxD;QAED,IAAI,iBAAiB,IAAI,QAAQ,EAAE;YAClC,aAAa,GAAG,aAAa,CAAC,YAAY,CAAC,CAAA;SAC3C;aAAM;YACN,MAAM,IAAI,KAAK,CAAC,aAAa,GAAG,oCAAoC,iBAAiB,EAAE,CAAC,CAAA;SACxF;KACD;IAED,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;AACrC,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare function parseCLIArguments(command: string, args: string[]): CLIArguments;
2
+ export type CLIArguments = {
3
+ command: string;
4
+ commandArgs: string[];
5
+ options: Map<string, string>;
6
+ };
@@ -0,0 +1,34 @@
1
+ export function parseCLIArguments(command, args) {
2
+ const parsedArgs = {
3
+ command,
4
+ commandArgs: [],
5
+ options: new Map(),
6
+ };
7
+ for (let i = 0; i < args.length; i++) {
8
+ const currentArg = args[i];
9
+ const currentArgIsNewOption = currentArg.startsWith("-");
10
+ if (currentArgIsNewOption) {
11
+ if (!currentArg.startsWith("--")) {
12
+ throw new Error(`'${currentArg}' has a single dash prefix. You should use '-${currentArg}' instead.`);
13
+ }
14
+ const optionText = currentArg.substring(2);
15
+ const indexOfEquals = optionText.indexOf("=");
16
+ if (indexOfEquals == 0) {
17
+ throw new Error("An option cannot have an empty name.");
18
+ }
19
+ else if (indexOfEquals == -1) {
20
+ parsedArgs.options.set(optionText, "");
21
+ }
22
+ else {
23
+ const key = optionText.substring(0, indexOfEquals);
24
+ const value = optionText.substring(indexOfEquals + 1);
25
+ parsedArgs.options.set(key, value);
26
+ }
27
+ }
28
+ else {
29
+ parsedArgs.commandArgs.push(currentArg);
30
+ }
31
+ }
32
+ return parsedArgs;
33
+ }
34
+ //# sourceMappingURL=CLIParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CLIParser.js","sourceRoot":"","sources":["../../src/cli/CLIParser.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,iBAAiB,CAAC,OAAe,EAAE,IAAc;IAChE,MAAM,UAAU,GAAiB;QAChC,OAAO;QACP,WAAW,EAAE,EAAE;QACf,OAAO,EAAE,IAAI,GAAG,EAAE;KAClB,CAAA;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACrC,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QAC1B,MAAM,qBAAqB,GAAG,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QAExD,IAAI,qBAAqB,EAAE;YAC1B,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;gBACjC,MAAM,IAAI,KAAK,CAAC,IAAI,UAAU,gDAAgD,UAAU,YAAY,CAAC,CAAA;aACrG;YAED,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;YAE1C,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YAC7C,IAAI,aAAa,IAAI,CAAC,EAAE;gBACvB,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;aACvD;iBAAM,IAAI,aAAa,IAAI,CAAC,CAAC,EAAE;gBAC/B,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;aACtC;iBAAM;gBACN,MAAM,GAAG,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa,CAAC,CAAA;gBAClD,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,aAAa,GAAG,CAAC,CAAC,CAAA;gBACrD,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;aAClC;SACD;aAAM;YACN,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;SACvC;KACD;IAED,OAAO,UAAU,CAAA;AAClB,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ import { start } from './CLI.js';
2
+ start();
3
+ //# sourceMappingURL=CLIStarter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CLIStarter.js","sourceRoot":"","sources":["../../src/cli/CLIStarter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAEhC,KAAK,EAAE,CAAA"}
@@ -0,0 +1,20 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ import { RawAudio } from "../audio/AudioUtilities.js";
3
+ export type FFMpegOutputOptions = {
4
+ filename?: string;
5
+ codec?: string;
6
+ format?: string;
7
+ sampleRate?: number;
8
+ sampleFormat?: "u8" | "s16" | "s32" | "s64" | "flt" | "dbl";
9
+ channelCount?: number;
10
+ bitrate?: number;
11
+ audioOnly?: boolean;
12
+ customOptions?: string[];
13
+ };
14
+ export declare function encodeFromChannels(rawAudio: RawAudio, outputOptions: FFMpegOutputOptions): Promise<Buffer>;
15
+ export declare function decodeToChannels(input: string | Buffer, outSampleRate?: number, outChannelCount?: number): Promise<{
16
+ audioChannels: Float32Array[];
17
+ sampleRate: number;
18
+ }>;
19
+ export declare function transcode(input: string | Buffer, outputOptions: FFMpegOutputOptions): Promise<Buffer>;
20
+ export declare function listWasmCodecs(): Promise<void>;
@@ -0,0 +1,169 @@
1
+ import { spawn } from "child_process";
2
+ import { encodeWaveBuffer, decodeWaveBuffer } from "../audio/AudioUtilities.js";
3
+ import { Logger } from "../utilities/Logger.js";
4
+ import { commandExists, logToStderr } from "../utilities/Utilities.js";
5
+ import path from "node:path";
6
+ import { readFile, writeFileSafe } from "../utilities/FileSystem.js";
7
+ import { loadPackage } from "../utilities/PackageManager.js";
8
+ let ffmpeg;
9
+ const log = logToStderr;
10
+ export async function encodeFromChannels(rawAudio, outputOptions) {
11
+ return transcode(encodeWaveBuffer(rawAudio), outputOptions);
12
+ }
13
+ export async function decodeToChannels(input, outSampleRate, outChannelCount) {
14
+ const outputOptions = {
15
+ codec: "pcm_f32le",
16
+ format: "wav",
17
+ sampleRate: outSampleRate,
18
+ channelCount: outChannelCount,
19
+ audioOnly: true
20
+ };
21
+ const waveAudio = await transcode(input, outputOptions);
22
+ const { rawAudio } = decodeWaveBuffer(waveAudio, true);
23
+ return rawAudio;
24
+ }
25
+ export async function transcode(input, outputOptions) {
26
+ const executablePath = await getExecutablePath();
27
+ if (executablePath) {
28
+ return transcode_CLI(input, outputOptions);
29
+ }
30
+ else {
31
+ if (Buffer.isBuffer(input)) {
32
+ return transcode_Wasm(input, outputOptions);
33
+ }
34
+ else {
35
+ return transcode_Wasm(await readFile(input), outputOptions);
36
+ }
37
+ }
38
+ }
39
+ async function transcode_CLI(input, outputOptions) {
40
+ const ffmpegCommand = await getExecutablePath();
41
+ if (!ffmpegCommand) {
42
+ throw new Error("No ffmpeg executable was found");
43
+ }
44
+ return new Promise((resolve, reject) => {
45
+ const logger = new Logger();
46
+ logger.start("Transcode with command-line ffmpeg");
47
+ const args = buildCommandLineArguments(Buffer.isBuffer(input) ? "-" : input, outputOptions);
48
+ const process = spawn(ffmpegCommand, args);
49
+ if (Buffer.isBuffer(input)) {
50
+ process.stdin.end(input);
51
+ }
52
+ const stdOutChunks = [];
53
+ let stdErrOutput = "";
54
+ process.stdout.on('data', (data) => {
55
+ stdOutChunks.push(data);
56
+ });
57
+ process.stderr.setEncoding("utf8");
58
+ process.stderr.on('data', (data) => {
59
+ //log(data)
60
+ stdErrOutput += data;
61
+ });
62
+ process.on("error", (e) => {
63
+ reject(e);
64
+ });
65
+ process.on('close', (exitCode) => {
66
+ if (exitCode == 0) {
67
+ resolve(Buffer.concat(stdOutChunks));
68
+ }
69
+ else {
70
+ reject(`ffmpeg exited with code ${exitCode}`);
71
+ log(stdErrOutput);
72
+ }
73
+ logger.end();
74
+ });
75
+ });
76
+ }
77
+ async function transcode_Wasm(inputData, outputOptions) {
78
+ await initializeWasmIfNeeded(false);
79
+ const logger = new Logger();
80
+ logger.start("Transcode with WASM ffmpeg");
81
+ let outputFileExtension = "";
82
+ if (outputOptions.filename) {
83
+ outputFileExtension = path.parse(outputOptions.filename).ext;
84
+ }
85
+ const inputFilename = "inputFile";
86
+ const outputFilename = "outputFile" + outputFileExtension;
87
+ const args = buildCommandLineArguments(inputFilename, { ...outputOptions, filename: outputFilename });
88
+ ffmpeg.FS('writeFile', inputFilename, inputData);
89
+ await ffmpeg.run(...args);
90
+ const outFileData = ffmpeg.FS('readFile', outputFilename);
91
+ let result;
92
+ if (outputOptions.filename) {
93
+ await writeFileSafe(outputOptions.filename, outFileData);
94
+ result = Buffer.from([]);
95
+ }
96
+ else {
97
+ result = Buffer.from(outFileData);
98
+ }
99
+ logger.end();
100
+ return result;
101
+ }
102
+ export async function listWasmCodecs() {
103
+ await initializeWasmIfNeeded(true);
104
+ await ffmpeg.run("-codecs");
105
+ }
106
+ async function initializeWasmIfNeeded(verbose = false) {
107
+ if (!ffmpeg) {
108
+ const logger = new Logger();
109
+ logger.start("Initialize WASM ffmpeg instance");
110
+ const { createFFmpeg } = await import("@ffmpeg/ffmpeg");
111
+ ffmpeg = createFFmpeg({ log: verbose });
112
+ await ffmpeg.load();
113
+ logger.end();
114
+ }
115
+ }
116
+ function buildCommandLineArguments(inputFilename, outputOptions) {
117
+ outputOptions = { ...outputOptions };
118
+ if (!outputOptions.filename) {
119
+ outputOptions.filename = "-";
120
+ }
121
+ const args = [];
122
+ args.push(`-i`, `${inputFilename}`);
123
+ if (outputOptions.audioOnly) {
124
+ args.push(`-map`, `a`);
125
+ }
126
+ if (outputOptions.codec) {
127
+ args.push(`-c:a`, `${outputOptions.codec}`);
128
+ }
129
+ if (outputOptions.format) {
130
+ args.push(`-f:a`, `${outputOptions.format}`);
131
+ }
132
+ if (outputOptions.sampleRate) {
133
+ args.push(`-ar`, `${outputOptions.sampleRate}`);
134
+ }
135
+ if (outputOptions.sampleFormat) {
136
+ args.push(`-sample_fmt`, `${outputOptions.sampleFormat}`);
137
+ }
138
+ if (outputOptions.channelCount) {
139
+ args.push(`-ac`, `${outputOptions.channelCount}`);
140
+ }
141
+ if (outputOptions.bitrate) {
142
+ args.push(`-ab`, `${outputOptions.bitrate}k`);
143
+ }
144
+ args.push(`-y`);
145
+ if (outputOptions.customOptions) {
146
+ args.push(...outputOptions.customOptions);
147
+ }
148
+ args.push(outputOptions.filename);
149
+ return args;
150
+ }
151
+ async function getExecutablePath() {
152
+ if (await commandExists("ffmpeg")) {
153
+ return "ffmpeg";
154
+ }
155
+ else if (process.platform == "win32") {
156
+ const ffmpegPackagePath = await loadPackage("ffmpeg-6.0-essentials-win64");
157
+ return path.join(ffmpegPackagePath, "ffmpeg.exe");
158
+ }
159
+ else if (process.platform == "darwin" && process.arch == "x64") {
160
+ const ffmpegPackagePath = await loadPackage("ffmpeg-6.0-macos64");
161
+ return path.join(ffmpegPackagePath, "ffmpeg");
162
+ }
163
+ else if (process.platform == "linux" && process.arch == "x64") {
164
+ const ffmpegPackagePath = await loadPackage("ffmpeg-6.0-linux-amd64");
165
+ return path.join(ffmpegPackagePath, "ffmpeg");
166
+ }
167
+ return undefined;
168
+ }
169
+ //# sourceMappingURL=FFMpegTranscoder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FFMpegTranscoder.js","sourceRoot":"","sources":["../../src/codecs/FFMpegTranscoder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ export declare function decodeTimitAudioFile(filename: string): Promise<{
3
+ audioChannels: Float32Array[];
4
+ sampleRate: number;
5
+ }>;
6
+ export declare function decodeTimitAudio(data: Buffer): {
7
+ audioChannels: Float32Array[];
8
+ sampleRate: number;
9
+ };
@@ -0,0 +1,14 @@
1
+ import { decodeToChannels } from "../audio/AudioBufferConversion.js";
2
+ import { readFile } from "../utilities/FileSystem.js";
3
+ import { SampleFormat } from "./WaveCodec.js";
4
+ export async function decodeTimitAudioFile(filename) {
5
+ return decodeTimitAudio(await readFile(filename));
6
+ }
7
+ export function decodeTimitAudio(data) {
8
+ if (data.subarray(0, 16).toString("ascii") != "NIST_1A\n 1024\n") {
9
+ throw new Error("Data is not a valid TIMIT audio file");
10
+ }
11
+ const pcm = data.subarray(1024);
12
+ return { audioChannels: decodeToChannels(pcm, 1, 16, SampleFormat.PCM), sampleRate: 16000 };
13
+ }
14
+ //# sourceMappingURL=TIMITCodec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TIMITCodec.js","sourceRoot":"","sources":["../../src/codecs/TIMITCodec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,QAAgB;IAC1D,OAAO,gBAAgB,CAAC,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAA;AAClD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC5C,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,oBAAoB,EAAE;QACnE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;KACvD;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IAE/B,OAAO,EAAE,aAAa,EAAE,gBAAgB,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAA;AAC5F,CAAC"}
@@ -0,0 +1,19 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ import { RawAudio } from '../audio/AudioUtilities.js';
3
+ export declare function encodeWave(rawAudio: RawAudio, bitDepth: 32 | 16 | 8 | 24 | 64 | undefined, sampleFormat: SampleFormat, speakerPositionMask?: number): Buffer;
4
+ export declare function decodeWave(waveData: Buffer, ignoreTruncatedChunks?: boolean): {
5
+ rawAudio: {
6
+ audioChannels: Float32Array[];
7
+ sampleRate: number;
8
+ };
9
+ sourceSampleFormat: SampleFormat;
10
+ sourceBitDepth: 32 | 16 | 8 | 24 | 64;
11
+ sourceSpeakerPositionMask: number;
12
+ };
13
+ export declare function repairWave(waveData: Buffer): Buffer;
14
+ export declare enum SampleFormat {
15
+ PCM = 1,
16
+ Float = 2,
17
+ Alaw = 6,
18
+ Mulaw = 7
19
+ }