echogarden 1.8.7 → 2.0.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 +23 -18
- package/data/schemas/options.json +52 -47
- package/dist/alignment/DTWSequenceAlignment.d.ts +1 -1
- package/dist/alignment/DTWSequenceAlignment.js +5 -5
- package/dist/alignment/DTWSequenceAlignment.js.map +1 -1
- package/dist/alignment/SpeechAlignment.js +6 -6
- package/dist/alignment/SpeechAlignment.js.map +1 -1
- package/dist/api/Alignment.d.ts +1 -1
- package/dist/api/Alignment.js +49 -11
- package/dist/api/Alignment.js.map +1 -1
- package/dist/api/Denoising.d.ts +4 -2
- package/dist/api/Denoising.js +65 -13
- package/dist/api/Denoising.js.map +1 -1
- package/dist/api/SourceSeparation.js +9 -6
- package/dist/api/SourceSeparation.js.map +1 -1
- package/dist/api/SpeechLanguageDetection.js +4 -4
- package/dist/api/SpeechLanguageDetection.js.map +1 -1
- package/dist/api/Synthesis.d.ts +2 -2
- package/dist/api/Synthesis.js +10 -7
- package/dist/api/Synthesis.js.map +1 -1
- package/dist/api/VoiceActivityDetection.js +2 -2
- package/dist/api/VoiceActivityDetection.js.map +1 -1
- package/dist/audio/AudioBufferConversion.d.ts +2 -2
- package/dist/audio/AudioBufferConversion.js +77 -43
- package/dist/audio/AudioBufferConversion.js.map +1 -1
- package/dist/audio/AudioPlayer.d.ts +7 -5
- package/dist/audio/AudioPlayer.js +135 -49
- package/dist/audio/AudioPlayer.js.map +1 -1
- package/dist/audio/AudioUtilities.d.ts +4 -3
- package/dist/audio/AudioUtilities.js +30 -15
- package/dist/audio/AudioUtilities.js.map +1 -1
- package/dist/audio/SoxPath.js +3 -3
- package/dist/audio/SoxPath.js.map +1 -1
- package/dist/build-tools/MakeTarballsForInstalledPackages.js +3 -3
- package/dist/build-tools/MakeTarballsForInstalledPackages.js.map +1 -1
- package/dist/cli/CLI.js +30 -36
- package/dist/cli/CLI.js.map +1 -1
- package/dist/cli/CLIConfigFile.js +2 -2
- package/dist/cli/CLIConfigFile.js.map +1 -1
- package/dist/cli/CLIOptions.d.ts +2 -0
- package/dist/cli/CLIOptions.js +1 -1
- package/dist/cli/CLIOptions.js.map +1 -1
- package/dist/codecs/FFMpegTranscoder.d.ts +3 -3
- package/dist/codecs/FFMpegTranscoder.js +6 -6
- package/dist/codecs/FFMpegTranscoder.js.map +1 -1
- package/dist/codecs/TIMITCodec.d.ts +1 -1
- package/dist/codecs/TIMITCodec.js +4 -3
- package/dist/codecs/TIMITCodec.js.map +1 -1
- package/dist/codecs/WaveCodec.d.ts +3 -3
- package/dist/codecs/WaveCodec.js +37 -34
- package/dist/codecs/WaveCodec.js.map +1 -1
- package/dist/data-structures/DynamicTypedArray.d.ts +17 -0
- package/dist/data-structures/DynamicTypedArray.js +47 -0
- package/dist/data-structures/DynamicTypedArray.js.map +1 -0
- package/dist/data-structures/Queue.js.map +1 -0
- package/dist/data-structures/WindowedList.js.map +1 -0
- package/dist/denoising/NSNet2.d.ts +26 -0
- package/dist/denoising/NSNet2.js +128 -0
- package/dist/denoising/NSNet2.js.map +1 -0
- package/dist/denoising/RNNoise.js +3 -3
- package/dist/denoising/RNNoise.js.map +1 -1
- package/dist/dsp/FFT.d.ts +6 -1
- package/dist/dsp/FFT.js +17 -0
- package/dist/dsp/FFT.js.map +1 -1
- package/dist/encodings/Ascii.d.ts +10 -0
- package/dist/encodings/Ascii.js +41 -0
- package/dist/encodings/Ascii.js.map +1 -0
- package/dist/encodings/Base64.d.ts +5 -0
- package/dist/encodings/Base64.js +114 -0
- package/dist/encodings/Base64.js.map +1 -0
- package/dist/encodings/Hex.d.ts +3 -0
- package/dist/encodings/Hex.js +52 -0
- package/dist/encodings/Hex.js.map +1 -0
- package/dist/encodings/HtmlEscape.d.ts +1 -0
- package/dist/encodings/HtmlEscape.js +30 -0
- package/dist/encodings/HtmlEscape.js.map +1 -0
- package/dist/{utilities → encodings}/LEB128.d.ts +1 -1
- package/dist/{utilities → encodings}/LEB128.js +4 -4
- package/dist/encodings/LEB128.js.map +1 -0
- package/dist/{utilities → encodings}/LPVarInt.d.ts +1 -1
- package/dist/{utilities → encodings}/LPVarInt.js +6 -6
- package/dist/encodings/LPVarInt.js.map +1 -0
- package/dist/encodings/TextEncodingsCommon.d.ts +4 -0
- package/dist/encodings/TextEncodingsCommon.js +2 -0
- package/dist/encodings/TextEncodingsCommon.js.map +1 -0
- package/dist/encodings/Utf16.d.ts +10 -0
- package/dist/encodings/Utf16.js +36 -0
- package/dist/encodings/Utf16.js.map +1 -0
- package/dist/encodings/Utf32.d.ts +4 -0
- package/dist/encodings/Utf32.js +32 -0
- package/dist/encodings/Utf32.js.map +1 -0
- package/dist/encodings/Utf8.d.ts +10 -0
- package/dist/encodings/Utf8.js +97 -0
- package/dist/encodings/Utf8.js.map +1 -0
- package/dist/math/MedianFilter.d.ts +0 -1
- package/dist/math/MedianFilter.js +0 -10
- package/dist/math/MedianFilter.js.map +1 -1
- package/dist/nlp/JapaneseSegmentation.js +2 -2
- package/dist/nlp/JapaneseSegmentation.js.map +1 -1
- package/dist/recognition/GoogleCloudSTT.js +2 -1
- package/dist/recognition/GoogleCloudSTT.js.map +1 -1
- package/dist/recognition/SileroSTT.js +3 -3
- package/dist/recognition/SileroSTT.js.map +1 -1
- package/dist/recognition/VoskSTT.js +3 -3
- package/dist/recognition/VoskSTT.js.map +1 -1
- package/dist/recognition/WhisperCppSTT.js +4 -5
- package/dist/recognition/WhisperCppSTT.js.map +1 -1
- package/dist/recognition/WhisperSTT.js +8 -7
- package/dist/recognition/WhisperSTT.js.map +1 -1
- package/dist/server/Client.d.ts +1 -1
- package/dist/server/Client.js +2 -1
- package/dist/server/Client.js.map +1 -1
- package/dist/server/Server.js +5 -4
- package/dist/server/Server.js.map +1 -1
- package/dist/server/Worker.js +1 -1
- package/dist/server/Worker.js.map +1 -1
- package/dist/source-separation/MDXNetSourceSeparation.js +1 -1
- package/dist/source-separation/MDXNetSourceSeparation.js.map +1 -1
- package/dist/speech-search/DTWSpeechSearch.d.ts +1 -1
- package/dist/speech-search/DTWSpeechSearch.js +25 -6
- package/dist/speech-search/DTWSpeechSearch.js.map +1 -1
- package/dist/subtitles/Subtitles.js +2 -2
- package/dist/subtitles/Subtitles.js.map +1 -1
- package/dist/synthesis/AzureCognitiveServicesTTS.js +19 -20
- package/dist/synthesis/AzureCognitiveServicesTTS.js.map +1 -1
- package/dist/synthesis/CoquiServerTTS.js +1 -1
- package/dist/synthesis/CoquiServerTTS.js.map +1 -1
- package/dist/synthesis/ElevenlabsTTS.js +1 -1
- package/dist/synthesis/ElevenlabsTTS.js.map +1 -1
- package/dist/synthesis/EspeakTTS.d.ts +0 -1
- package/dist/synthesis/EspeakTTS.js +2 -11
- package/dist/synthesis/EspeakTTS.js.map +1 -1
- package/dist/synthesis/FliteTTS.js +8 -9
- package/dist/synthesis/FliteTTS.js.map +1 -1
- package/dist/synthesis/GoogleCloudTTS.d.ts +1 -1
- package/dist/synthesis/GoogleCloudTTS.js +2 -1
- package/dist/synthesis/GoogleCloudTTS.js.map +1 -1
- package/dist/synthesis/GoogleTranslateTTS.d.ts +1 -1
- package/dist/synthesis/GoogleTranslateTTS.js +4 -3
- package/dist/synthesis/GoogleTranslateTTS.js.map +1 -1
- package/dist/synthesis/MicrosoftEdgeTTS.js +34 -9
- package/dist/synthesis/MicrosoftEdgeTTS.js.map +1 -1
- package/dist/synthesis/SapiTTS.js +1 -1
- package/dist/synthesis/SapiTTS.js.map +1 -1
- package/dist/synthesis/StreamlabsPollyTTS.d.ts +1 -1
- package/dist/synthesis/StreamlabsPollyTTS.js +1 -1
- package/dist/synthesis/StreamlabsPollyTTS.js.map +1 -1
- package/dist/synthesis/SvoxPicoTTS.js +6 -6
- package/dist/synthesis/SvoxPicoTTS.js.map +1 -1
- package/dist/synthesis/VitsTTS.js +2 -2
- package/dist/synthesis/VitsTTS.js.map +1 -1
- package/dist/tests/Test.js +1 -47
- package/dist/tests/Test.js.map +1 -1
- package/dist/text-language-detection/FastTextLanguageDetection.js +2 -2
- package/dist/text-language-detection/FastTextLanguageDetection.js.map +1 -1
- package/dist/text-translation/GoogleTranslateTextTranslation.js +1 -1
- package/dist/text-translation/GoogleTranslateTextTranslation.js.map +1 -1
- package/dist/typings/TypedArray.d.ts +4 -0
- package/dist/typings/TypedArray.js +2 -0
- package/dist/typings/TypedArray.js.map +1 -0
- package/dist/utilities/BinaryArrayConversion.d.ts +12 -22
- package/dist/utilities/BinaryArrayConversion.js +40 -90
- package/dist/utilities/BinaryArrayConversion.js.map +1 -1
- package/dist/utilities/BinaryUtilities.d.ts +13 -0
- package/dist/utilities/BinaryUtilities.js +113 -0
- package/dist/utilities/BinaryUtilities.js.map +1 -0
- package/dist/utilities/Compression.js +7 -6
- package/dist/utilities/Compression.js.map +1 -1
- package/dist/utilities/FileDownloader.js +26 -47
- package/dist/utilities/FileDownloader.js.map +1 -1
- package/dist/utilities/FileReader.d.ts +14 -0
- package/dist/utilities/FileReader.js +71 -0
- package/dist/utilities/FileReader.js.map +1 -0
- package/dist/utilities/FileSystem.d.ts +19 -16
- package/dist/utilities/FileSystem.js +170 -109
- package/dist/utilities/FileSystem.js.map +1 -1
- package/dist/utilities/FileWriter.d.ts +12 -0
- package/dist/utilities/FileWriter.js +60 -0
- package/dist/utilities/FileWriter.js.map +1 -0
- package/dist/utilities/NpmUtilities.d.ts +1 -0
- package/dist/utilities/NpmUtilities.js +14 -0
- package/dist/utilities/NpmUtilities.js.map +1 -0
- package/dist/utilities/PackageManager.js +7 -5
- package/dist/utilities/PackageManager.js.map +1 -1
- package/dist/utilities/PathUtilities.d.ts +8 -0
- package/dist/utilities/PathUtilities.js +28 -7
- package/dist/utilities/PathUtilities.js.map +1 -1
- package/dist/utilities/SignalChannel.d.ts +3 -1
- package/dist/utilities/SignalChannel.js +9 -5
- package/dist/utilities/SignalChannel.js.map +1 -1
- package/dist/utilities/StringBuilder.d.ts +10 -0
- package/dist/utilities/StringBuilder.js +39 -0
- package/dist/utilities/StringBuilder.js.map +1 -0
- package/dist/utilities/StringUtilities.js.map +1 -1
- package/dist/utilities/TarballMaker.js +6 -7
- package/dist/utilities/TarballMaker.js.map +1 -1
- package/dist/utilities/Timer.js +2 -2
- package/dist/utilities/Timer.js.map +1 -1
- package/dist/utilities/Utilities.d.ts +11 -5
- package/dist/utilities/Utilities.js +69 -33
- package/dist/utilities/Utilities.js.map +1 -1
- package/dist/utilities/VirtualFileReadStream.d.ts +3 -3
- package/dist/utilities/VirtualFileReadStream.js.map +1 -1
- package/dist/utilities/WasmMemoryManager.d.ts +5 -2
- package/dist/utilities/WasmMemoryManager.js +15 -4
- package/dist/utilities/WasmMemoryManager.js.map +1 -1
- package/docs/API.md +1 -1
- package/docs/CLI.md +1 -1
- package/docs/Licenses.md +3 -0
- package/docs/Options.md +9 -3
- package/docs/Tasklist.md +0 -1
- package/docs/Technical.md +2 -2
- package/package.json +22 -25
- package/src/alignment/DTWSequenceAlignment.ts +5 -5
- package/src/alignment/SpeechAlignment.ts +6 -6
- package/src/api/Alignment.ts +65 -12
- package/src/api/Denoising.ts +97 -17
- package/src/api/SourceSeparation.ts +11 -8
- package/src/api/SpeechLanguageDetection.ts +4 -4
- package/src/api/Synthesis.ts +15 -11
- package/src/api/VoiceActivityDetection.ts +2 -2
- package/src/audio/AudioBufferConversion.ts +84 -45
- package/src/audio/AudioPlayer.ts +155 -53
- package/src/audio/AudioUtilities.ts +38 -22
- package/src/audio/SoxPath.ts +3 -3
- package/src/build-tools/MakeTarballsForInstalledPackages.ts +3 -3
- package/src/cli/CLI.ts +30 -36
- package/src/cli/CLIConfigFile.ts +2 -2
- package/src/cli/CLIOptions.ts +4 -1
- package/src/codecs/FFMpegTranscoder.ts +11 -11
- package/src/codecs/TIMITCodec.ts +5 -4
- package/src/codecs/WaveCodec.ts +42 -39
- package/src/data-structures/DynamicTypedArray.ts +64 -0
- package/src/denoising/NSNet2.ts +182 -0
- package/src/denoising/RNNoise.ts +3 -3
- package/src/dsp/FFT.ts +21 -1
- package/src/encodings/Ascii.ts +60 -0
- package/src/encodings/Base64.ts +157 -0
- package/src/encodings/Hex.ts +67 -0
- package/src/encodings/HtmlEscape.ts +39 -0
- package/src/{utilities → encodings}/LEB128.ts +4 -4
- package/src/{utilities → encodings}/LPVarInt.ts +6 -6
- package/src/encodings/TextEncodingsCommon.ts +4 -0
- package/src/encodings/Utf16.ts +52 -0
- package/src/encodings/Utf32.ts +44 -0
- package/src/encodings/Utf8.ts +117 -0
- package/src/math/MedianFilter.ts +0 -16
- package/src/nlp/JapaneseSegmentation.ts +2 -2
- package/src/recognition/GoogleCloudSTT.ts +2 -1
- package/src/recognition/SileroSTT.ts +3 -3
- package/src/recognition/VoskSTT.ts +3 -3
- package/src/recognition/WhisperCppSTT.ts +4 -5
- package/src/recognition/WhisperSTT.ts +8 -7
- package/src/server/Client.ts +4 -3
- package/src/server/Server.ts +6 -5
- package/src/server/Worker.ts +1 -1
- package/src/source-separation/MDXNetSourceSeparation.ts +1 -1
- package/src/speech-search/DTWSpeechSearch.ts +36 -7
- package/src/subtitles/Subtitles.ts +3 -3
- package/src/synthesis/AzureCognitiveServicesTTS.ts +20 -18
- package/src/synthesis/CoquiServerTTS.ts +2 -2
- package/src/synthesis/ElevenlabsTTS.ts +1 -1
- package/src/synthesis/EspeakTTS.ts +2 -18
- package/src/synthesis/FliteTTS.ts +8 -10
- package/src/synthesis/GoogleCloudTTS.ts +3 -2
- package/src/synthesis/GoogleTranslateTTS.ts +5 -4
- package/src/synthesis/MicrosoftEdgeTTS.ts +49 -18
- package/src/synthesis/SapiTTS.ts +1 -1
- package/src/synthesis/StreamlabsPollyTTS.ts +1 -1
- package/src/synthesis/SvoxPicoTTS.ts +8 -8
- package/src/synthesis/VitsTTS.ts +2 -2
- package/src/tests/Test.ts +1 -60
- package/src/text-language-detection/FastTextLanguageDetection.ts +2 -2
- package/src/text-translation/GoogleTranslateTextTranslation.ts +1 -1
- package/src/typings/Fillers.d.ts +2 -10
- package/src/typings/TypedArray.ts +5 -0
- package/src/utilities/BinaryArrayConversion.ts +51 -125
- package/src/utilities/BinaryUtilities.ts +138 -0
- package/src/utilities/Compression.ts +7 -6
- package/src/utilities/FileDownloader.ts +27 -52
- package/src/utilities/FileReader.ts +89 -0
- package/src/utilities/FileSystem.ts +213 -120
- package/src/utilities/FileWriter.ts +72 -0
- package/src/utilities/NpmUtilities.ts +23 -0
- package/src/utilities/PackageManager.ts +8 -5
- package/src/utilities/PathUtilities.ts +36 -7
- package/src/utilities/SignalChannel.ts +14 -7
- package/src/utilities/StringBuilder.ts +45 -0
- package/src/utilities/StringUtilities.ts +2 -0
- package/src/utilities/TarballMaker.ts +6 -7
- package/src/utilities/Timer.ts +4 -2
- package/src/utilities/Utilities.ts +80 -45
- package/src/utilities/VirtualFileReadStream.ts +5 -5
- package/src/utilities/WasmMemoryManager.ts +20 -6
- package/tsconfig.json +96 -0
- package/dist/utilities/DynamicUint8Array.d.ts +0 -9
- package/dist/utilities/DynamicUint8Array.js +0 -31
- package/dist/utilities/DynamicUint8Array.js.map +0 -1
- package/dist/utilities/LEB128.js.map +0 -1
- package/dist/utilities/LPVarInt.js.map +0 -1
- package/dist/utilities/Queue.js.map +0 -1
- package/dist/utilities/WindowedList.js.map +0 -1
- package/src/utilities/DynamicUint8Array.ts +0 -39
- /package/dist/{utilities → data-structures}/Queue.d.ts +0 -0
- /package/dist/{utilities → data-structures}/Queue.js +0 -0
- /package/dist/{utilities → data-structures}/WindowedList.d.ts +0 -0
- /package/dist/{utilities → data-structures}/WindowedList.js +0 -0
- /package/src/{utilities → data-structures}/Queue.ts +0 -0
- /package/src/{utilities → data-structures}/WindowedList.ts +0 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { decodeUtf8, encodeUtf8 } from "../encodings/Utf8.js";
|
|
2
|
+
import { concatUint8Arrays } from "./Utilities.js";
|
|
2
3
|
export class WasmMemoryManager {
|
|
3
4
|
wasmModule;
|
|
4
5
|
wasmAlloc;
|
|
@@ -181,7 +182,7 @@ export class WasmMemoryManager {
|
|
|
181
182
|
return ref;
|
|
182
183
|
}
|
|
183
184
|
allocNullTerminatedUtf8String(str) {
|
|
184
|
-
const strBuffer =
|
|
185
|
+
const strBuffer = concatUint8Arrays([encodeUtf8(str), new Uint8Array(1)]);
|
|
185
186
|
const ref = this.allocUint8Array(strBuffer.length);
|
|
186
187
|
ref.view.set(strBuffer);
|
|
187
188
|
return ref;
|
|
@@ -208,6 +209,10 @@ export class WasmMemoryManager {
|
|
|
208
209
|
this.free(wasmReference);
|
|
209
210
|
}
|
|
210
211
|
}
|
|
212
|
+
detach(wasmReference) {
|
|
213
|
+
this.allocatedReferences.delete(wasmReference);
|
|
214
|
+
return wasmReference;
|
|
215
|
+
}
|
|
211
216
|
}
|
|
212
217
|
class ValueRef {
|
|
213
218
|
ptr;
|
|
@@ -242,6 +247,9 @@ class ValueRef {
|
|
|
242
247
|
free() {
|
|
243
248
|
this.manager.free(this);
|
|
244
249
|
}
|
|
250
|
+
detach() {
|
|
251
|
+
return this.manager.detach(this);
|
|
252
|
+
}
|
|
245
253
|
clearAddress() {
|
|
246
254
|
this.ptr = 0;
|
|
247
255
|
}
|
|
@@ -324,7 +332,7 @@ export class NullTerminatedUtf8StringRef extends ValueRef {
|
|
|
324
332
|
const heapU8 = this.module.HEAPU8;
|
|
325
333
|
const endByteOffset = heapU8.subarray(ptr).indexOf(0);
|
|
326
334
|
const strBytes = heapU8.subarray(ptr, ptr + endByteOffset);
|
|
327
|
-
const str =
|
|
335
|
+
const str = decodeUtf8(strBytes);
|
|
328
336
|
return str;
|
|
329
337
|
}
|
|
330
338
|
setValue(newValue) {
|
|
@@ -362,6 +370,9 @@ class TypedArrayRef {
|
|
|
362
370
|
clearAddress() {
|
|
363
371
|
this.ptr = 0;
|
|
364
372
|
}
|
|
373
|
+
detach() {
|
|
374
|
+
return this.manager.detach(this);
|
|
375
|
+
}
|
|
365
376
|
get isFreed() { return this.ptr == 0; }
|
|
366
377
|
assertNotFreed() {
|
|
367
378
|
if (this.isFreed) {
|
|
@@ -386,7 +397,7 @@ export class Uint8ArrayRef extends TypedArrayRef {
|
|
|
386
397
|
if (indexOfFirstZero >= 0) {
|
|
387
398
|
strBytes = strBytes.subarray(0, indexOfFirstZero);
|
|
388
399
|
}
|
|
389
|
-
const str =
|
|
400
|
+
const str = decodeUtf8(strBytes);
|
|
390
401
|
return str;
|
|
391
402
|
}
|
|
392
403
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WasmMemoryManager.js","sourceRoot":"","sources":["../../src/utilities/WasmMemoryManager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WasmMemoryManager.js","sourceRoot":"","sources":["../../src/utilities/WasmMemoryManager.ts"],"names":[],"mappings":"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"}
|
package/docs/API.md
CHANGED
|
@@ -52,7 +52,7 @@ Synthesizes the given input.
|
|
|
52
52
|
channels: Float32Array[]
|
|
53
53
|
}
|
|
54
54
|
```
|
|
55
|
-
* A `
|
|
55
|
+
* A `Uint8Array` containing the audio in encoded form, in the case a particular codec was specified in the `outputAudioFormat.codec` option.
|
|
56
56
|
|
|
57
57
|
#### Segment and sentence event callbacks
|
|
58
58
|
|
package/docs/CLI.md
CHANGED
|
@@ -10,7 +10,7 @@ Each operation can accept one or more options, in the form `--[optionName]=[valu
|
|
|
10
10
|
|
|
11
11
|
**Keyboard shortcuts**:
|
|
12
12
|
* While the program is running, you can press `esc` to exit immediately
|
|
13
|
-
* When audio is playing, you can press `enter` to skip it
|
|
13
|
+
* When audio is playing, you can press `enter` to skip it, `space` to pause, `right` to skip 1 second forward, and `left` to skip 1 second backwards
|
|
14
14
|
|
|
15
15
|
### Related pages
|
|
16
16
|
* [Options reference](Options.md)
|
package/docs/Licenses.md
CHANGED
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
* `fasttext`: [MIT License](https://github.com/loretoparisi/fasttext.js/blob/master/LICENSE)
|
|
13
13
|
* `fvad` [BSD-3-Clause](https://github.com/cpuimage/WebRTC_VAD/blob/master/LICENSE)
|
|
14
14
|
* `kissfft`: [BSD-3-Clause](https://github.com/mborgerding/kissfft/blob/master/COPYING)
|
|
15
|
+
* `pffft`: [BSD-3-Clause](https://github.com/marton78/pffft/blob/master/LICENSE.txt)
|
|
15
16
|
* `rnnoise`: [BSD-3-Clause](https://github.com/xiph/rnnoise/blob/master/COPYING)
|
|
16
17
|
* `sonic`: [Apache License 2.0](https://github.com/waywardgeek/sonic/blob/master/LICENSE)
|
|
17
18
|
* `speex-resampler`: [BSD-3-Clause](https://github.com/xiph/speexdsp/blob/master/COPYING)
|
|
@@ -20,6 +21,7 @@
|
|
|
20
21
|
* `cldr-segmentation`: [MIT License](https://github.com/camertron/cldr-segmentation.js/blob/master/LICENSE)
|
|
21
22
|
* `jieba-wasm`: [MIT License](https://github.com/fengkx/jieba-wasm/blob/master/LICENSE)
|
|
22
23
|
* `kuromoji`: [Apache License 2.0](https://github.com/takuyaa/kuromoji.js/blob/master/LICENSE-2.0.txt)
|
|
24
|
+
* `tiktoken`: [MIT License](https://github.com/openai/tiktoken/blob/main/LICENSE)
|
|
23
25
|
|
|
24
26
|
## Package repository
|
|
25
27
|
|
|
@@ -33,6 +35,7 @@ All are freely distributable, with varying licenses:
|
|
|
33
35
|
* VITS pre-trained models (`vits-`): licensed under various creative commons licenses: [CC0](https://creativecommons.org/share-your-work/public-domain/cc0/), [CC-BY](https://creativecommons.org/licenses/by/4.0/) and [BY-NC-SA](https://creativecommons.org/licenses/by-nc-sa/4.0/), and few are public domain. You can view the individual license for each model in the model cards on the [Piper samples page](https://rhasspy.github.io/piper-samples/)
|
|
34
36
|
* Whisper pre-trained models (`whisper-`): [MIT License](https://github.com/openai/whisper/blob/main/LICENSE)
|
|
35
37
|
* MDX-NET source separation models (`mdxnet-`): [MIT License](https://github.com/kuielab/mdx-net/blob/main/LICENSE)
|
|
38
|
+
* `nsnet2`: [Attribution 4.0 International](https://github.com/NeonGeckoCom/nsnet2-denoiser/blob/main/LICENSE)
|
|
36
39
|
|
|
37
40
|
Tool binary distributions
|
|
38
41
|
* FFmpeg: [LGPL, GPL v2 and GPL v3 Licenses](https://github.com/FFmpeg/FFmpeg)
|
package/docs/Options.md
CHANGED
|
@@ -227,7 +227,7 @@ Applies to CLI operation: `align`, API method: `align`
|
|
|
227
227
|
|
|
228
228
|
**DTW**:
|
|
229
229
|
* `dtw.granularity`: adjusts the MFCC frame width and hop size based on the profile selected. Can be set to either `xx-low` (400ms width, 160ms hop), `x-low` (200ms width, 80ms hop), `low` (100ms width, 40ms hop), `medium` (50ms width, 20ms hop), `high` (25ms width, 10ms hop), `x-high` (20ms width, 5ms hop). For multi-pass processing, multiple granularities can be provided, like `dtw.granularity=['xx-low','medium']`. Auto-selected by default.
|
|
230
|
-
* `dtw.windowDuration`: maximum duration
|
|
230
|
+
* `dtw.windowDuration`: sets the maximum duration of the Sakoe-Chiba window when performing DTW alignment. The value can be specified in seconds, like `240`, or as an integer percentage (formatted like `15%`), relative to the total duration of the source audio. The estimated memory requirement is shown in the log before alignment starts. Recommended to be set to at least 10% - 20% of total audio duration. For multi-pass processing, multiple durations can be provided (which can mix absolute and relative values), like `dtw.windowDuration=['15%',20]`. Auto-selected by default
|
|
231
231
|
|
|
232
232
|
**DTW-RA**:
|
|
233
233
|
* `recognition`: prefix to provide recognition options when using `dtw-ra` method, for example: setting `recognition.engine = whisper` and `recognition.whisper.model = base.en`
|
|
@@ -388,13 +388,18 @@ Applies to CLI operation: `detect-voice-activity`, API method: `detectVoiceActiv
|
|
|
388
388
|
Applies to CLI operation: `denoise`, API method: `denoise`
|
|
389
389
|
|
|
390
390
|
**General**:
|
|
391
|
-
* `engine`:
|
|
391
|
+
* `engine`: `rnnoise` or `nsnet2`. Defaults to `rnnoise`
|
|
392
392
|
|
|
393
393
|
**Post-processing**:
|
|
394
394
|
* `postProcessing.normalizeAudio`: should normalize output audio. Defaults to `false`
|
|
395
395
|
* `postProcessing.targetPeak`: target peak (decibels) for normalization. Defaults to `-3`
|
|
396
396
|
* `postProcessing.maxGainIncrease`: max gain increase (decibels) when performing normalization. Defaults to `30`
|
|
397
|
-
* `postProcessing.dryMixGain`: gain (decibels) of dry (original) signal to mix back to the denoised (wet) signal. Defaults to `-
|
|
397
|
+
* `postProcessing.dryMixGain`: gain (decibels) of dry (original) signal to mix back to the denoised (wet) signal. Defaults to `-100`
|
|
398
|
+
|
|
399
|
+
**NSNet2**:
|
|
400
|
+
* `nsnet2.model`: can be `baseline-16khz` or `baseline-48khz`. Defaults to `baseline-48khz`
|
|
401
|
+
* `nsnet2.provider`: ONNX execution provider (**Note**: `dml` provider seems to fail with these models). Defaults to `cpu`
|
|
402
|
+
* `maxAttenuation`: maximum amount of attenuation, in decibels, applied to an FFT bin when filtering the audio frames. Defaults to `30`
|
|
398
403
|
|
|
399
404
|
## Source separation
|
|
400
405
|
|
|
@@ -439,6 +444,7 @@ On the CLI, global options can be used with any operation. To set global options
|
|
|
439
444
|
These options are for the CLI only.
|
|
440
445
|
|
|
441
446
|
* `--play`, `--no-play`: enable/disable audio playback. Defaults to play if there is no output file specified
|
|
447
|
+
* `--player`: audio player to use. Can be `audio-io` (uses the [`audio-io` package](https://github.com/echogarden-project/audio-io) to directly output to native OS audio buffers) or `sox` (requires `sox` to be available on path on macOS, auto-downloaded on other platforms). Defaults to `audio-io`
|
|
442
448
|
* `--overwrite`, `--no-overwrite`: overwrite/keep existing files. Doesn't overwrite by default
|
|
443
449
|
* `--debug`, `--no-debug`: show/hide the full details of JavaScript errors, if they occur. Disabled by default
|
|
444
450
|
* `--config=...`: path to configuration file to use. Defaults to `echogarden.config` or `echogarden.config.json`, if found at the current directory
|
package/docs/Tasklist.md
CHANGED
|
@@ -201,7 +201,6 @@
|
|
|
201
201
|
* See if the installation of `winax` can be automated and only initiate if it is in a Windows environment
|
|
202
202
|
* Ensure that all modules have no internal state other than caching
|
|
203
203
|
* Start thinking about some modules being available in the browser. Which node core APIs the use? Which of them can be polyfilled, and which cannot?
|
|
204
|
-
* Change all the Emscripten WASM modules to use the `EXPORT_ES6=1` flag and rebuild them. Support for node.js modules was added in September 2022 (https://github.com/emscripten-core/emscripten/pull/17915)
|
|
205
204
|
* Remove built-in voices from `flite` to reduce size?
|
|
206
205
|
* Slim down `kuromoji` package to reduce base installation size
|
|
207
206
|
|
package/docs/Technical.md
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
* Echogarden is written in TypeScript and targets the Node.js platform.
|
|
4
4
|
* It uses ESM modules and latest ECMAScript and TypeScript features.
|
|
5
|
-
* It does not depend on essential binary executables. Instead, all of its engines either use pure JavaScript, WebAssembly, WASI, or the ONNX runtime, with some exceptions: the CLI does invoke a
|
|
6
|
-
* It does not depend on essential native node.js modules requiring compilation with `node-gyp`. This greatly simplifies the installation experience for end-users (the ONNX runtime bundles precompiled NAPI modules for all supported platforms - it doesn't require any compilation during its installation).
|
|
5
|
+
* It does not depend on essential binary executables. Instead, all of its engines either use pure JavaScript, WebAssembly, WASI, or the ONNX runtime, with some exceptions: the CLI does invoke a command line `ffmpeg` tool, auto-downloaded from internal packages. Using expansion packages simplifies the installation and ensures non-buggy version are used. Since SoX `v14.4.2` is broken on Windows, it bundles `v14.4.1`.
|
|
6
|
+
* It does not depend on essential native node.js modules requiring install-time compilation with `node-gyp`. This greatly simplifies the installation experience for end-users (the ONNX runtime bundles precompiled NAPI modules for all supported platforms - it doesn't require any compilation during its installation).
|
|
7
7
|
|
|
8
8
|
## Package system
|
|
9
9
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "echogarden",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.1",
|
|
4
4
|
"description": "An easy-to-use speech toolset. Includes tools for synthesis, recognition, alignment, speech translation, language detection, source separation and more.",
|
|
5
5
|
"author": "Rotem Dan",
|
|
6
6
|
"license": "GPL-3.0",
|
|
@@ -25,16 +25,13 @@
|
|
|
25
25
|
"url": "https://github.com/echogarden-project/echogarden/issues"
|
|
26
26
|
},
|
|
27
27
|
"engines": {
|
|
28
|
-
"node": ">=18
|
|
28
|
+
"node": ">=18"
|
|
29
29
|
},
|
|
30
30
|
"os": [
|
|
31
31
|
"win32",
|
|
32
32
|
"darwin",
|
|
33
33
|
"linux"
|
|
34
34
|
],
|
|
35
|
-
"publishConfig": {
|
|
36
|
-
"access": "public"
|
|
37
|
-
},
|
|
38
35
|
"main": "./dist/API/API.js",
|
|
39
36
|
"type": "module",
|
|
40
37
|
"files": [
|
|
@@ -43,7 +40,8 @@
|
|
|
43
40
|
"data",
|
|
44
41
|
"docs",
|
|
45
42
|
"README.md",
|
|
46
|
-
"LICENSE.md"
|
|
43
|
+
"LICENSE.md",
|
|
44
|
+
"tsconfig.json"
|
|
47
45
|
],
|
|
48
46
|
"scripts": {
|
|
49
47
|
"test": "node --experimental-wasi-unstable-preview1 --no-warnings --trace-uncaught ./dist/tests/Test.js",
|
|
@@ -54,23 +52,22 @@
|
|
|
54
52
|
"echogarden": "./dist/cli/CLILauncher.js"
|
|
55
53
|
},
|
|
56
54
|
"dependencies": {
|
|
57
|
-
"@aws-sdk/client-polly": "^3.
|
|
58
|
-
"@aws-sdk/client-transcribe-streaming": "^3.
|
|
59
|
-
"@echogarden/
|
|
55
|
+
"@aws-sdk/client-polly": "^3.687.0",
|
|
56
|
+
"@aws-sdk/client-transcribe-streaming": "^3.687.0",
|
|
57
|
+
"@echogarden/audio-io": "^0.2.3",
|
|
58
|
+
"@echogarden/espeak-ng-emscripten": "^0.3.0",
|
|
60
59
|
"@echogarden/fasttext-wasm": "^0.1.0",
|
|
61
60
|
"@echogarden/flite-wasi": "^0.1.1",
|
|
62
|
-
"@echogarden/fvad-wasm": "^0.
|
|
63
|
-
"@echogarden/
|
|
64
|
-
"@echogarden/
|
|
65
|
-
"@echogarden/
|
|
66
|
-
"@echogarden/
|
|
67
|
-
"@echogarden/
|
|
68
|
-
"@echogarden/
|
|
69
|
-
"@echogarden/svoxpico-wasm": "^0.1.0",
|
|
61
|
+
"@echogarden/fvad-wasm": "^0.2.0",
|
|
62
|
+
"@echogarden/pffft-wasm": "^0.4.2",
|
|
63
|
+
"@echogarden/rnnoise-wasm": "^0.2.0",
|
|
64
|
+
"@echogarden/rubberband-wasm": "^0.2.0",
|
|
65
|
+
"@echogarden/sonic-wasm": "^0.2.0",
|
|
66
|
+
"@echogarden/speex-resampler-wasm": "^0.2.1",
|
|
67
|
+
"@echogarden/svoxpico-wasm": "^0.2.0",
|
|
70
68
|
"@echogarden/transformers-nodejs-lite": "^2.17.1-lite.3",
|
|
71
69
|
"@mozilla/readability": "^0.5.0",
|
|
72
70
|
"alawmulaw": "^6.0.0",
|
|
73
|
-
"buffer-split": "^1.0.0",
|
|
74
71
|
"chalk": "^5.3.0",
|
|
75
72
|
"cldr-segmentation": "^2.2.1",
|
|
76
73
|
"command-exists": "^1.2.9",
|
|
@@ -78,7 +75,6 @@
|
|
|
78
75
|
"fs-extra": "^11.2.0",
|
|
79
76
|
"gaxios": "^6.7.1",
|
|
80
77
|
"graceful-fs": "^4.2.11",
|
|
81
|
-
"html-escaper": "^3.0.3",
|
|
82
78
|
"html-to-text": "^9.0.5",
|
|
83
79
|
"import-meta-resolve": "^4.1.0",
|
|
84
80
|
"jieba-wasm": "^2.2.0",
|
|
@@ -86,10 +82,9 @@
|
|
|
86
82
|
"json5": "^2.2.3",
|
|
87
83
|
"kuromoji": "^0.1.2",
|
|
88
84
|
"microsoft-cognitiveservices-speech-sdk": "^1.41.0",
|
|
89
|
-
"moving-median": "^1.0.0",
|
|
90
85
|
"msgpack-lite": "^0.1.26",
|
|
91
|
-
"onnxruntime-node": "^1.
|
|
92
|
-
"openai": "^4.
|
|
86
|
+
"onnxruntime-node": "^1.20.0",
|
|
87
|
+
"openai": "^4.72.0",
|
|
93
88
|
"sam-js": "^0.3.1",
|
|
94
89
|
"strip-ansi": "^7.1.0",
|
|
95
90
|
"tar": "^7.4.3",
|
|
@@ -111,16 +106,18 @@
|
|
|
111
106
|
}
|
|
112
107
|
},
|
|
113
108
|
"devDependencies": {
|
|
114
|
-
"@types/buffer-split": "^1.0.2",
|
|
115
109
|
"@types/fs-extra": "^11.0.4",
|
|
116
110
|
"@types/graceful-fs": "^4.1.9",
|
|
117
111
|
"@types/jsdom": "^21.1.7",
|
|
118
112
|
"@types/msgpack-lite": "^0.1.11",
|
|
119
|
-
"@types/node": "^22.
|
|
113
|
+
"@types/node": "^22.9.0",
|
|
120
114
|
"@types/recursive-readdir": "^2.2.4",
|
|
121
115
|
"@types/tar": "^6.1.13",
|
|
122
|
-
"@types/ws": "^8.5.
|
|
116
|
+
"@types/ws": "^8.5.13",
|
|
123
117
|
"ts-json-schema-generator": "^2.3.0",
|
|
124
118
|
"typescript": "^5.6.3"
|
|
119
|
+
},
|
|
120
|
+
"overrides": {
|
|
121
|
+
"whatwg-url": "^14.0.0"
|
|
125
122
|
}
|
|
126
123
|
}
|
|
@@ -3,7 +3,7 @@ import { AlignmentPath } from './SpeechAlignment.js'
|
|
|
3
3
|
|
|
4
4
|
const log = logToStderr
|
|
5
5
|
|
|
6
|
-
export function alignDTW<T, U>(sequence1: ArrayLike<T>, sequence2: ArrayLike<U>, costFunction: (a: T, b: U) => number
|
|
6
|
+
export function alignDTW<T, U>(sequence1: ArrayLike<T>, sequence2: ArrayLike<U>, costFunction: (a: T, b: U) => number) {
|
|
7
7
|
if (sequence1.length == 0 || sequence2.length == 0) {
|
|
8
8
|
return { path: [] as AlignmentPath, pathCost: 0 }
|
|
9
9
|
}
|
|
@@ -12,10 +12,10 @@ export function alignDTW<T, U>(sequence1: ArrayLike<T>, sequence2: ArrayLike<U>,
|
|
|
12
12
|
const columnCount = sequence1.length
|
|
13
13
|
|
|
14
14
|
// Compute accumulated cost matrix
|
|
15
|
-
const accumulatedCostMatrix = computeAccumulatedCostMatrix(sequence1, sequence2, costFunction
|
|
15
|
+
const accumulatedCostMatrix = computeAccumulatedCostMatrix(sequence1, sequence2, costFunction)
|
|
16
16
|
|
|
17
17
|
// Find best path for the computed matrix
|
|
18
|
-
const path = computeBestPath(accumulatedCostMatrix
|
|
18
|
+
const path = computeBestPath(accumulatedCostMatrix)
|
|
19
19
|
|
|
20
20
|
// Best path cost is the bottom right element of the matrix
|
|
21
21
|
const pathCost = accumulatedCostMatrix[rowCount - 1][columnCount - 1]
|
|
@@ -61,7 +61,7 @@ function computeAccumulatedCostMatrix<T, U>(sequence1: ArrayLike<T>, sequence2:
|
|
|
61
61
|
return accumulatedCostMatrix
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
-
function computeBestPath(costMatrix: Float32Array[]
|
|
64
|
+
function computeBestPath(costMatrix: Float32Array[]) {
|
|
65
65
|
const rowCount = costMatrix.length
|
|
66
66
|
const columnCount = costMatrix[0].length
|
|
67
67
|
|
|
@@ -80,7 +80,7 @@ function computeBestPath(costMatrix: Float32Array[], deletionEnabled = true) {
|
|
|
80
80
|
const left = costMatrix[rowIndex][columnIndex - 1]
|
|
81
81
|
const upAndLeft = costMatrix[rowIndex - 1][columnIndex - 1]
|
|
82
82
|
|
|
83
|
-
const smallestCostDirection = argIndexOfMinimumOf3(up,
|
|
83
|
+
const smallestCostDirection = argIndexOfMinimumOf3(up, left, upAndLeft)
|
|
84
84
|
|
|
85
85
|
if (smallestCostDirection == 1) {
|
|
86
86
|
rowIndex -= 1
|
|
@@ -15,7 +15,7 @@ import { cosineDistance, euclideanDistance, zeroIfNaN } from '../math/VectorMath
|
|
|
15
15
|
import { EspeakEvent, EspeakOptions } from '../synthesis/EspeakTTS.js'
|
|
16
16
|
import { alignDTWWindowed } from './DTWSequenceAlignmentWindowed.js'
|
|
17
17
|
import { loadPackage } from '../utilities/PackageManager.js'
|
|
18
|
-
import
|
|
18
|
+
import { joinPath } from '../utilities/PathUtilities.js'
|
|
19
19
|
|
|
20
20
|
export async function alignUsingDtw(
|
|
21
21
|
sourceRawAudio: RawAudio,
|
|
@@ -44,7 +44,7 @@ export async function alignUsingDtw(
|
|
|
44
44
|
const granularity = granularities[passIndex]
|
|
45
45
|
const windowDuration = windowDurations[passIndex]
|
|
46
46
|
|
|
47
|
-
logger.logTitledMessage(`\nStarting alignment pass ${passIndex + 1}/${windowDurations.length}`, `granularity: ${granularity}, max window duration: ${windowDuration}s`, chalk.magentaBright)
|
|
47
|
+
logger.logTitledMessage(`\nStarting alignment pass ${passIndex + 1}/${windowDurations.length}`, `granularity: ${granularity}, max window duration: ${windowDuration}s (${(windowDuration / rawAudioDuration * 100).toFixed(1)}%)`, chalk.magentaBright)
|
|
48
48
|
|
|
49
49
|
const mfccOptions = extendDefaultMfccOptions({ ...getMfccOptionsForGranularity(granularity), zeroFirstCoefficient: true }) as MfccOptions
|
|
50
50
|
|
|
@@ -66,7 +66,7 @@ export async function alignUsingDtw(
|
|
|
66
66
|
const minRecommendedWindowDuration = 0.2 * rawAudioDuration
|
|
67
67
|
|
|
68
68
|
if (windowDuration < minRecommendedWindowDuration) {
|
|
69
|
-
logger.logTitledMessage('Warning', `Maximum DTW window duration is set to ${windowDuration.toFixed(1)}s, which is
|
|
69
|
+
logger.logTitledMessage('Warning', `Maximum DTW window duration is set to ${windowDuration.toFixed(1)}s (${(windowDuration / rawAudioDuration * 100).toFixed(1)}%), which is less than 20% of the source audio duration (audio duration is ${rawAudioDuration.toFixed(1)}s and a 20% window would be ${(rawAudioDuration * 0.2).toFixed(1)}s). This may lead to suboptimal results in some cases. Consider increasing window duration if needed.`, chalk.yellowBright, 'warning')
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
72
|
|
|
@@ -307,7 +307,7 @@ export async function alignUsingDtwWithEmbeddings(
|
|
|
307
307
|
if (embeddingType === 'w2v-bert-2.0') {
|
|
308
308
|
const packageName = 'w2v-bert-2.0-uint8'
|
|
309
309
|
const modelDir = await loadPackage(packageName)
|
|
310
|
-
const modelFilePath =
|
|
310
|
+
const modelFilePath = joinPath(modelDir, `${packageName}.onnx`)
|
|
311
311
|
|
|
312
312
|
const { Wav2Vec2BertFeatureEmbeddings } = await import('../speech-embeddings/WavToVec2BertFeatureEmbeddings.js')
|
|
313
313
|
|
|
@@ -578,7 +578,7 @@ export async function createAlignmentReferenceUsingEspeakForFragments(fragments:
|
|
|
578
578
|
progressLogger.start("Load espeak module")
|
|
579
579
|
const Espeak = await import("../synthesis/EspeakTTS.js")
|
|
580
580
|
|
|
581
|
-
progressLogger.start("Synthesize alignment reference
|
|
581
|
+
progressLogger.start("Synthesize alignment reference using eSpeak")
|
|
582
582
|
|
|
583
583
|
const result = {
|
|
584
584
|
rawAudio: getEmptyRawAudio(1, await Espeak.getSampleRate()) as RawAudio,
|
|
@@ -648,7 +648,7 @@ export async function createAlignmentReferenceUsingEspeak(
|
|
|
648
648
|
|
|
649
649
|
const logger = new Logger()
|
|
650
650
|
|
|
651
|
-
logger.start('Synthesize alignment reference
|
|
651
|
+
logger.start('Synthesize alignment reference using eSpeak')
|
|
652
652
|
|
|
653
653
|
const synthesisOptions: API.SynthesisOptions = {
|
|
654
654
|
engine: 'espeak',
|
package/src/api/Alignment.ts
CHANGED
|
@@ -92,10 +92,12 @@ export async function align(input: AudioSourceParam, transcript: string, options
|
|
|
92
92
|
let granularities: DtwGranularity[]
|
|
93
93
|
let windowDurations: number[]
|
|
94
94
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
granularities =
|
|
95
|
+
const dtwOptions = options.dtw!
|
|
96
|
+
|
|
97
|
+
if (typeof dtwOptions.granularity == 'string') {
|
|
98
|
+
granularities = [dtwOptions.granularity]
|
|
99
|
+
} else if (Array.isArray(dtwOptions.granularity)) {
|
|
100
|
+
granularities = dtwOptions.granularity
|
|
99
101
|
} else {
|
|
100
102
|
if (sourceAudioDuration < 1 * 60) {
|
|
101
103
|
// If up to 1 minute, set granularity to high, single pass
|
|
@@ -112,17 +114,68 @@ export async function align(input: AudioSourceParam, transcript: string, options
|
|
|
112
114
|
}
|
|
113
115
|
}
|
|
114
116
|
|
|
115
|
-
if (
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
117
|
+
if (dtwOptions.windowDuration) {
|
|
118
|
+
function tryParsePercentageWindowDuration(durationString: string) {
|
|
119
|
+
durationString = durationString.trim()
|
|
120
|
+
|
|
121
|
+
const parseResult = durationString.match(/^([0-9]+)%$/)
|
|
122
|
+
|
|
123
|
+
if (parseResult == null) {
|
|
124
|
+
throw new Error(`A DTW window duration, when provided as a string, must be formatted as an integer percentage value like '15%'.`)
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
const percentageValue = parseInt(parseResult[1])
|
|
128
|
+
|
|
129
|
+
if (percentageValue == null || isNaN(percentageValue) || percentageValue <= 0 || percentageValue > 100) {
|
|
130
|
+
throw new Error(`'A DTW window duration, when provided as a percentage value, must be between 0 (non-inclusive) and 100 (inclusive).`)
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
let durationSeconds = percentageValue / 100 * sourceAudioDuration
|
|
134
|
+
durationSeconds = Math.ceil(durationSeconds)
|
|
135
|
+
durationSeconds = Math.min(durationSeconds, sourceAudioDuration)
|
|
136
|
+
|
|
137
|
+
return durationSeconds
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
if (typeof dtwOptions.windowDuration === 'number') {
|
|
141
|
+
const duration = Math.min(dtwOptions.windowDuration, sourceAudioDuration)
|
|
142
|
+
|
|
143
|
+
windowDurations = [duration]
|
|
144
|
+
} else if (typeof dtwOptions.windowDuration === 'string') {
|
|
145
|
+
const durationString = dtwOptions.windowDuration.trim()
|
|
146
|
+
|
|
147
|
+
const durationSeconds = tryParsePercentageWindowDuration(durationString)
|
|
148
|
+
|
|
149
|
+
windowDurations = [durationSeconds]
|
|
150
|
+
} else if (Array.isArray(dtwOptions.windowDuration)) {
|
|
151
|
+
const durationsValues = dtwOptions.windowDuration
|
|
152
|
+
|
|
153
|
+
if (durationsValues.length < 1) {
|
|
154
|
+
throw new Error(`DTW window durations, when given as an array, must have at least one element.`)
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
const durations: number[] = []
|
|
158
|
+
|
|
159
|
+
for (const durationValue of durationsValues) {
|
|
160
|
+
let durationSeconds: number
|
|
161
|
+
|
|
162
|
+
if (typeof durationValue === 'number') {
|
|
163
|
+
durationSeconds = durationValue
|
|
164
|
+
durationSeconds = Math.min(durationSeconds, sourceAudioDuration)
|
|
165
|
+
} else {
|
|
166
|
+
durationSeconds = tryParsePercentageWindowDuration(durationValue)
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
durations.push(durationSeconds)
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
windowDurations = durations
|
|
120
173
|
} else {
|
|
121
|
-
throw new Error(`'dtw.windowDuration' must be a number or
|
|
174
|
+
throw new Error(`'dtw.windowDuration' must be a number or a percentage string, or array of numbers / percentage strings.`)
|
|
122
175
|
}
|
|
123
176
|
} else {
|
|
124
177
|
if (granularities.length > 2) {
|
|
125
|
-
throw new Error(`More than two passes requested, this requires window durations to be explicitly specified for each pass. For example 'dtw.windowDuration=[
|
|
178
|
+
throw new Error(`More than two passes requested, this requires window durations to be explicitly specified for each pass. For example 'dtw.windowDuration=['20%',60,10]'.`)
|
|
126
179
|
}
|
|
127
180
|
|
|
128
181
|
if (sourceAudioDuration < 5 * 60) {
|
|
@@ -361,7 +414,7 @@ export interface AlignmentOptions {
|
|
|
361
414
|
|
|
362
415
|
dtw?: {
|
|
363
416
|
granularity?: DtwGranularity | DtwGranularity[]
|
|
364
|
-
windowDuration?: number | number[]
|
|
417
|
+
windowDuration?: number | string | (string | number)[]
|
|
365
418
|
phoneAlignmentMethod?: PhoneAlignmentMethod
|
|
366
419
|
}
|
|
367
420
|
|