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.
- package/README.md +59 -1
- package/data/lexicons/heteronyms.json +674 -0
- package/data/schemas/options.json +1057 -0
- package/data/tables/lcid-table.json +7427 -0
- package/dist/alignment/DTWMfccSequenceAlignment.d.ts +2 -0
- package/dist/alignment/DTWMfccSequenceAlignment.js +26 -0
- package/dist/alignment/DTWMfccSequenceAlignment.js.map +1 -0
- package/dist/alignment/DTWSequenceAlignment.d.ts +5 -0
- package/dist/alignment/DTWSequenceAlignment.js +99 -0
- package/dist/alignment/DTWSequenceAlignment.js.map +1 -0
- package/dist/alignment/DTWSequenceAlignmentWindowed.d.ts +5 -0
- package/dist/alignment/DTWSequenceAlignmentWindowed.js +161 -0
- package/dist/alignment/DTWSequenceAlignmentWindowed.js.map +1 -0
- package/dist/alignment/LevenshteinSequenceAlignment.d.ts +5 -0
- package/dist/alignment/LevenshteinSequenceAlignment.js +102 -0
- package/dist/alignment/LevenshteinSequenceAlignment.js.map +1 -0
- package/dist/alignment/SpeechAlignment.d.ts +27 -0
- package/dist/alignment/SpeechAlignment.js +266 -0
- package/dist/alignment/SpeechAlignment.js.map +1 -0
- package/dist/api/API.d.ts +8 -0
- package/dist/api/API.js +10 -0
- package/dist/api/API.js.map +1 -0
- package/dist/api/APIOptions.d.ts +12 -0
- package/dist/api/APIOptions.js +2 -0
- package/dist/api/APIOptions.js.map +1 -0
- package/dist/api/Alignment.d.ts +32 -0
- package/dist/api/Alignment.js +134 -0
- package/dist/api/Alignment.js.map +1 -0
- package/dist/api/Denoising.d.ts +14 -0
- package/dist/api/Denoising.js +66 -0
- package/dist/api/Denoising.js.map +1 -0
- package/dist/api/Globals.d.ts +1 -0
- package/dist/api/Globals.js +2 -0
- package/dist/api/Globals.js.map +1 -0
- package/dist/api/LanguageDetection.d.ts +49 -0
- package/dist/api/LanguageDetection.js +118 -0
- package/dist/api/LanguageDetection.js.map +1 -0
- package/dist/api/Recognition.d.ts +49 -0
- package/dist/api/Recognition.js +162 -0
- package/dist/api/Recognition.js.map +1 -0
- package/dist/api/Synthesis.d.ts +125 -0
- package/dist/api/Synthesis.js +892 -0
- package/dist/api/Synthesis.js.map +1 -0
- package/dist/api/Translation.d.ts +25 -0
- package/dist/api/Translation.js +69 -0
- package/dist/api/Translation.js.map +1 -0
- package/dist/api/Vad.d.ts +25 -0
- package/dist/api/Vad.js +88 -0
- package/dist/api/Vad.js.map +1 -0
- package/dist/audio/AudioBufferConversion.d.ts +15 -0
- package/dist/audio/AudioBufferConversion.js +228 -0
- package/dist/audio/AudioBufferConversion.js.map +1 -0
- package/dist/audio/AudioPlayer.d.ts +9 -0
- package/dist/audio/AudioPlayer.js +232 -0
- package/dist/audio/AudioPlayer.js.map +1 -0
- package/dist/audio/AudioRecorder.d.ts +3 -0
- package/dist/audio/AudioRecorder.js +68 -0
- package/dist/audio/AudioRecorder.js.map +1 -0
- package/dist/audio/AudioUtilities.d.ts +48 -0
- package/dist/audio/AudioUtilities.js +209 -0
- package/dist/audio/AudioUtilities.js.map +1 -0
- package/dist/audio/SoxPath.d.ts +1 -0
- package/dist/audio/SoxPath.js +19 -0
- package/dist/audio/SoxPath.js.map +1 -0
- package/dist/cli/CLI.d.ts +8 -0
- package/dist/cli/CLI.js +860 -0
- package/dist/cli/CLI.js.map +1 -0
- package/dist/cli/CLIConfigFile.d.ts +3 -0
- package/dist/cli/CLIConfigFile.js +62 -0
- package/dist/cli/CLIConfigFile.js.map +1 -0
- package/dist/cli/CLILauncher.d.ts +2 -0
- package/dist/cli/CLILauncher.js +22 -0
- package/dist/cli/CLILauncher.js.map +1 -0
- package/dist/cli/CLIOptionsSchema.d.ts +5 -0
- package/dist/cli/CLIOptionsSchema.js +36 -0
- package/dist/cli/CLIOptionsSchema.js.map +1 -0
- package/dist/cli/CLIParser.d.ts +6 -0
- package/dist/cli/CLIParser.js +34 -0
- package/dist/cli/CLIParser.js.map +1 -0
- package/dist/cli/CLIStarter.d.ts +1 -0
- package/dist/cli/CLIStarter.js +3 -0
- package/dist/cli/CLIStarter.js.map +1 -0
- package/dist/codecs/FFMpegTranscoder.d.ts +20 -0
- package/dist/codecs/FFMpegTranscoder.js +169 -0
- package/dist/codecs/FFMpegTranscoder.js.map +1 -0
- package/dist/codecs/TIMITCodec.d.ts +9 -0
- package/dist/codecs/TIMITCodec.js +14 -0
- package/dist/codecs/TIMITCodec.js.map +1 -0
- package/dist/codecs/WaveCodec.d.ts +19 -0
- package/dist/codecs/WaveCodec.js +208 -0
- package/dist/codecs/WaveCodec.js.map +1 -0
- package/dist/denoising/RNNoise.d.ts +6 -0
- package/dist/denoising/RNNoise.js +68 -0
- package/dist/denoising/RNNoise.js.map +1 -0
- package/dist/dsp/BiquadFilter.d.ts +26 -0
- package/dist/dsp/BiquadFilter.js +399 -0
- package/dist/dsp/BiquadFilter.js.map +1 -0
- package/dist/dsp/FFT.d.ts +9 -0
- package/dist/dsp/FFT.js +135 -0
- package/dist/dsp/FFT.js.map +1 -0
- package/dist/dsp/MFCC.d.ts +25 -0
- package/dist/dsp/MFCC.js +162 -0
- package/dist/dsp/MFCC.js.map +1 -0
- package/dist/dsp/MelSpectogram.d.ts +19 -0
- package/dist/dsp/MelSpectogram.js +102 -0
- package/dist/dsp/MelSpectogram.js.map +1 -0
- package/dist/dsp/Rubberband.d.ts +52 -0
- package/dist/dsp/Rubberband.js +186 -0
- package/dist/dsp/Rubberband.js.map +1 -0
- package/dist/dsp/Sonic.d.ts +2 -0
- package/dist/dsp/Sonic.js +39 -0
- package/dist/dsp/Sonic.js.map +1 -0
- package/dist/dsp/SpeexResampler.d.ts +3 -0
- package/dist/dsp/SpeexResampler.js +53 -0
- package/dist/dsp/SpeexResampler.js.map +1 -0
- package/dist/math/VectorMath.d.ts +70 -0
- package/dist/math/VectorMath.js +564 -0
- package/dist/math/VectorMath.js.map +1 -0
- package/dist/nlp/ChineseSegmentation.d.ts +1 -0
- package/dist/nlp/ChineseSegmentation.js +53 -0
- package/dist/nlp/ChineseSegmentation.js.map +1 -0
- package/dist/nlp/CompromiseNLP.d.ts +15 -0
- package/dist/nlp/CompromiseNLP.js +66 -0
- package/dist/nlp/CompromiseNLP.js.map +1 -0
- package/dist/nlp/EspeakPhonemizer.d.ts +4 -0
- package/dist/nlp/EspeakPhonemizer.js +133 -0
- package/dist/nlp/EspeakPhonemizer.js.map +1 -0
- package/dist/nlp/IPA.d.ts +19 -0
- package/dist/nlp/IPA.js +113 -0
- package/dist/nlp/IPA.js.map +1 -0
- package/dist/nlp/JapaneseSegmentation.d.ts +1 -0
- package/dist/nlp/JapaneseSegmentation.js +40 -0
- package/dist/nlp/JapaneseSegmentation.js.map +1 -0
- package/dist/nlp/Lexicon.d.ts +17 -0
- package/dist/nlp/Lexicon.js +6 -0
- package/dist/nlp/Lexicon.js.map +1 -0
- package/dist/nlp/PhoneConversion.d.ts +6 -0
- package/dist/nlp/PhoneConversion.js +467 -0
- package/dist/nlp/PhoneConversion.js.map +1 -0
- package/dist/nlp/Segmentation.d.ts +41 -0
- package/dist/nlp/Segmentation.js +158 -0
- package/dist/nlp/Segmentation.js.map +1 -0
- package/dist/nlp/TextNormalizer.d.ts +4 -0
- package/dist/nlp/TextNormalizer.js +69 -0
- package/dist/nlp/TextNormalizer.js.map +1 -0
- package/dist/recognition/AmazonTranscribeSTT.d.ts +6 -0
- package/dist/recognition/AmazonTranscribeSTT.js +79 -0
- package/dist/recognition/AmazonTranscribeSTT.js.map +1 -0
- package/dist/recognition/AzureCognitiveServicesSTT.d.ts +7 -0
- package/dist/recognition/AzureCognitiveServicesSTT.js +51 -0
- package/dist/recognition/AzureCognitiveServicesSTT.js.map +1 -0
- package/dist/recognition/GoogleCloudSTT.d.ts +7 -0
- package/dist/recognition/GoogleCloudSTT.js +66 -0
- package/dist/recognition/GoogleCloudSTT.js.map +1 -0
- package/dist/recognition/SileroSTT.d.ts +9 -0
- package/dist/recognition/SileroSTT.js +125 -0
- package/dist/recognition/SileroSTT.js.map +1 -0
- package/dist/recognition/VoskSTT.d.ts +10 -0
- package/dist/recognition/VoskSTT.js +78 -0
- package/dist/recognition/VoskSTT.js.map +1 -0
- package/dist/recognition/WhisperSTT.d.ts +69 -0
- package/dist/recognition/WhisperSTT.js +977 -0
- package/dist/recognition/WhisperSTT.js.map +1 -0
- package/dist/server/Server.d.ts +1 -0
- package/dist/server/Server.js +18 -0
- package/dist/server/Server.js.map +1 -0
- package/dist/speech-language-detection/SileroLanguageDetection.d.ts +9 -0
- package/dist/speech-language-detection/SileroLanguageDetection.js +47 -0
- package/dist/speech-language-detection/SileroLanguageDetection.js.map +1 -0
- package/dist/subtitles/Subtitles.d.ts +25 -0
- package/dist/subtitles/Subtitles.js +286 -0
- package/dist/subtitles/Subtitles.js.map +1 -0
- package/dist/synthesis/AwsPollyTTS.d.ts +7 -0
- package/dist/synthesis/AwsPollyTTS.js +51 -0
- package/dist/synthesis/AwsPollyTTS.js.map +1 -0
- package/dist/synthesis/AzureCognitiveServicesTTS.d.ts +9 -0
- package/dist/synthesis/AzureCognitiveServicesTTS.js +103 -0
- package/dist/synthesis/AzureCognitiveServicesTTS.js.map +1 -0
- package/dist/synthesis/CoquiServerTTS.d.ts +6 -0
- package/dist/synthesis/CoquiServerTTS.js +22 -0
- package/dist/synthesis/CoquiServerTTS.js.map +1 -0
- package/dist/synthesis/ElevenLabsTTS.d.ts +8 -0
- package/dist/synthesis/ElevenLabsTTS.js +48 -0
- package/dist/synthesis/ElevenLabsTTS.js.map +1 -0
- package/dist/synthesis/EspeakTTS.d.ts +46 -0
- package/dist/synthesis/EspeakTTS.js +353 -0
- package/dist/synthesis/EspeakTTS.js.map +1 -0
- package/dist/synthesis/FliteTTS.d.ts +17 -0
- package/dist/synthesis/FliteTTS.js +326 -0
- package/dist/synthesis/FliteTTS.js.map +1 -0
- package/dist/synthesis/GoogleCloudTTS.d.ts +16 -0
- package/dist/synthesis/GoogleCloudTTS.js +72 -0
- package/dist/synthesis/GoogleCloudTTS.js.map +1 -0
- package/dist/synthesis/GoogleTranslateTTS.d.ts +13 -0
- package/dist/synthesis/GoogleTranslateTTS.js +177 -0
- package/dist/synthesis/GoogleTranslateTTS.js.map +1 -0
- package/dist/synthesis/MicrosoftEdgeTTS.d.ts +10 -0
- package/dist/synthesis/MicrosoftEdgeTTS.js +216 -0
- package/dist/synthesis/MicrosoftEdgeTTS.js.map +1 -0
- package/dist/synthesis/SamTTS.d.ts +4 -0
- package/dist/synthesis/SamTTS.js +21 -0
- package/dist/synthesis/SamTTS.js.map +1 -0
- package/dist/synthesis/SapiTTS.d.ts +9 -0
- package/dist/synthesis/SapiTTS.js +211 -0
- package/dist/synthesis/SapiTTS.js.map +1 -0
- package/dist/synthesis/StreamlabsPollyTTS.d.ts +12 -0
- package/dist/synthesis/StreamlabsPollyTTS.js +88 -0
- package/dist/synthesis/StreamlabsPollyTTS.js.map +1 -0
- package/dist/synthesis/SvoxPicoTTS.d.ts +11 -0
- package/dist/synthesis/SvoxPicoTTS.js +236 -0
- package/dist/synthesis/SvoxPicoTTS.js.map +1 -0
- package/dist/synthesis/VitsTTS.d.ts +27 -0
- package/dist/synthesis/VitsTTS.js +359 -0
- package/dist/synthesis/VitsTTS.js.map +1 -0
- package/dist/tests/Test.d.ts +1 -0
- package/dist/tests/Test.js +10 -0
- package/dist/tests/Test.js.map +1 -0
- package/dist/text-language-detection/FastTextLanguageDetection.d.ts +2 -0
- package/dist/text-language-detection/FastTextLanguageDetection.js +38 -0
- package/dist/text-language-detection/FastTextLanguageDetection.js.map +1 -0
- package/dist/text-language-detection/TinyLDLanguageDetection.d.ts +2 -0
- package/dist/text-language-detection/TinyLDLanguageDetection.js +12 -0
- package/dist/text-language-detection/TinyLDLanguageDetection.js.map +1 -0
- package/dist/utilities/BinaryArrayConversion.d.ts +15 -0
- package/dist/utilities/BinaryArrayConversion.js +115 -0
- package/dist/utilities/BinaryArrayConversion.js.map +1 -0
- package/dist/utilities/Compression.d.ts +4 -0
- package/dist/utilities/Compression.js +67 -0
- package/dist/utilities/Compression.js.map +1 -0
- package/dist/utilities/FileDownloader.d.ts +3 -0
- package/dist/utilities/FileDownloader.js +147 -0
- package/dist/utilities/FileDownloader.js.map +1 -0
- package/dist/utilities/FileSystem.d.ts +30 -0
- package/dist/utilities/FileSystem.js +141 -0
- package/dist/utilities/FileSystem.js.map +1 -0
- package/dist/utilities/Hashing.d.ts +10 -0
- package/dist/utilities/Hashing.js +169 -0
- package/dist/utilities/Hashing.js.map +1 -0
- package/dist/utilities/Locale.d.ts +9 -0
- package/dist/utilities/Locale.js +65 -0
- package/dist/utilities/Locale.js.map +1 -0
- package/dist/utilities/Logger.d.ts +11 -0
- package/dist/utilities/Logger.js +49 -0
- package/dist/utilities/Logger.js.map +1 -0
- package/dist/utilities/NdArrayUtilities.d.ts +3 -0
- package/dist/utilities/NdArrayUtilities.js +22 -0
- package/dist/utilities/NdArrayUtilities.js.map +1 -0
- package/dist/utilities/ObjectUtilities.d.ts +4 -0
- package/dist/utilities/ObjectUtilities.js +132 -0
- package/dist/utilities/ObjectUtilities.js.map +1 -0
- package/dist/utilities/OpenPromise.d.ts +6 -0
- package/dist/utilities/OpenPromise.js +12 -0
- package/dist/utilities/OpenPromise.js.map +1 -0
- package/dist/utilities/PackageManager.d.ts +4 -0
- package/dist/utilities/PackageManager.js +46 -0
- package/dist/utilities/PackageManager.js.map +1 -0
- package/dist/utilities/RandomGenerator.d.ts +35 -0
- package/dist/utilities/RandomGenerator.js +149 -0
- package/dist/utilities/RandomGenerator.js.map +1 -0
- package/dist/utilities/TarballMaker.d.ts +4 -0
- package/dist/utilities/TarballMaker.js +50 -0
- package/dist/utilities/TarballMaker.js.map +1 -0
- package/dist/utilities/Timeline.d.ts +20 -0
- package/dist/utilities/Timeline.js +110 -0
- package/dist/utilities/Timeline.js.map +1 -0
- package/dist/utilities/Timer.d.ts +13 -0
- package/dist/utilities/Timer.js +70 -0
- package/dist/utilities/Timer.js.map +1 -0
- package/dist/utilities/Utilities.d.ts +68 -0
- package/dist/utilities/Utilities.js +305 -0
- package/dist/utilities/Utilities.js.map +1 -0
- package/dist/utilities/WasmMemoryManager.d.ts +142 -0
- package/dist/utilities/WasmMemoryManager.js +407 -0
- package/dist/utilities/WasmMemoryManager.js.map +1 -0
- package/dist/utilities/WebReader.d.ts +1 -0
- package/dist/utilities/WebReader.js +47 -0
- package/dist/utilities/WebReader.js.map +1 -0
- package/dist/utilities/WikipediaReader.d.ts +1 -0
- package/dist/utilities/WikipediaReader.js +31 -0
- package/dist/utilities/WikipediaReader.js.map +1 -0
- package/dist/voice-activity-detection/SileroVAD.d.ts +13 -0
- package/dist/voice-activity-detection/SileroVAD.js +58 -0
- package/dist/voice-activity-detection/SileroVAD.js.map +1 -0
- package/dist/voice-activity-detection/WebRtcVAD.d.ts +3 -0
- package/dist/voice-activity-detection/WebRtcVAD.js +53 -0
- package/dist/voice-activity-detection/WebRtcVAD.js.map +1 -0
- package/docs/CLI.md +234 -0
- package/docs/Development.md +3 -0
- package/docs/Engines.md +80 -0
- package/docs/Licenses.md +37 -0
- package/docs/Options.md +192 -0
- package/docs/Roadmap.md +16 -0
- package/docs/Technical.md +72 -0
- package/package.json +119 -19
- 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,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,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,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,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 @@
|
|
|
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":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAErC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAY,MAAM,4BAA4B,CAAA;AAIzF,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AACtE,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAA;AAE5D,IAAI,MAAc,CAAA;AAElB,MAAM,GAAG,GAAG,WAAW,CAAA;AAcvB,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,QAAkB,EAAE,aAAkC;IAC9F,OAAO,SAAS,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,CAAA;AAC5D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,KAAsB,EAAE,aAAsB,EAAE,eAAwB;IAC9G,MAAM,aAAa,GAAwB;QAC1C,KAAK,EAAE,WAAW;QAClB,MAAM,EAAE,KAAK;QACb,UAAU,EAAE,aAAa;QACzB,YAAY,EAAE,eAAe;QAC7B,SAAS,EAAE,IAAI;KACf,CAAA;IAED,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;IAEvD,MAAM,EAAE,QAAQ,EAAE,GAAG,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;IAEtD,OAAO,QAAQ,CAAA;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,KAAsB,EAAE,aAAkC;IACzF,MAAM,cAAc,GAAG,MAAM,iBAAiB,EAAE,CAAA;IAEhD,IAAI,cAAc,EAAE;QACnB,OAAO,aAAa,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;KAC1C;SAAM;QACN,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YAC3B,OAAO,cAAc,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;SAC3C;aAAM;YACN,OAAO,cAAc,CAAC,MAAM,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC,CAAA;SAC3D;KACD;AACF,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,KAAsB,EAAE,aAAkC;IACtF,MAAM,aAAa,GAAG,MAAM,iBAAiB,EAAE,CAAA;IAE/C,IAAI,CAAC,aAAa,EAAE;QACnB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;KACjD;IAED,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC9C,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAA;QAC3B,MAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAA;QAElD,MAAM,IAAI,GAAG,yBAAyB,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;QAE3F,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,CAAA;QAE1C,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YAC3B,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;SACxB;QAED,MAAM,YAAY,GAAa,EAAE,CAAA;QACjC,IAAI,YAAY,GAAG,EAAE,CAAA;QAErB,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YAClC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACxB,CAAC,CAAC,CAAA;QAEF,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;QAClC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YAClC,WAAW;YACX,YAAY,IAAI,IAAI,CAAA;QACrB,CAAC,CAAC,CAAA;QAEF,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YACzB,MAAM,CAAC,CAAC,CAAC,CAAA;QACV,CAAC,CAAC,CAAA;QAEF,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE;YAChC,IAAI,QAAQ,IAAI,CAAC,EAAE;gBAClB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAA;aACpC;iBAAM;gBACN,MAAM,CAAC,2BAA2B,QAAQ,EAAE,CAAC,CAAA;gBAC7C,GAAG,CAAC,YAAY,CAAC,CAAA;aACjB;YAED,MAAM,CAAC,GAAG,EAAE,CAAA;QACb,CAAC,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;AACH,CAAC;AAGD,KAAK,UAAU,cAAc,CAAC,SAAiB,EAAE,aAAkC;IAClF,MAAM,sBAAsB,CAAC,KAAK,CAAC,CAAA;IAEnC,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAA;IAC3B,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAA;IAG1C,IAAI,mBAAmB,GAAG,EAAE,CAAA;IAE5B,IAAI,aAAa,CAAC,QAAQ,EAAE;QAC3B,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAA;KAC5D;IAED,MAAM,aAAa,GAAG,WAAW,CAAA;IACjC,MAAM,cAAc,GAAG,YAAY,GAAG,mBAAmB,CAAA;IAEzD,MAAM,IAAI,GAAG,yBAAyB,CAAC,aAAa,EAAE,EAAE,GAAG,aAAa,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAA;IAErG,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,aAAa,EAAE,SAAS,CAAC,CAAA;IAEhD,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAA;IAEzB,MAAM,WAAW,GAAG,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,cAAc,CAAC,CAAA;IAEzD,IAAI,MAAc,CAAA;IAElB,IAAI,aAAa,CAAC,QAAQ,EAAE;QAC3B,MAAM,aAAa,CAAC,aAAa,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;QACxD,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;KACxB;SAAM;QACN,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;KACjC;IAED,MAAM,CAAC,GAAG,EAAE,CAAA;IACZ,OAAO,MAAM,CAAA;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc;IACnC,MAAM,sBAAsB,CAAC,IAAI,CAAC,CAAA;IAClC,MAAM,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;AAC5B,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,OAAO,GAAG,KAAK;IACpD,IAAI,CAAC,MAAM,EAAE;QACZ,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAA;QAC3B,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAA;QAE/C,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAA;QAEvD,MAAM,GAAG,YAAY,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAA;QACvC,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;QAEnB,MAAM,CAAC,GAAG,EAAE,CAAA;KACZ;AACF,CAAC;AAED,SAAS,yBAAyB,CAAC,aAAqB,EAAE,aAAkC;IAC3F,aAAa,GAAG,EAAE,GAAG,aAAa,EAAE,CAAA;IAEpC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;QAC5B,aAAa,CAAC,QAAQ,GAAG,GAAG,CAAA;KAC5B;IAED,MAAM,IAAI,GAAa,EAAE,CAAA;IAEzB,IAAI,CAAC,IAAI,CACR,IAAI,EAAE,GAAG,aAAa,EAAE,CACxB,CAAA;IAED,IAAI,aAAa,CAAC,SAAS,EAAE;QAC5B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KACtB;IAED,IAAI,aAAa,CAAC,KAAK,EAAE;QACxB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,aAAa,CAAC,KAAK,EAAE,CAAC,CAAA;KAC3C;IAED,IAAI,aAAa,CAAC,MAAM,EAAE;QACzB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,CAAA;KAC5C;IAED,IAAI,aAAa,CAAC,UAAU,EAAE;QAC7B,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,aAAa,CAAC,UAAU,EAAE,CAAC,CAAA;KAC/C;IAED,IAAI,aAAa,CAAC,YAAY,EAAE;QAC/B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,aAAa,CAAC,YAAY,EAAE,CAAC,CAAA;KACzD;IAED,IAAI,aAAa,CAAC,YAAY,EAAE;QAC/B,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,aAAa,CAAC,YAAY,EAAE,CAAC,CAAA;KACjD;IAED,IAAI,aAAa,CAAC,OAAO,EAAE;QAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,aAAa,CAAC,OAAO,GAAG,CAAC,CAAA;KAC7C;IAED,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAEf,IAAI,aAAa,CAAC,aAAa,EAAE;QAChC,IAAI,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,aAAa,CAAC,CAAA;KACzC;IAED,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;IAEjC,OAAO,IAAI,CAAA;AACZ,CAAC;AAED,KAAK,UAAU,iBAAiB;IAC/B,IAAI,MAAM,aAAa,CAAC,QAAQ,CAAC,EAAE;QAClC,OAAO,QAAQ,CAAA;KACf;SAAM,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,EAAE;QACvC,MAAM,iBAAiB,GAAG,MAAM,WAAW,CAAC,6BAA6B,CAAC,CAAA;QAE1E,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAA;KACjD;SAAM,IAAI,OAAO,CAAC,QAAQ,IAAI,QAAQ,IAAI,OAAO,CAAC,IAAI,IAAI,KAAK,EAAE;QACjE,MAAM,iBAAiB,GAAG,MAAM,WAAW,CAAC,oBAAoB,CAAC,CAAA;QAEjE,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAA;KAC7C;SAAM,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,IAAI,KAAK,EAAE;QAChE,MAAM,iBAAiB,GAAG,MAAM,WAAW,CAAC,wBAAwB,CAAC,CAAA;QAErE,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAA;KAC7C;IAED,OAAO,SAAS,CAAA;AACjB,CAAC"}
|
|
@@ -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
|
+
}
|