echogarden 0.0.1 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +65 -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 +17 -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,407 @@
|
|
|
1
|
+
export class WasmMemoryManager {
|
|
2
|
+
wasmModule;
|
|
3
|
+
allocatedReferences = new Set();
|
|
4
|
+
constructor(wasmModule) {
|
|
5
|
+
this.wasmModule = wasmModule;
|
|
6
|
+
}
|
|
7
|
+
allocInt8() {
|
|
8
|
+
const address = this.alloc(1);
|
|
9
|
+
return this.wrapInt8(address).clear();
|
|
10
|
+
}
|
|
11
|
+
wrapInt8(address) {
|
|
12
|
+
const ref = new Int8Ref(address, this);
|
|
13
|
+
this.allocatedReferences.add(ref);
|
|
14
|
+
return ref;
|
|
15
|
+
}
|
|
16
|
+
allocUint8() {
|
|
17
|
+
const address = this.alloc(1);
|
|
18
|
+
return this.wrapUint8(address).clear();
|
|
19
|
+
}
|
|
20
|
+
wrapUint8(address) {
|
|
21
|
+
const ref = new Uint8Ref(address, this);
|
|
22
|
+
this.allocatedReferences.add(ref);
|
|
23
|
+
return ref;
|
|
24
|
+
}
|
|
25
|
+
allocInt16() {
|
|
26
|
+
const address = this.alloc(2);
|
|
27
|
+
return this.wrapInt16(address).clear();
|
|
28
|
+
}
|
|
29
|
+
wrapInt16(address) {
|
|
30
|
+
const ref = new Int16Ref(address, this);
|
|
31
|
+
this.allocatedReferences.add(ref);
|
|
32
|
+
return ref;
|
|
33
|
+
}
|
|
34
|
+
allocUint16() {
|
|
35
|
+
const address = this.alloc(2);
|
|
36
|
+
return this.wrapUint16(address).clear();
|
|
37
|
+
}
|
|
38
|
+
wrapUint16(address) {
|
|
39
|
+
const ref = new Uint16Ref(address, this);
|
|
40
|
+
this.allocatedReferences.add(ref);
|
|
41
|
+
return ref;
|
|
42
|
+
}
|
|
43
|
+
allocInt32() {
|
|
44
|
+
const address = this.alloc(4);
|
|
45
|
+
return this.wrapInt32(address).clear();
|
|
46
|
+
}
|
|
47
|
+
wrapInt32(address) {
|
|
48
|
+
const ref = new Int32Ref(address, this);
|
|
49
|
+
this.allocatedReferences.add(ref);
|
|
50
|
+
return ref;
|
|
51
|
+
}
|
|
52
|
+
allocUint32() {
|
|
53
|
+
const address = this.alloc(4);
|
|
54
|
+
return this.wrapUint32(address).clear();
|
|
55
|
+
}
|
|
56
|
+
wrapUint32(address) {
|
|
57
|
+
const ref = new Uint32Ref(address, this);
|
|
58
|
+
this.allocatedReferences.add(ref);
|
|
59
|
+
return ref;
|
|
60
|
+
}
|
|
61
|
+
allocPointer() {
|
|
62
|
+
const address = this.alloc(4);
|
|
63
|
+
return this.wrapPointer(address).clear();
|
|
64
|
+
}
|
|
65
|
+
wrapPointer(address) {
|
|
66
|
+
const ref = new PointerRef(address, this);
|
|
67
|
+
this.allocatedReferences.add(ref);
|
|
68
|
+
return ref;
|
|
69
|
+
}
|
|
70
|
+
allocFloat32() {
|
|
71
|
+
const address = this.alloc(4);
|
|
72
|
+
return this.wrapFloat64(address).clear();
|
|
73
|
+
}
|
|
74
|
+
wrapFloat32(address) {
|
|
75
|
+
const ref = new Float32Ref(address, this);
|
|
76
|
+
this.allocatedReferences.add(ref);
|
|
77
|
+
return ref;
|
|
78
|
+
}
|
|
79
|
+
allocFloat64() {
|
|
80
|
+
const address = this.alloc(8);
|
|
81
|
+
return this.wrapFloat64(address).clear();
|
|
82
|
+
}
|
|
83
|
+
wrapFloat64(address) {
|
|
84
|
+
const ref = new Float64Ref(address, this);
|
|
85
|
+
this.allocatedReferences.add(ref);
|
|
86
|
+
return ref;
|
|
87
|
+
}
|
|
88
|
+
// Allocate or wrap arrays
|
|
89
|
+
allocInt8Array(length) {
|
|
90
|
+
const address = this.alloc(length << 0);
|
|
91
|
+
return this.wrapInt8Array(address, length).clear();
|
|
92
|
+
}
|
|
93
|
+
wrapInt8Array(address, length) {
|
|
94
|
+
const ref = new Int8ArrayRef(address, length, this);
|
|
95
|
+
this.allocatedReferences.add(ref);
|
|
96
|
+
return ref;
|
|
97
|
+
}
|
|
98
|
+
allocUint8Array(length) {
|
|
99
|
+
const address = this.alloc(length << 0);
|
|
100
|
+
return this.wrapUint8Array(address, length).clear();
|
|
101
|
+
}
|
|
102
|
+
wrapUint8Array(address, length) {
|
|
103
|
+
const ref = new Uint8ArrayRef(address, length, this);
|
|
104
|
+
this.allocatedReferences.add(ref);
|
|
105
|
+
return ref;
|
|
106
|
+
}
|
|
107
|
+
allocInt16Array(length) {
|
|
108
|
+
const address = this.alloc(length << 1);
|
|
109
|
+
return this.wrapInt16Array(address, length).clear();
|
|
110
|
+
}
|
|
111
|
+
wrapInt16Array(address, length) {
|
|
112
|
+
const ref = new Int16ArrayRef(address, length, this);
|
|
113
|
+
this.allocatedReferences.add(ref);
|
|
114
|
+
return ref;
|
|
115
|
+
}
|
|
116
|
+
allocUint16Array(length) {
|
|
117
|
+
const address = this.alloc(length << 1);
|
|
118
|
+
return this.wrapUint16Array(address, length).clear();
|
|
119
|
+
}
|
|
120
|
+
wrapUint16Array(address, length) {
|
|
121
|
+
const ref = new Uint16ArrayRef(address, length, this);
|
|
122
|
+
this.allocatedReferences.add(ref);
|
|
123
|
+
return ref;
|
|
124
|
+
}
|
|
125
|
+
allocInt32Array(length) {
|
|
126
|
+
const address = this.alloc(length << 2);
|
|
127
|
+
return this.wrapInt32Array(address, length).clear();
|
|
128
|
+
}
|
|
129
|
+
wrapInt32Array(address, length) {
|
|
130
|
+
const ref = new Int32ArrayRef(address, length, this);
|
|
131
|
+
this.allocatedReferences.add(ref);
|
|
132
|
+
return ref;
|
|
133
|
+
}
|
|
134
|
+
allocUint32Array(length) {
|
|
135
|
+
const address = this.alloc(length << 2);
|
|
136
|
+
return this.wrapUint32Array(address, length).clear();
|
|
137
|
+
}
|
|
138
|
+
wrapUint32Array(address, length) {
|
|
139
|
+
const ref = new Uint32ArrayRef(address, length, this);
|
|
140
|
+
this.allocatedReferences.add(ref);
|
|
141
|
+
return ref;
|
|
142
|
+
}
|
|
143
|
+
allocFloat32Array(length) {
|
|
144
|
+
const address = this.alloc(length << 2);
|
|
145
|
+
return this.wrapFloat32Array(address, length).clear();
|
|
146
|
+
}
|
|
147
|
+
wrapFloat32Array(address, length) {
|
|
148
|
+
const ref = new Float32ArrayRef(address, length, this);
|
|
149
|
+
this.allocatedReferences.add(ref);
|
|
150
|
+
return ref;
|
|
151
|
+
}
|
|
152
|
+
allocFloat64Array(length) {
|
|
153
|
+
const address = this.alloc(length << 3);
|
|
154
|
+
return this.wrapFloat64Array(address, length).clear();
|
|
155
|
+
}
|
|
156
|
+
wrapFloat64Array(address, length) {
|
|
157
|
+
const ref = new Float64ArrayRef(address, length, this);
|
|
158
|
+
this.allocatedReferences.add(ref);
|
|
159
|
+
return ref;
|
|
160
|
+
}
|
|
161
|
+
allocNullTerminatedUtf8String(str) {
|
|
162
|
+
const strBuffer = Buffer.concat([Buffer.from(str, "utf8"), Buffer.alloc(1)]);
|
|
163
|
+
const ref = this.allocUint8Array(strBuffer.length);
|
|
164
|
+
ref.view.set(strBuffer);
|
|
165
|
+
return ref;
|
|
166
|
+
}
|
|
167
|
+
wrapNullTerminatedUtf8String(address) {
|
|
168
|
+
const ref = new NullTerminatedUtf8StringRef(address, this);
|
|
169
|
+
this.allocatedReferences.add(ref);
|
|
170
|
+
return ref;
|
|
171
|
+
}
|
|
172
|
+
alloc(size) {
|
|
173
|
+
const ptr = this.wasmModule._malloc(size);
|
|
174
|
+
return ptr;
|
|
175
|
+
}
|
|
176
|
+
free(wasmReference) {
|
|
177
|
+
if (wasmReference.isFreed) {
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
this.wasmModule._free(wasmReference.address);
|
|
181
|
+
this.allocatedReferences.delete(wasmReference);
|
|
182
|
+
wasmReference.clearAddress();
|
|
183
|
+
}
|
|
184
|
+
freeAll() {
|
|
185
|
+
for (const wasmReference of this.allocatedReferences) {
|
|
186
|
+
this.free(wasmReference);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
class ValueRef {
|
|
191
|
+
ptr;
|
|
192
|
+
manager;
|
|
193
|
+
get module() { return this.manager.wasmModule; }
|
|
194
|
+
constructor(ptr, manager) {
|
|
195
|
+
this.ptr = ptr;
|
|
196
|
+
this.manager = manager;
|
|
197
|
+
}
|
|
198
|
+
get value() {
|
|
199
|
+
this.assertNotFreed();
|
|
200
|
+
return this.getValue();
|
|
201
|
+
}
|
|
202
|
+
set value(newValue) {
|
|
203
|
+
this.assertNotFreed();
|
|
204
|
+
this.setValue(newValue);
|
|
205
|
+
}
|
|
206
|
+
get address() {
|
|
207
|
+
this.assertNotFreed();
|
|
208
|
+
return this.ptr;
|
|
209
|
+
}
|
|
210
|
+
clear() {
|
|
211
|
+
this.assertNotFreed();
|
|
212
|
+
if (typeof this.value == 'number') {
|
|
213
|
+
this.value = 0;
|
|
214
|
+
}
|
|
215
|
+
else if (typeof this.value == 'string') {
|
|
216
|
+
throw new Error("Unimplemented");
|
|
217
|
+
}
|
|
218
|
+
return this;
|
|
219
|
+
}
|
|
220
|
+
free() {
|
|
221
|
+
this.manager.free(this);
|
|
222
|
+
}
|
|
223
|
+
clearAddress() {
|
|
224
|
+
this.ptr = 0;
|
|
225
|
+
}
|
|
226
|
+
get isFreed() { return this.ptr == 0; }
|
|
227
|
+
assertNotFreed() {
|
|
228
|
+
if (this.isFreed) {
|
|
229
|
+
throw new Error("Attempt to read a freed WASM value reference.");
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
export class Int8Ref extends ValueRef {
|
|
234
|
+
getValue() {
|
|
235
|
+
return this.module.HEAP8[this.ptr >>> 0];
|
|
236
|
+
}
|
|
237
|
+
setValue(newValue) {
|
|
238
|
+
this.module.HEAP8[this.ptr >>> 0] = newValue;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
export class Uint8Ref extends ValueRef {
|
|
242
|
+
getValue() {
|
|
243
|
+
return this.module.HEAPU8[this.ptr >>> 0];
|
|
244
|
+
}
|
|
245
|
+
setValue(newValue) {
|
|
246
|
+
this.module.HEAPU8[this.ptr >>> 0] = newValue;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
export class Int16Ref extends ValueRef {
|
|
250
|
+
getValue() {
|
|
251
|
+
return this.module.HEAP16[this.ptr >>> 1];
|
|
252
|
+
}
|
|
253
|
+
setValue(newValue) {
|
|
254
|
+
this.module.HEAP16[this.ptr >>> 1] = newValue;
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
export class Uint16Ref extends ValueRef {
|
|
258
|
+
getValue() {
|
|
259
|
+
return this.module.HEAPU16[this.ptr >>> 1];
|
|
260
|
+
}
|
|
261
|
+
setValue(newValue) {
|
|
262
|
+
this.module.HEAPU16[this.ptr >>> 1] = newValue;
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
export class Int32Ref extends ValueRef {
|
|
266
|
+
getValue() {
|
|
267
|
+
return this.module.HEAP32[this.ptr >>> 2];
|
|
268
|
+
}
|
|
269
|
+
setValue(newValue) {
|
|
270
|
+
this.module.HEAP32[this.ptr >>> 2] = newValue;
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
export class Uint32Ref extends ValueRef {
|
|
274
|
+
getValue() {
|
|
275
|
+
return this.module.HEAPU32[this.ptr >>> 2];
|
|
276
|
+
}
|
|
277
|
+
setValue(newValue) {
|
|
278
|
+
this.module.HEAPU32[this.ptr >>> 2] = newValue;
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
export class PointerRef extends Uint32Ref {
|
|
282
|
+
}
|
|
283
|
+
export class Float32Ref extends ValueRef {
|
|
284
|
+
getValue() {
|
|
285
|
+
return this.module.HEAPF32[this.ptr >>> 2];
|
|
286
|
+
}
|
|
287
|
+
setValue(newValue) {
|
|
288
|
+
this.module.HEAPF32[this.ptr >>> 2] = newValue;
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
export class Float64Ref extends ValueRef {
|
|
292
|
+
getValue() {
|
|
293
|
+
return this.module.HEAPF64[this.ptr >>> 3];
|
|
294
|
+
}
|
|
295
|
+
setValue(newValue) {
|
|
296
|
+
this.module.HEAPF64[this.ptr >>> 3] = newValue;
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
export class NullTerminatedUtf8StringRef extends ValueRef {
|
|
300
|
+
getValue() {
|
|
301
|
+
const ptr = this.ptr >>> 0;
|
|
302
|
+
const heapU8 = this.module.HEAPU8;
|
|
303
|
+
const endByteOffset = heapU8.subarray(ptr).indexOf(0);
|
|
304
|
+
const strBytes = heapU8.subarray(ptr, ptr + endByteOffset);
|
|
305
|
+
const str = Buffer.from(strBytes).toString("utf8");
|
|
306
|
+
return str;
|
|
307
|
+
}
|
|
308
|
+
setValue(newValue) {
|
|
309
|
+
throw new Error("Unimplemented");
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
class TypedArrayRef {
|
|
313
|
+
ptr;
|
|
314
|
+
length;
|
|
315
|
+
manager;
|
|
316
|
+
get module() { return this.manager.wasmModule; }
|
|
317
|
+
constructor(ptr, length, manager) {
|
|
318
|
+
this.ptr = ptr;
|
|
319
|
+
this.length = length;
|
|
320
|
+
this.manager = manager;
|
|
321
|
+
}
|
|
322
|
+
get view() {
|
|
323
|
+
this.assertNotFreed();
|
|
324
|
+
return this.getView();
|
|
325
|
+
}
|
|
326
|
+
slice(start, end) {
|
|
327
|
+
return this.view.slice(start, end);
|
|
328
|
+
}
|
|
329
|
+
get address() {
|
|
330
|
+
this.assertNotFreed();
|
|
331
|
+
return this.ptr;
|
|
332
|
+
}
|
|
333
|
+
clear() {
|
|
334
|
+
this.view.fill(0);
|
|
335
|
+
return this;
|
|
336
|
+
}
|
|
337
|
+
free() {
|
|
338
|
+
this.manager.free(this);
|
|
339
|
+
}
|
|
340
|
+
clearAddress() {
|
|
341
|
+
this.ptr = 0;
|
|
342
|
+
}
|
|
343
|
+
get isFreed() { return this.ptr == 0; }
|
|
344
|
+
assertNotFreed() {
|
|
345
|
+
if (this.isFreed) {
|
|
346
|
+
throw new Error("Attempt to read a freed WASM typed array reference.");
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
export class Int8ArrayRef extends TypedArrayRef {
|
|
351
|
+
getView() {
|
|
352
|
+
const startIndex = this.ptr >>> 0;
|
|
353
|
+
return this.module.HEAP8.subarray(startIndex, startIndex + this.length);
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
export class Uint8ArrayRef extends TypedArrayRef {
|
|
357
|
+
getView() {
|
|
358
|
+
const startIndex = this.ptr >>> 0;
|
|
359
|
+
return this.module.HEAPU8.subarray(startIndex, startIndex + this.length);
|
|
360
|
+
}
|
|
361
|
+
readAsNullTerminatedUtf8String() {
|
|
362
|
+
let strBytes = this.view;
|
|
363
|
+
const indexOfFirstZero = strBytes.indexOf(0);
|
|
364
|
+
if (indexOfFirstZero >= 0) {
|
|
365
|
+
strBytes = strBytes.subarray(0, indexOfFirstZero);
|
|
366
|
+
}
|
|
367
|
+
const str = Buffer.from(strBytes).toString("utf8");
|
|
368
|
+
return str;
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
export class Int16ArrayRef extends TypedArrayRef {
|
|
372
|
+
getView() {
|
|
373
|
+
const startIndex = this.ptr >>> 1;
|
|
374
|
+
return this.module.HEAP16.subarray(startIndex, startIndex + this.length);
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
export class Uint16ArrayRef extends TypedArrayRef {
|
|
378
|
+
getView() {
|
|
379
|
+
const startIndex = this.ptr >>> 1;
|
|
380
|
+
return this.module.HEAPU16.subarray(startIndex, startIndex + this.length);
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
export class Int32ArrayRef extends TypedArrayRef {
|
|
384
|
+
getView() {
|
|
385
|
+
const startIndex = this.ptr >>> 2;
|
|
386
|
+
return this.module.HEAP32.subarray(startIndex, startIndex + this.length);
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
export class Uint32ArrayRef extends TypedArrayRef {
|
|
390
|
+
getView() {
|
|
391
|
+
const startIndex = this.ptr >>> 2;
|
|
392
|
+
return this.module.HEAPU32.subarray(startIndex, startIndex + this.length);
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
export class Float32ArrayRef extends TypedArrayRef {
|
|
396
|
+
getView() {
|
|
397
|
+
const startIndex = this.ptr >>> 2;
|
|
398
|
+
return this.module.HEAPF32.subarray(startIndex, startIndex + this.length);
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
export class Float64ArrayRef extends TypedArrayRef {
|
|
402
|
+
getView() {
|
|
403
|
+
const startIndex = this.ptr >>> 3;
|
|
404
|
+
return this.module.HEAPF64.subarray(startIndex, startIndex + this.length);
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
//# sourceMappingURL=WasmMemoryManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WasmMemoryManager.js","sourceRoot":"","sources":["../../src/utilities/WasmMemoryManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function fetchDocumentText(url: string): Promise<string>;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Readability } from '@mozilla/readability';
|
|
2
|
+
import { JSDOM, VirtualConsole } from 'jsdom';
|
|
3
|
+
import { request } from 'gaxios';
|
|
4
|
+
import { Logger } from './Logger.js';
|
|
5
|
+
import { convertHtmlToText } from './Utilities.js';
|
|
6
|
+
export async function fetchDocumentText(url) {
|
|
7
|
+
const progressLogger = new Logger();
|
|
8
|
+
progressLogger.start(`Fetching ${url}`);
|
|
9
|
+
const response = await request({
|
|
10
|
+
url,
|
|
11
|
+
responseType: "text",
|
|
12
|
+
headers: {
|
|
13
|
+
"sec-ch-ua": `".Not/A)Brand";v="99", "Google Chrome";v="103", "Chromium";v="103"`,
|
|
14
|
+
"x-same-domain": "1",
|
|
15
|
+
"dnt": "1",
|
|
16
|
+
"content-type": "application/x-www-form-urlencoded;charset=UTF-8",
|
|
17
|
+
"sec-ch-ua-mobile": "?0",
|
|
18
|
+
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36",
|
|
19
|
+
"sec-ch-ua-arch": "x86",
|
|
20
|
+
"sec-ch-ua-full-version": "103.0.5060.114",
|
|
21
|
+
"sec-ch-ua-platform-version": "10.0.0",
|
|
22
|
+
"sec-ch-ua-full-version-list": `".Not/A)Brand";v="99.0.0.0", "Google Chrome";v="103.0.5060.114", "Chromium";v="103.0.5060.114"`,
|
|
23
|
+
"sec-ch-ua-bitness": "64",
|
|
24
|
+
"sec-ch-ua-model": "",
|
|
25
|
+
"sec-ch-ua-platform": "Windows",
|
|
26
|
+
"accept": "*/*",
|
|
27
|
+
//"origin": "https://www.google.com/",
|
|
28
|
+
"sec-fetch-site": "same-origin",
|
|
29
|
+
"sec-fetch-mode": "cors",
|
|
30
|
+
"sec-fetch-dest": "empty",
|
|
31
|
+
"referer": "https://www.google.com/",
|
|
32
|
+
"accept-encoding": "gzip, deflate, br",
|
|
33
|
+
"accept-language": "en-US,en;q=0.9",
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
progressLogger.start(`Parsing document body`);
|
|
37
|
+
const doc = new JSDOM(response.data, {
|
|
38
|
+
url,
|
|
39
|
+
virtualConsole: new VirtualConsole()
|
|
40
|
+
});
|
|
41
|
+
const reader = new Readability(doc.window.document);
|
|
42
|
+
const article = reader.parse();
|
|
43
|
+
const text = await convertHtmlToText(article?.content || "");
|
|
44
|
+
progressLogger.end();
|
|
45
|
+
return text;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=WebReader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebReader.js","sourceRoot":"","sources":["../../src/utilities/WebReader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAElD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,GAAW;IAClD,MAAM,cAAc,GAAG,IAAI,MAAM,EAAE,CAAA;IACnC,cAAc,CAAC,KAAK,CAAC,YAAY,GAAG,EAAE,CAAC,CAAA;IAEvC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAS;QACtC,GAAG;QACH,YAAY,EAAE,MAAM;QACpB,OAAO,EAAE;YACR,WAAW,EAAE,oEAAoE;YACjF,eAAe,EAAE,GAAG;YACpB,KAAK,EAAE,GAAG;YACV,cAAc,EAAE,iDAAiD;YACjE,kBAAkB,EAAE,IAAI;YACxB,YAAY,EAAE,iHAAiH;YAC/H,gBAAgB,EAAE,KAAK;YACvB,wBAAwB,EAAE,gBAAgB;YAC1C,4BAA4B,EAAE,QAAQ;YACtC,6BAA6B,EAAE,gGAAgG;YAC/H,mBAAmB,EAAE,IAAI;YACzB,iBAAiB,EAAE,EAAE;YACrB,oBAAoB,EAAE,SAAS;YAC/B,QAAQ,EAAE,KAAK;YACf,sCAAsC;YACtC,gBAAgB,EAAE,aAAa;YAC/B,gBAAgB,EAAE,MAAM;YACxB,gBAAgB,EAAE,OAAO;YACzB,SAAS,EAAE,yBAAyB;YACpC,iBAAiB,EAAE,mBAAmB;YACtC,iBAAiB,EAAE,gBAAgB;SACnC;KACD,CAAC,CAAA;IAEF,cAAc,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAA;IAE7C,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE;QACpC,GAAG;QACH,cAAc,EAAE,IAAI,cAAc,EAAE;KACpC,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAEnD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,EAAE,CAAA;IAE9B,MAAM,IAAI,GAAW,MAAM,iBAAiB,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC,CAAA;IAEpE,cAAc,CAAC,GAAG,EAAE,CAAA;IAEpB,OAAO,IAAI,CAAA;AACZ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function parseWikipediaArticle(articleName: string, language: string): Promise<string[]>;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { splitToParagraphs, wordCharacterPattern } from '../nlp/Segmentation.js';
|
|
2
|
+
import { Logger } from './Logger.js';
|
|
3
|
+
export async function parseWikipediaArticle(articleName, language) {
|
|
4
|
+
const logger = new Logger();
|
|
5
|
+
logger.startAsync("Fetching Wikipedia article");
|
|
6
|
+
const { default: wtf } = await import('wtf_wikipedia');
|
|
7
|
+
const document = await wtf.fetch(articleName, language);
|
|
8
|
+
if (!document) {
|
|
9
|
+
throw new Error("Error fetching Wikipedia article");
|
|
10
|
+
}
|
|
11
|
+
const sections = document.sections();
|
|
12
|
+
const sectionsText = [];
|
|
13
|
+
for (const section of sections) {
|
|
14
|
+
const sectionTitle = section.title();
|
|
15
|
+
if (wordCharacterPattern.test(sectionTitle)) {
|
|
16
|
+
sectionsText.push(sectionTitle);
|
|
17
|
+
}
|
|
18
|
+
//sectionsText.push()
|
|
19
|
+
//const sectionParagraphs = section.paragraphs()
|
|
20
|
+
const sectionParagraphs = splitToParagraphs(section.text());
|
|
21
|
+
for (const paragraph of sectionParagraphs) {
|
|
22
|
+
const paragraphText = paragraph;
|
|
23
|
+
if (wordCharacterPattern.test(paragraphText)) {
|
|
24
|
+
sectionsText.push(paragraphText);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
logger.end();
|
|
29
|
+
return sectionsText;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=WikipediaReader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WikipediaReader.js","sourceRoot":"","sources":["../../src/utilities/WikipediaReader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAChF,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,WAAmB,EAAE,QAAgB;IAChF,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAA;IAE3B,MAAM,CAAC,UAAU,CAAC,4BAA4B,CAAC,CAAA;IAE/C,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAA;IAEtD,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;IAEvD,IAAI,CAAC,QAAQ,EAAE;QACd,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;KACnD;IAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAA;IACpC,MAAM,YAAY,GAAa,EAAE,CAAA;IAEjC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;QAC/B,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,EAAE,CAAA;QAEpC,IAAI,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;YAC5C,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;SAC/B;QAED,qBAAqB;QAErB,gDAAgD;QAChD,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;QAE3D,KAAK,MAAM,SAAS,IAAI,iBAAiB,EAAE;YAC1C,MAAM,aAAa,GAAG,SAAS,CAAA;YAE/B,IAAI,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;gBAC7C,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;aAChC;SACD;KACD;IAED,MAAM,CAAC,GAAG,EAAE,CAAA;IAEZ,OAAO,YAAY,CAAA;AACpB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import Onnx from 'onnxruntime-node';
|
|
2
|
+
import { RawAudio } from '../audio/AudioUtilities.js';
|
|
3
|
+
export declare function detectVoiceActivity(rawAudio: RawAudio, modelPath: string, frameDuration?: 30 | 60 | 90): Promise<number[]>;
|
|
4
|
+
export declare class SileroVAD {
|
|
5
|
+
session?: Onnx.InferenceSession;
|
|
6
|
+
modelStateH: Onnx.Tensor;
|
|
7
|
+
modelStateC: Onnx.Tensor;
|
|
8
|
+
modelSampleRate: Onnx.Tensor;
|
|
9
|
+
modelPath: string;
|
|
10
|
+
constructor(modelPath: string);
|
|
11
|
+
predictAudioFrame(frame: Float32Array): Promise<number>;
|
|
12
|
+
private initializeSession;
|
|
13
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import Onnx from 'onnxruntime-node';
|
|
2
|
+
import { concatFloat32Arrays } from '../utilities/Utilities.js';
|
|
3
|
+
let sileroVad;
|
|
4
|
+
export async function detectVoiceActivity(rawAudio, modelPath, frameDuration = 30) {
|
|
5
|
+
if (rawAudio.sampleRate != 16000) {
|
|
6
|
+
throw new Error("Audio sample rate must be 16KHz");
|
|
7
|
+
}
|
|
8
|
+
const audioSamples = rawAudio.audioChannels[0];
|
|
9
|
+
const frameLength = Math.floor(16000 * (frameDuration / 1000));
|
|
10
|
+
if (!sileroVad) {
|
|
11
|
+
sileroVad = new SileroVAD(modelPath);
|
|
12
|
+
}
|
|
13
|
+
const frameProbabilities = [];
|
|
14
|
+
for (let position = 0; position < audioSamples.length; position += frameLength) {
|
|
15
|
+
let chunk = audioSamples.subarray(position, position + frameLength);
|
|
16
|
+
if (chunk.length < frameLength) {
|
|
17
|
+
chunk = concatFloat32Arrays([chunk, new Float32Array(frameLength - chunk.length)]);
|
|
18
|
+
}
|
|
19
|
+
const probability = await sileroVad.predictAudioFrame(chunk);
|
|
20
|
+
frameProbabilities.push(probability);
|
|
21
|
+
}
|
|
22
|
+
return frameProbabilities;
|
|
23
|
+
}
|
|
24
|
+
export class SileroVAD {
|
|
25
|
+
session;
|
|
26
|
+
modelStateH;
|
|
27
|
+
modelStateC;
|
|
28
|
+
modelSampleRate;
|
|
29
|
+
modelPath;
|
|
30
|
+
constructor(modelPath) {
|
|
31
|
+
this.modelSampleRate = new Onnx.Tensor('int64', new BigInt64Array([BigInt(16000)]), []);
|
|
32
|
+
const h = new Float32Array(2 * 1 * 64);
|
|
33
|
+
const c = new Float32Array(2 * 1 * 64);
|
|
34
|
+
this.modelStateH = new Onnx.Tensor('float32', h, [2, 1, 64]);
|
|
35
|
+
this.modelStateC = new Onnx.Tensor('float32', c, [2, 1, 64]);
|
|
36
|
+
this.modelPath = modelPath;
|
|
37
|
+
}
|
|
38
|
+
async predictAudioFrame(frame) {
|
|
39
|
+
if (!this.session) {
|
|
40
|
+
await this.initializeSession(this.modelPath);
|
|
41
|
+
}
|
|
42
|
+
const inputTensor = new Onnx.Tensor('float32', frame, [1, frame.length]);
|
|
43
|
+
//const inputs = { input: inputTensor, h0: this.modelStateH, c0: this.modelStateC }
|
|
44
|
+
const inputs = { input: inputTensor, sr: this.modelSampleRate, h: this.modelStateH, c: this.modelStateC };
|
|
45
|
+
const results = await this.session.run(inputs);
|
|
46
|
+
const probability = results["output"].data[0];
|
|
47
|
+
this.modelStateH = results["hn"];
|
|
48
|
+
this.modelStateC = results["cn"];
|
|
49
|
+
return probability;
|
|
50
|
+
}
|
|
51
|
+
async initializeSession(modelPath) {
|
|
52
|
+
const onnxOptions = {
|
|
53
|
+
logSeverityLevel: 3
|
|
54
|
+
};
|
|
55
|
+
this.session = await Onnx.InferenceSession.create(modelPath, onnxOptions);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=SileroVAD.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SileroVAD.js","sourceRoot":"","sources":["../../src/voice-activity-detection/SileroVAD.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { RawAudio } from "../audio/AudioUtilities.js";
|
|
2
|
+
export declare function detectVoiceActivity(rawAudio: RawAudio, frameDuration?: 10 | 20 | 30, mode?: 0 | 1 | 2 | 3): Promise<(0 | 1)[]>;
|
|
3
|
+
export declare function fvad(samples: Int16Array, sampleRate: number, frameDuration: 10 | 20 | 30, mode: 0 | 1 | 2 | 3): Promise<any[]>;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import * as AudioBufferConversion from "../audio/AudioBufferConversion.js";
|
|
2
|
+
import { WasmMemoryManager } from "../utilities/WasmMemoryManager.js";
|
|
3
|
+
export async function detectVoiceActivity(rawAudio, frameDuration = 10, mode = 0) {
|
|
4
|
+
if (rawAudio.sampleRate != 16000) {
|
|
5
|
+
throw new Error("Audio sample rate must be 16KHz");
|
|
6
|
+
}
|
|
7
|
+
const frameClassifications = await fvad(AudioBufferConversion.float32ToInt16Pcm(rawAudio.audioChannels[0]), rawAudio.sampleRate, frameDuration, mode);
|
|
8
|
+
return frameClassifications;
|
|
9
|
+
}
|
|
10
|
+
export async function fvad(samples, sampleRate, frameDuration, mode) {
|
|
11
|
+
const m = await getFvadInstance();
|
|
12
|
+
const wasmMemory = new WasmMemoryManager(m);
|
|
13
|
+
const fvad_new = m._fvad_new;
|
|
14
|
+
const fvad_free = m._fvad_free;
|
|
15
|
+
const fvad_reset = m._fvad_reset;
|
|
16
|
+
const fvad_set_mode = m._fvad_set_mode;
|
|
17
|
+
const fvad_set_sample_rate = m._fvad_set_sample_rate;
|
|
18
|
+
const fvad_process = m._fvad_process;
|
|
19
|
+
const instancePtr = fvad_new();
|
|
20
|
+
const sampleRateValid = fvad_set_sample_rate(instancePtr, sampleRate);
|
|
21
|
+
if (sampleRateValid != 0) {
|
|
22
|
+
throw new Error(`fvad_set_sample_rate failed for value ${sampleRate}`);
|
|
23
|
+
}
|
|
24
|
+
const modeValid = fvad_set_mode(instancePtr, mode);
|
|
25
|
+
if (modeValid != 0) {
|
|
26
|
+
throw new Error(`fvad_set_mode failed for mode ${mode}`);
|
|
27
|
+
}
|
|
28
|
+
const frameSampleCount = Math.floor(sampleRate * (frameDuration / 1000));
|
|
29
|
+
const frameSamplesRef = wasmMemory.allocInt16Array(frameSampleCount);
|
|
30
|
+
const result = [];
|
|
31
|
+
for (let sampleOffset = 0; sampleOffset < samples.length; sampleOffset += frameSampleCount) {
|
|
32
|
+
const frame = samples.subarray(sampleOffset, sampleOffset + frameSampleCount);
|
|
33
|
+
frameSamplesRef.clear();
|
|
34
|
+
frameSamplesRef.view.set(frame);
|
|
35
|
+
const fvadResult = fvad_process(instancePtr, frameSamplesRef.address, frameSampleCount);
|
|
36
|
+
if (fvadResult == -1) {
|
|
37
|
+
throw new Error("fvad_process failed");
|
|
38
|
+
}
|
|
39
|
+
result.push(fvadResult);
|
|
40
|
+
}
|
|
41
|
+
fvad_free(instancePtr);
|
|
42
|
+
wasmMemory.freeAll();
|
|
43
|
+
return result;
|
|
44
|
+
}
|
|
45
|
+
let fvadInstance;
|
|
46
|
+
async function getFvadInstance() {
|
|
47
|
+
if (!fvadInstance) {
|
|
48
|
+
const { default: fvadInitializer } = await import('@echogarden/fvad-wasm');
|
|
49
|
+
fvadInstance = await fvadInitializer();
|
|
50
|
+
}
|
|
51
|
+
return fvadInstance;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=WebRtcVAD.js.map
|