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,10 @@
|
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
export declare function knuthMultiplicative(bytes: Buffer): number;
|
|
3
|
+
export declare function xorShift32Hash(bytes: Buffer): number;
|
|
4
|
+
export declare function jenkinsOneAtATime(bytes: Buffer): number;
|
|
5
|
+
export declare function FNV1a(bytes: Buffer): number;
|
|
6
|
+
export declare function superFastHash(bytes: Buffer): number;
|
|
7
|
+
export declare function cyrb53Hash(bytes: Buffer, seed?: number): number;
|
|
8
|
+
export declare function djb2(bytes: Buffer): number;
|
|
9
|
+
export declare function murmurHash1(bytes: Buffer, seed?: number): number;
|
|
10
|
+
export declare function MurmurHash3(bytes: Buffer, seed?: number): number;
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
export function knuthMultiplicative(bytes) {
|
|
2
|
+
let hash = 0;
|
|
3
|
+
for (const byte of bytes) {
|
|
4
|
+
hash += Math.imul(byte, 2654435761);
|
|
5
|
+
}
|
|
6
|
+
return hash;
|
|
7
|
+
}
|
|
8
|
+
export function xorShift32Hash(bytes) {
|
|
9
|
+
let s = 0;
|
|
10
|
+
for (const byte of bytes) {
|
|
11
|
+
s += byte;
|
|
12
|
+
s ^= s << 13;
|
|
13
|
+
s ^= s >> 17;
|
|
14
|
+
s ^= s << 5;
|
|
15
|
+
}
|
|
16
|
+
return s;
|
|
17
|
+
}
|
|
18
|
+
export function jenkinsOneAtATime(bytes) {
|
|
19
|
+
let hash = 0;
|
|
20
|
+
for (const byte of bytes) {
|
|
21
|
+
hash += byte;
|
|
22
|
+
hash += hash << 10;
|
|
23
|
+
hash ^= hash >> 6;
|
|
24
|
+
}
|
|
25
|
+
hash += hash << 3;
|
|
26
|
+
hash ^= hash >> 11;
|
|
27
|
+
hash += hash << 15;
|
|
28
|
+
return hash >>> 0;
|
|
29
|
+
}
|
|
30
|
+
export function FNV1a(bytes) {
|
|
31
|
+
let hval = 2166136261 | 0;
|
|
32
|
+
for (const byte of bytes) {
|
|
33
|
+
hval = Math.imul(hval ^ byte, 16777619);
|
|
34
|
+
}
|
|
35
|
+
return hval >>> 0;
|
|
36
|
+
}
|
|
37
|
+
export function superFastHash(bytes) {
|
|
38
|
+
let hash = bytes.length, tmp, p = 0;
|
|
39
|
+
const len = bytes.length >>> 2;
|
|
40
|
+
for (let i = 0; i < len; i++) {
|
|
41
|
+
hash += bytes[p] | bytes[p + 1] << 8;
|
|
42
|
+
tmp = ((bytes[p + 2] | bytes[p + 3] << 8) << 11) ^ hash;
|
|
43
|
+
hash = (hash << 16) ^ tmp;
|
|
44
|
+
hash += hash >>> 11;
|
|
45
|
+
p += 4;
|
|
46
|
+
}
|
|
47
|
+
switch (bytes.length & 3) {
|
|
48
|
+
case 3:
|
|
49
|
+
hash += bytes[p] | bytes[p + 1] << 8;
|
|
50
|
+
hash ^= hash << 16;
|
|
51
|
+
hash ^= bytes[p + 2] << 18;
|
|
52
|
+
hash += hash >>> 11;
|
|
53
|
+
break;
|
|
54
|
+
case 2:
|
|
55
|
+
hash += bytes[p] | bytes[p + 1] << 8;
|
|
56
|
+
hash ^= hash << 11;
|
|
57
|
+
hash += hash >>> 17;
|
|
58
|
+
break;
|
|
59
|
+
case 1:
|
|
60
|
+
hash += bytes[p];
|
|
61
|
+
hash ^= hash << 10;
|
|
62
|
+
hash += hash >>> 1;
|
|
63
|
+
break;
|
|
64
|
+
}
|
|
65
|
+
hash ^= hash << 3;
|
|
66
|
+
hash += hash >>> 5;
|
|
67
|
+
hash ^= hash << 4;
|
|
68
|
+
hash += hash >>> 17;
|
|
69
|
+
hash ^= hash << 25;
|
|
70
|
+
hash += hash >>> 6;
|
|
71
|
+
return hash >>> 0;
|
|
72
|
+
}
|
|
73
|
+
export function cyrb53Hash(bytes, seed = 0) {
|
|
74
|
+
// https://github.com/bryc/code/blob/master/jshash/experimental/cyrb53.js
|
|
75
|
+
let h1 = 0xdeadbeef ^ seed;
|
|
76
|
+
let h2 = 0x41c6ce57 ^ seed;
|
|
77
|
+
for (const byte of bytes) {
|
|
78
|
+
h1 = Math.imul(h1 ^ byte, 2654435761);
|
|
79
|
+
h2 = Math.imul(h2 ^ byte, 1597334677);
|
|
80
|
+
}
|
|
81
|
+
h1 = Math.imul(h1 ^ (h1 >>> 16), 2246822507) ^ Math.imul(h2 ^ (h2 >>> 13), 3266489909);
|
|
82
|
+
h2 = Math.imul(h2 ^ (h2 >>> 16), 2246822507) ^ Math.imul(h1 ^ (h1 >>> 13), 3266489909);
|
|
83
|
+
return (4294967296 * (2097151 & h2)) + (h1 >>> 0);
|
|
84
|
+
}
|
|
85
|
+
export function djb2(bytes) {
|
|
86
|
+
let hash = 5381;
|
|
87
|
+
for (const byte of bytes) {
|
|
88
|
+
//hash += (hash << 5) + byte
|
|
89
|
+
hash += (hash * 33) + byte;
|
|
90
|
+
}
|
|
91
|
+
return hash >>> 0;
|
|
92
|
+
}
|
|
93
|
+
export function murmurHash1(bytes, seed = 0) {
|
|
94
|
+
// https://github.com/bryc/code/blob/master/jshash/hashes/murmurhash1.js
|
|
95
|
+
const length = bytes.length;
|
|
96
|
+
const multiplier = 3332679571;
|
|
97
|
+
const intIterationMaxIndex = length & -4;
|
|
98
|
+
let hash = seed ^ Math.imul(length, multiplier);
|
|
99
|
+
let index = 0;
|
|
100
|
+
for (; index < intIterationMaxIndex; index += 4) {
|
|
101
|
+
hash += bytes[index + 3] << 24 |
|
|
102
|
+
bytes[index + 2] << 16 |
|
|
103
|
+
bytes[index + 1] << 8 |
|
|
104
|
+
bytes[index];
|
|
105
|
+
hash = Math.imul(hash, multiplier);
|
|
106
|
+
hash ^= hash >>> 16;
|
|
107
|
+
}
|
|
108
|
+
switch (length & 3) {
|
|
109
|
+
case 3: {
|
|
110
|
+
hash += bytes[index + 2] << 16;
|
|
111
|
+
}
|
|
112
|
+
case 2: {
|
|
113
|
+
hash += bytes[index + 1] << 8;
|
|
114
|
+
}
|
|
115
|
+
case 1: {
|
|
116
|
+
hash += bytes[index];
|
|
117
|
+
hash = Math.imul(hash, multiplier);
|
|
118
|
+
hash ^= hash >>> 16;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
hash = Math.imul(hash, multiplier);
|
|
122
|
+
hash ^= hash >>> 10;
|
|
123
|
+
hash = Math.imul(hash, multiplier);
|
|
124
|
+
hash ^= hash >>> 17;
|
|
125
|
+
return hash >>> 0;
|
|
126
|
+
}
|
|
127
|
+
export function MurmurHash3(bytes, seed = 0) {
|
|
128
|
+
// https://github.com/bryc/code/blob/master/jshash/hashes/murmurhash3.js
|
|
129
|
+
const p1 = 3432918353;
|
|
130
|
+
const p2 = 461845907;
|
|
131
|
+
const p3 = 2246822507;
|
|
132
|
+
const p4 = 3266489909;
|
|
133
|
+
const byteCount = bytes.length;
|
|
134
|
+
const intIterationMaxIndex = byteCount & -4;
|
|
135
|
+
let k = 0;
|
|
136
|
+
let hash = seed | 0;
|
|
137
|
+
let i = 0;
|
|
138
|
+
for (; i < intIterationMaxIndex; i += 4) {
|
|
139
|
+
k = bytes[i + 3] << 24 | bytes[i + 2] << 16 | bytes[i + 1] << 8 | bytes[i];
|
|
140
|
+
k = Math.imul(k, p1);
|
|
141
|
+
k = k << 15 | k >>> 17;
|
|
142
|
+
hash ^= Math.imul(k, p2);
|
|
143
|
+
hash = hash << 13 | hash >>> 19;
|
|
144
|
+
hash = (Math.imul(hash, 5) + 3864292196) | 0; // |0 = prevent float
|
|
145
|
+
}
|
|
146
|
+
k = 0;
|
|
147
|
+
switch (bytes.length & 3) {
|
|
148
|
+
case 3: {
|
|
149
|
+
k ^= bytes[i + 2] << 16;
|
|
150
|
+
}
|
|
151
|
+
case 2: {
|
|
152
|
+
k ^= bytes[i + 1] << 8;
|
|
153
|
+
}
|
|
154
|
+
case 1: {
|
|
155
|
+
k ^= bytes[i];
|
|
156
|
+
k = Math.imul(k, p1);
|
|
157
|
+
k = k << 15 | k >>> 17;
|
|
158
|
+
hash ^= Math.imul(k, p2);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
hash ^= byteCount;
|
|
162
|
+
hash ^= hash >>> 16;
|
|
163
|
+
hash = Math.imul(hash, p3);
|
|
164
|
+
hash ^= hash >>> 13;
|
|
165
|
+
hash = Math.imul(hash, p4);
|
|
166
|
+
hash ^= hash >>> 16;
|
|
167
|
+
return hash >>> 0;
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=Hashing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Hashing.js","sourceRoot":"","sources":["../../src/utilities/Hashing.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare function languageCodeToName(languageCode: string): string;
|
|
2
|
+
export declare function formatLanguageCodeWithName(languageCode: string): string;
|
|
3
|
+
export declare function getShortLanguageCode(langCode: string): string;
|
|
4
|
+
export declare function normalizeLanguageCode(langCode: string): string;
|
|
5
|
+
export declare function isoToLcidLanguageCode(iso: string): Promise<number | undefined>;
|
|
6
|
+
export declare function lcidToIsoLanguageCode(lcid: number): Promise<string[] | undefined>;
|
|
7
|
+
export declare const shortLanguageCodeToLong: {
|
|
8
|
+
[lang: string]: string;
|
|
9
|
+
};
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { readAndParseJsonFile, resolveToModuleRootDir } from "./FileSystem.js";
|
|
2
|
+
export function languageCodeToName(languageCode) {
|
|
3
|
+
const languageNames = new Intl.DisplayNames(['en'], { type: 'language' });
|
|
4
|
+
let translatedLanguageName;
|
|
5
|
+
try {
|
|
6
|
+
translatedLanguageName = languageNames.of(languageCode);
|
|
7
|
+
}
|
|
8
|
+
catch (e) {
|
|
9
|
+
}
|
|
10
|
+
return translatedLanguageName || "Unknown";
|
|
11
|
+
}
|
|
12
|
+
export function formatLanguageCodeWithName(languageCode) {
|
|
13
|
+
return `${languageCodeToName(languageCode)} (${languageCode})`;
|
|
14
|
+
}
|
|
15
|
+
export function getShortLanguageCode(langCode) {
|
|
16
|
+
const dashIndex = langCode.indexOf("-");
|
|
17
|
+
if (dashIndex == -1) {
|
|
18
|
+
return langCode;
|
|
19
|
+
}
|
|
20
|
+
return langCode.substring(0, dashIndex).toLowerCase();
|
|
21
|
+
}
|
|
22
|
+
export function normalizeLanguageCode(langCode) {
|
|
23
|
+
const parts = langCode.split("-");
|
|
24
|
+
const result = [parts[0].toLowerCase()];
|
|
25
|
+
for (let i = 1; i < parts.length; i++) {
|
|
26
|
+
result.push(parts[i].toUpperCase());
|
|
27
|
+
}
|
|
28
|
+
return result.join("-");
|
|
29
|
+
}
|
|
30
|
+
const isoToLcidLookup = new Map();
|
|
31
|
+
const lcidToIsoLookup = new Map();
|
|
32
|
+
export async function isoToLcidLanguageCode(iso) {
|
|
33
|
+
await loadLcidLookupIfNeeded();
|
|
34
|
+
return isoToLcidLookup.get(iso);
|
|
35
|
+
}
|
|
36
|
+
export async function lcidToIsoLanguageCode(lcid) {
|
|
37
|
+
await loadLcidLookupIfNeeded();
|
|
38
|
+
return lcidToIsoLookup.get(lcid);
|
|
39
|
+
}
|
|
40
|
+
async function loadLcidLookupIfNeeded() {
|
|
41
|
+
if (isoToLcidLookup.size > 0) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
const lcidLookup = await readAndParseJsonFile(resolveToModuleRootDir("data/tables/lcid-table.json"));
|
|
45
|
+
for (const isoName in lcidLookup) {
|
|
46
|
+
const lcidValue = lcidLookup[isoName].LCID;
|
|
47
|
+
isoToLcidLookup.set(isoName, lcidValue);
|
|
48
|
+
let entry = lcidToIsoLookup.get(lcidValue);
|
|
49
|
+
if (!entry) {
|
|
50
|
+
entry = [];
|
|
51
|
+
lcidToIsoLookup.set(lcidValue, entry);
|
|
52
|
+
}
|
|
53
|
+
entry.push(isoName);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
export const shortLanguageCodeToLong = {
|
|
57
|
+
"en": "en-US",
|
|
58
|
+
"zh": "zh-CN",
|
|
59
|
+
"ar": "ar-EG",
|
|
60
|
+
"fr": "fr-FR",
|
|
61
|
+
"de": "de-DE",
|
|
62
|
+
"pt": "pt-BR",
|
|
63
|
+
"es": "es-ES"
|
|
64
|
+
};
|
|
65
|
+
//# sourceMappingURL=Locale.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Locale.js","sourceRoot":"","sources":["../../src/utilities/Locale.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare class Logger {
|
|
2
|
+
private timer;
|
|
3
|
+
active: boolean;
|
|
4
|
+
start(title: string): void;
|
|
5
|
+
startAsync(title: string, wait?: boolean): Promise<void>;
|
|
6
|
+
end(): void;
|
|
7
|
+
log(message: any): void;
|
|
8
|
+
write(message: any): void;
|
|
9
|
+
logDuration(message: any, startTime: number): void;
|
|
10
|
+
getTimestamp(): number;
|
|
11
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Timer } from "./Timer.js";
|
|
2
|
+
import { delay, logToStderr, roundToDigits, writeToStderr } from "./Utilities.js";
|
|
3
|
+
let currentActiveLogger = null;
|
|
4
|
+
export class Logger {
|
|
5
|
+
timer = new Timer();
|
|
6
|
+
active = false;
|
|
7
|
+
start(title) {
|
|
8
|
+
this.startAsync(title, false);
|
|
9
|
+
}
|
|
10
|
+
async startAsync(title, wait = true) {
|
|
11
|
+
if (currentActiveLogger != null && currentActiveLogger != this) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
this.end();
|
|
15
|
+
if (wait) {
|
|
16
|
+
await delay(0);
|
|
17
|
+
}
|
|
18
|
+
writeToStderr(`${title}.. `);
|
|
19
|
+
this.active = true;
|
|
20
|
+
currentActiveLogger = this;
|
|
21
|
+
this.timer.restart();
|
|
22
|
+
}
|
|
23
|
+
end() {
|
|
24
|
+
if (this.active && currentActiveLogger == this) {
|
|
25
|
+
const elapsedTime = this.timer.elapsedTime;
|
|
26
|
+
writeToStderr(`${roundToDigits(elapsedTime, 1)}ms\n`);
|
|
27
|
+
currentActiveLogger = null;
|
|
28
|
+
}
|
|
29
|
+
this.active = false;
|
|
30
|
+
}
|
|
31
|
+
log(message) {
|
|
32
|
+
if (currentActiveLogger == this || currentActiveLogger == null) {
|
|
33
|
+
logToStderr(message);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
write(message) {
|
|
37
|
+
if (currentActiveLogger == this || currentActiveLogger == null) {
|
|
38
|
+
writeToStderr(message);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
logDuration(message, startTime) {
|
|
42
|
+
const duration = Timer.currentTime - startTime;
|
|
43
|
+
this.log(`${message}: ${roundToDigits(duration, 1)}ms`);
|
|
44
|
+
}
|
|
45
|
+
getTimestamp() {
|
|
46
|
+
return Timer.currentTime;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=Logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Logger.js","sourceRoot":"","sources":["../../src/utilities/Logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAEjF,IAAI,mBAAmB,GAAkB,IAAI,CAAA;AAE7C,MAAM,OAAO,MAAM;IACV,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;IAC3B,MAAM,GAAG,KAAK,CAAA;IAEd,KAAK,CAAC,KAAa;QAClB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IAC9B,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAa,EAAE,IAAI,GAAG,IAAI;QAC1C,IAAI,mBAAmB,IAAI,IAAI,IAAI,mBAAmB,IAAI,IAAI,EAAE;YAC/D,OAAM;SACN;QAED,IAAI,CAAC,GAAG,EAAE,CAAA;QAEV,IAAI,IAAI,EAAE;YACT,MAAM,KAAK,CAAC,CAAC,CAAC,CAAA;SACd;QAED,aAAa,CAAC,GAAG,KAAK,KAAK,CAAC,CAAA;QAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;QAClB,mBAAmB,GAAG,IAAI,CAAA;QAC1B,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAA;IACrB,CAAC;IAED,GAAG;QACF,IAAI,IAAI,CAAC,MAAM,IAAI,mBAAmB,IAAI,IAAI,EAAE;YAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAA;YAE1C,aAAa,CAAC,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAA;YACrD,mBAAmB,GAAG,IAAI,CAAA;SAC1B;QAED,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;IACpB,CAAC;IAED,GAAG,CAAC,OAAY;QACf,IAAI,mBAAmB,IAAI,IAAI,IAAI,mBAAmB,IAAI,IAAI,EAAE;YAC/D,WAAW,CAAC,OAAO,CAAC,CAAA;SACpB;IACF,CAAC;IAED,KAAK,CAAC,OAAY;QACjB,IAAI,mBAAmB,IAAI,IAAI,IAAI,mBAAmB,IAAI,IAAI,EAAE;YAC/D,aAAa,CAAC,OAAO,CAAC,CAAA;SACtB;IACF,CAAC;IAED,WAAW,CAAC,OAAY,EAAE,SAAiB;QAC1C,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,GAAG,SAAS,CAAA;QAE9C,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,KAAK,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAA;IACxD,CAAC;IAED,YAAY;QACX,OAAO,KAAK,CAAC,WAAW,CAAA;IACzB,CAAC;CACD"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { medianFilter, softMax } from '../math/VectorMath.js';
|
|
2
|
+
export function ndarraySoftMax(vector, temperature = 1.0) {
|
|
3
|
+
const vectorAsArray = new Array(vector.shape[0]);
|
|
4
|
+
for (let i = 0; i < vectorAsArray.length; i++) {
|
|
5
|
+
vectorAsArray[i] = vector.get(i);
|
|
6
|
+
}
|
|
7
|
+
const result = softMax(vectorAsArray, temperature);
|
|
8
|
+
for (let i = 0; i < vectorAsArray.length; i++) {
|
|
9
|
+
vector.set(i, result[i]);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
export function ndarrayMedianFilter(vector, width) {
|
|
13
|
+
const vectorAsArray = new Array(vector.shape[0]);
|
|
14
|
+
for (let i = 0; i < vectorAsArray.length; i++) {
|
|
15
|
+
vectorAsArray[i] = vector.get(i);
|
|
16
|
+
}
|
|
17
|
+
const result = medianFilter(vectorAsArray, width);
|
|
18
|
+
for (let i = 0; i < vectorAsArray.length; i++) {
|
|
19
|
+
vector.set(i, result[i]);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=NdArrayUtilities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NdArrayUtilities.js","sourceRoot":"","sources":["../../src/utilities/NdArrayUtilities.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAE7D,MAAM,UAAU,cAAc,CAAC,MAAuB,EAAE,WAAW,GAAG,GAAG;IACxE,MAAM,aAAa,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAEhD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC9C,aAAa,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;KAChC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,WAAW,CAAC,CAAA;IAElD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC9C,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;KACxB;AACF,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAuB,EAAE,KAAa;IACzE,MAAM,aAAa,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAEhD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC9C,aAAa,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;KAChC;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,aAAa,EAAE,KAAK,CAAC,CAAA;IAEjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC9C,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;KACxB;AACF,CAAC"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
export function extendDeep(base, extension) {
|
|
2
|
+
const extensionClone = deepClone(extension);
|
|
3
|
+
if (!isPlainObject(base) || !isPlainObject(extension)) {
|
|
4
|
+
return extensionClone;
|
|
5
|
+
}
|
|
6
|
+
const baseClone = deepClone(base);
|
|
7
|
+
for (const propName in extensionClone) {
|
|
8
|
+
if (!extensionClone.hasOwnProperty(propName)) {
|
|
9
|
+
continue;
|
|
10
|
+
}
|
|
11
|
+
baseClone[propName] = extendDeep(baseClone[propName], extensionClone[propName]);
|
|
12
|
+
}
|
|
13
|
+
return baseClone;
|
|
14
|
+
}
|
|
15
|
+
export function shallowClone(val) {
|
|
16
|
+
return clone(val, false);
|
|
17
|
+
}
|
|
18
|
+
export function deepClone(val) {
|
|
19
|
+
return clone(val, true);
|
|
20
|
+
}
|
|
21
|
+
function clone(val, deep = true, seenObjects = []) {
|
|
22
|
+
if (val == null || typeof val !== "object") {
|
|
23
|
+
return val;
|
|
24
|
+
}
|
|
25
|
+
const obj = val;
|
|
26
|
+
const prototypeIdentifier = toString.call(obj);
|
|
27
|
+
switch (prototypeIdentifier) {
|
|
28
|
+
case "[object Array]": {
|
|
29
|
+
if (seenObjects.includes(obj)) {
|
|
30
|
+
throw new Error("deepClone: encountered a cyclic object");
|
|
31
|
+
}
|
|
32
|
+
seenObjects.push(obj);
|
|
33
|
+
const clonedArray = new Array(obj.length);
|
|
34
|
+
for (let i = 0; i < obj.length; i++) {
|
|
35
|
+
if (deep) {
|
|
36
|
+
clonedArray[i] = clone(obj[i], true, seenObjects);
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
clonedArray[i] = obj[i];
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
seenObjects.pop();
|
|
43
|
+
return clonedArray;
|
|
44
|
+
}
|
|
45
|
+
case "[object ArrayBuffer]": {
|
|
46
|
+
const clonedArray = new Uint8Array(obj.byteLength);
|
|
47
|
+
clonedArray.set(new Uint8Array(obj));
|
|
48
|
+
return clonedArray.buffer;
|
|
49
|
+
}
|
|
50
|
+
case "[object Int8Array]": {
|
|
51
|
+
const clonedArray = new Int8Array(obj.length);
|
|
52
|
+
clonedArray.set(obj);
|
|
53
|
+
return clonedArray;
|
|
54
|
+
}
|
|
55
|
+
case "[object Uint8Array]": {
|
|
56
|
+
const clonedArray = new Uint8Array(obj.length);
|
|
57
|
+
clonedArray.set(obj);
|
|
58
|
+
return clonedArray;
|
|
59
|
+
}
|
|
60
|
+
case "[object Uint8ClampedArray]": {
|
|
61
|
+
const clonedArray = new Uint8ClampedArray(obj.length);
|
|
62
|
+
clonedArray.set(obj);
|
|
63
|
+
return clonedArray;
|
|
64
|
+
}
|
|
65
|
+
case "[object Int16Array]": {
|
|
66
|
+
const clonedArray = new Int16Array(obj.length);
|
|
67
|
+
clonedArray.set(obj);
|
|
68
|
+
return clonedArray;
|
|
69
|
+
}
|
|
70
|
+
case "[object Uint16Array]": {
|
|
71
|
+
const clonedArray = new Uint16Array(obj.length);
|
|
72
|
+
clonedArray.set(obj);
|
|
73
|
+
return clonedArray;
|
|
74
|
+
}
|
|
75
|
+
case "[object Int32Array]": {
|
|
76
|
+
const clonedArray = new Int32Array(obj.length);
|
|
77
|
+
clonedArray.set(obj);
|
|
78
|
+
return clonedArray;
|
|
79
|
+
}
|
|
80
|
+
case "[object Uint32Array]": {
|
|
81
|
+
const clonedArray = new Uint32Array(obj.length);
|
|
82
|
+
clonedArray.set(obj);
|
|
83
|
+
return clonedArray;
|
|
84
|
+
}
|
|
85
|
+
case "[object Float32Array]": {
|
|
86
|
+
const clonedArray = new Float32Array(obj.length);
|
|
87
|
+
clonedArray.set(obj);
|
|
88
|
+
return clonedArray;
|
|
89
|
+
}
|
|
90
|
+
case "[object Float64Array]": {
|
|
91
|
+
const clonedArray = new Float64Array(obj.length);
|
|
92
|
+
clonedArray.set(obj);
|
|
93
|
+
return clonedArray;
|
|
94
|
+
}
|
|
95
|
+
case "[object Date]": {
|
|
96
|
+
return new Date(obj.valueOf());
|
|
97
|
+
}
|
|
98
|
+
case "[object RegExp]": {
|
|
99
|
+
return obj;
|
|
100
|
+
}
|
|
101
|
+
case "[object Function]": {
|
|
102
|
+
return obj;
|
|
103
|
+
}
|
|
104
|
+
case "[object Object]": {
|
|
105
|
+
if (seenObjects.includes(obj)) {
|
|
106
|
+
throw new Error("deepClone: encountered a cyclic object");
|
|
107
|
+
}
|
|
108
|
+
seenObjects.push(obj);
|
|
109
|
+
const clonedObj = {};
|
|
110
|
+
for (const propName in obj) {
|
|
111
|
+
if (!obj.hasOwnProperty(propName)) {
|
|
112
|
+
continue;
|
|
113
|
+
}
|
|
114
|
+
if (deep) {
|
|
115
|
+
clonedObj[propName] = clone(obj[propName], true, seenObjects);
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
clonedObj[propName] = obj[propName];
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
seenObjects.pop();
|
|
122
|
+
return clonedObj;
|
|
123
|
+
}
|
|
124
|
+
default: {
|
|
125
|
+
throw new Error(`Cloning of type ${prototypeIdentifier} is not supported`);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
export function isPlainObject(val) {
|
|
130
|
+
return val != null && typeof val === "object" && toString.call(val) === "[object Object]";
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=ObjectUtilities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ObjectUtilities.js","sourceRoot":"","sources":["../../src/utilities/ObjectUtilities.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export class OpenPromise {
|
|
2
|
+
promise;
|
|
3
|
+
resolve = () => { throw new Error("OpenPromise resolved before initialization"); };
|
|
4
|
+
reject = () => { throw new Error("OpenPromise rejected before initialization"); };
|
|
5
|
+
constructor() {
|
|
6
|
+
this.promise = new Promise((resolve, reject) => {
|
|
7
|
+
this.resolve = resolve;
|
|
8
|
+
this.reject = reject;
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=OpenPromise.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OpenPromise.js","sourceRoot":"","sources":["../../src/utilities/OpenPromise.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,WAAW;IAEvB,OAAO,CAAY;IACnB,OAAO,GAAuB,GAAG,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA,CAAC,CAAC,CAAA;IACrG,MAAM,GAA2B,GAAG,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA,CAAC,CAAC,CAAA;IAExG;QACC,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACjD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;YACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACrB,CAAC,CAAC,CAAA;IACH,CAAC;CACD"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare function getPackagePathIfExists(packageName: string): Promise<string | undefined>;
|
|
2
|
+
export declare function loadPackage(packageName: string): Promise<string>;
|
|
3
|
+
export declare function removePackage(packageName: string): Promise<void>;
|
|
4
|
+
export declare function ensureAndGetPackagesDir(): Promise<string>;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { downloadAndExtractTarball } from "./FileDownloader.js";
|
|
3
|
+
import { getAppDataDir, getAppTempDir, ensureDir, existsSync, remove } from "./FileSystem.js";
|
|
4
|
+
import { appName } from "../api/Globals.js";
|
|
5
|
+
export async function getPackagePathIfExists(packageName) {
|
|
6
|
+
const packagesPath = await ensureAndGetPackagesDir();
|
|
7
|
+
const packagePath = path.join(packagesPath, packageName);
|
|
8
|
+
if (existsSync(packagePath)) {
|
|
9
|
+
return packagePath;
|
|
10
|
+
}
|
|
11
|
+
return undefined;
|
|
12
|
+
}
|
|
13
|
+
export async function loadPackage(packageName) {
|
|
14
|
+
const packagesPath = await ensureAndGetPackagesDir();
|
|
15
|
+
const packagePath = path.join(packagesPath, packageName);
|
|
16
|
+
if (existsSync(packagePath)) {
|
|
17
|
+
return packagePath;
|
|
18
|
+
}
|
|
19
|
+
const tempPath = getAppTempDir(appName);
|
|
20
|
+
let baseUrl;
|
|
21
|
+
if (packageName.startsWith("whisper-")) {
|
|
22
|
+
baseUrl = "https://github.com/echogarden-project/whisper-onnx-models/releases/download/v0.0.1/";
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
baseUrl = "https://github.com/echogarden-project/echogarden-packages/releases/download/v0.0.1/";
|
|
26
|
+
}
|
|
27
|
+
const headers = {};
|
|
28
|
+
const options = {
|
|
29
|
+
url: `${baseUrl}${packageName}.tar.gz`,
|
|
30
|
+
headers
|
|
31
|
+
};
|
|
32
|
+
await downloadAndExtractTarball(options, packagesPath, tempPath, packageName);
|
|
33
|
+
return packagePath;
|
|
34
|
+
}
|
|
35
|
+
export async function removePackage(packageName) {
|
|
36
|
+
const packagesPath = await ensureAndGetPackagesDir();
|
|
37
|
+
const packagePath = path.join(packagesPath, packageName);
|
|
38
|
+
await remove(packagePath);
|
|
39
|
+
}
|
|
40
|
+
export async function ensureAndGetPackagesDir() {
|
|
41
|
+
const dataPath = getAppDataDir(appName);
|
|
42
|
+
const packagesPath = path.join(dataPath, "packages");
|
|
43
|
+
await ensureDir(packagesPath);
|
|
44
|
+
return packagesPath;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=PackageManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PackageManager.js","sourceRoot":"","sources":["../../src/utilities/PackageManager.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAC7F,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAG3C,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,WAAmB;IAC/D,MAAM,YAAY,GAAG,MAAM,uBAAuB,EAAE,CAAA;IAEpD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;IAExD,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE;QAC5B,OAAO,WAAW,CAAA;KAClB;IAED,OAAO,SAAS,CAAA;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,WAAmB;IACpD,MAAM,YAAY,GAAG,MAAM,uBAAuB,EAAE,CAAA;IAEpD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;IAExD,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE;QAC5B,OAAO,WAAW,CAAA;KAClB;IAED,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;IAEvC,IAAI,OAAe,CAAA;IAEnB,IAAI,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;QACvC,OAAO,GAAG,qFAAqF,CAAA;KAC/F;SAAM;QACN,OAAO,GAAG,qFAAqF,CAAA;KAC/F;IAED,MAAM,OAAO,GAAG,EACf,CAAA;IAED,MAAM,OAAO,GAAkB;QAC9B,GAAG,EAAE,GAAG,OAAO,GAAG,WAAW,SAAS;QACtC,OAAO;KACP,CAAA;IAED,MAAM,yBAAyB,CAC9B,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,WAAW,CACX,CAAA;IAED,OAAO,WAAW,CAAA;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,WAAmB;IACtD,MAAM,YAAY,GAAG,MAAM,uBAAuB,EAAE,CAAA;IAEpD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;IAExD,MAAM,MAAM,CAAC,WAAW,CAAC,CAAA;AAC1B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB;IAC5C,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;IAEvC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;IAEpD,MAAM,SAAS,CAAC,YAAY,CAAC,CAAA;IAE7B,OAAO,YAAY,CAAA;AACpB,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export declare abstract class RandomGenerator {
|
|
2
|
+
getIntInRange(min: number, max: number): number;
|
|
3
|
+
getFloatInRange(min?: number, max?: number): number;
|
|
4
|
+
getFloats(length: number, min?: number, max?: number): number[];
|
|
5
|
+
getInts(length: number, min: number, max: number): number[];
|
|
6
|
+
getNormallyDistributedVector(featureCount: number, meanVector: number[], standardDeviationVector: number[]): number[];
|
|
7
|
+
getNormallyDistributedValues(count: number, mean?: number, standardDeviation?: number): number[];
|
|
8
|
+
getNormallyDistributedPair(): number[];
|
|
9
|
+
abstract nextFloat(): number;
|
|
10
|
+
abstract nextUint32(): number;
|
|
11
|
+
abstract nextInt32(): number;
|
|
12
|
+
}
|
|
13
|
+
export declare class MurmurRNG extends RandomGenerator {
|
|
14
|
+
state: number;
|
|
15
|
+
constructor(seed: number);
|
|
16
|
+
nextFloat(): number;
|
|
17
|
+
nextUint32(): number;
|
|
18
|
+
nextInt32(): number;
|
|
19
|
+
static hashInt32(val: number, seed?: number): number;
|
|
20
|
+
}
|
|
21
|
+
export declare class XorShift32RNG extends RandomGenerator {
|
|
22
|
+
state: number;
|
|
23
|
+
constructor(seed: number);
|
|
24
|
+
nextFloat(): number;
|
|
25
|
+
nextUint32(): number;
|
|
26
|
+
nextInt32(): number;
|
|
27
|
+
}
|
|
28
|
+
export declare class LehmerRNG extends RandomGenerator {
|
|
29
|
+
state: number;
|
|
30
|
+
constructor(seed: number);
|
|
31
|
+
nextFloat(): number;
|
|
32
|
+
nextUint32(): number;
|
|
33
|
+
nextInt32(): number;
|
|
34
|
+
}
|
|
35
|
+
export declare function testRngCycleLength(): void;
|