echogarden 1.6.1 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/data/schemas/options.json +30 -4
  2. package/dist/alignment/SpeechAlignment.js +23 -14
  3. package/dist/alignment/SpeechAlignment.js.map +1 -1
  4. package/dist/api/SourceSeparation.d.ts +3 -2
  5. package/dist/api/SourceSeparation.js +10 -8
  6. package/dist/api/SourceSeparation.js.map +1 -1
  7. package/dist/api/Synthesis.js +3 -1
  8. package/dist/api/Synthesis.js.map +1 -1
  9. package/dist/api/TextTranslation.d.ts +3 -1
  10. package/dist/api/TextTranslation.js +12 -6
  11. package/dist/api/TextTranslation.js.map +1 -1
  12. package/dist/build-tools/MakeTarballsForInstalledPackages.d.ts +1 -0
  13. package/dist/build-tools/MakeTarballsForInstalledPackages.js +20 -0
  14. package/dist/build-tools/MakeTarballsForInstalledPackages.js.map +1 -0
  15. package/dist/cli/CLI.js +4 -3
  16. package/dist/cli/CLI.js.map +1 -1
  17. package/dist/dsp/FFT.d.ts +2 -3
  18. package/dist/dsp/FFT.js +25 -23
  19. package/dist/dsp/FFT.js.map +1 -1
  20. package/dist/nlp/IPA.d.ts +3 -3
  21. package/dist/nlp/Segmentation.js +2 -1
  22. package/dist/nlp/Segmentation.js.map +1 -1
  23. package/dist/nlp/TextNormalizer.d.ts +2 -0
  24. package/dist/nlp/TextNormalizer.js +51 -0
  25. package/dist/nlp/TextNormalizer.js.map +1 -1
  26. package/dist/recognition/WhisperSTT.d.ts +2 -0
  27. package/dist/recognition/WhisperSTT.js +9 -8
  28. package/dist/recognition/WhisperSTT.js.map +1 -1
  29. package/dist/source-separation/MDXNetSourceSeparation.d.ts +20 -2
  30. package/dist/source-separation/MDXNetSourceSeparation.js +134 -76
  31. package/dist/source-separation/MDXNetSourceSeparation.js.map +1 -1
  32. package/dist/subtitles/Subtitles.js +2 -1
  33. package/dist/subtitles/Subtitles.js.map +1 -1
  34. package/dist/synthesis/EspeakTTS.js +5 -5
  35. package/dist/synthesis/EspeakTTS.js.map +1 -1
  36. package/dist/tests/Test.js +0 -1
  37. package/dist/tests/Test.js.map +1 -1
  38. package/dist/text-translation/GoogleTranslateTextTranslation.d.ts +9 -3
  39. package/dist/text-translation/GoogleTranslateTextTranslation.js +59 -29
  40. package/dist/text-translation/GoogleTranslateTextTranslation.js.map +1 -1
  41. package/dist/utilities/OnnxUtilities.d.ts +1 -0
  42. package/dist/utilities/OnnxUtilities.js +5 -5
  43. package/dist/utilities/OnnxUtilities.js.map +1 -1
  44. package/dist/utilities/PackageManager.js +3 -0
  45. package/dist/utilities/PackageManager.js.map +1 -1
  46. package/dist/utilities/StringUtilities.d.ts +28 -0
  47. package/dist/utilities/StringUtilities.js +150 -0
  48. package/dist/utilities/StringUtilities.js.map +1 -0
  49. package/dist/utilities/TarballMaker.d.ts +3 -4
  50. package/dist/utilities/TarballMaker.js +6 -19
  51. package/dist/utilities/TarballMaker.js.map +1 -1
  52. package/dist/utilities/Timeline.js +2 -1
  53. package/dist/utilities/Timeline.js.map +1 -1
  54. package/dist/utilities/Utilities.d.ts +1 -33
  55. package/dist/utilities/Utilities.js +3 -176
  56. package/dist/utilities/Utilities.js.map +1 -1
  57. package/dist/utilities/WebReader.js +1 -1
  58. package/dist/utilities/WebReader.js.map +1 -1
  59. package/dist/utilities/WikipediaReader.js +1 -1
  60. package/dist/utilities/WikipediaReader.js.map +1 -1
  61. package/dist/utilities/WindowedList.d.ts +10 -0
  62. package/dist/utilities/WindowedList.js +36 -0
  63. package/dist/utilities/WindowedList.js.map +1 -0
  64. package/docs/Engines.md +1 -1
  65. package/docs/Options.md +8 -2
  66. package/package.json +9 -10
  67. package/src/alignment/SpeechAlignment.ts +28 -14
  68. package/src/api/SourceSeparation.ts +15 -10
  69. package/src/api/Synthesis.ts +3 -1
  70. package/src/api/TextTranslation.ts +17 -9
  71. package/src/build-tools/MakeTarballsForInstalledPackages.ts +25 -0
  72. package/src/cli/CLI.ts +4 -3
  73. package/src/dsp/FFT.ts +30 -33
  74. package/src/nlp/Segmentation.ts +2 -1
  75. package/src/nlp/TextNormalizer.ts +60 -0
  76. package/src/recognition/WhisperSTT.ts +9 -8
  77. package/src/source-separation/MDXNetSourceSeparation.ts +183 -85
  78. package/src/subtitles/Subtitles.ts +2 -1
  79. package/src/synthesis/EspeakTTS.ts +5 -5
  80. package/src/tests/Test.ts +0 -4
  81. package/src/text-translation/GoogleTranslateTextTranslation.ts +91 -30
  82. package/src/utilities/OnnxUtilities.ts +7 -8
  83. package/src/utilities/PackageManager.ts +3 -0
  84. package/src/utilities/StringUtilities.ts +203 -0
  85. package/src/utilities/TarballMaker.ts +6 -23
  86. package/src/utilities/Timeline.ts +2 -1
  87. package/src/utilities/Utilities.ts +4 -237
  88. package/src/utilities/WebReader.ts +1 -1
  89. package/src/utilities/WikipediaReader.ts +1 -1
  90. package/src/utilities/WindowedList.ts +45 -0
  91. package/dist/utilities/BufferFileReadStream.d.ts +0 -20
  92. package/dist/utilities/BufferFileReadStream.js +0 -81
  93. package/dist/utilities/BufferFileReadStream.js.map +0 -1
  94. package/dist/utilities/PVarInt.d.ts +0 -4
  95. package/dist/utilities/PVarInt.js +0 -166
  96. package/dist/utilities/PVarInt.js.map +0 -1
  97. package/dist/utilities/VarInt.d.ts +0 -4
  98. package/dist/utilities/VarInt.js +0 -166
  99. package/dist/utilities/VarInt.js.map +0 -1
@@ -1,166 +0,0 @@
1
- ////////////////////////////////////////////////////////////////////////////////////
2
- // Encode signed integer
3
- ////////////////////////////////////////////////////////////////////////////////////
4
- export function encodeSignedInt32(value, outEncodedData) {
5
- //const absValue = Math.abs(value)
6
- const absMask = value >> 31;
7
- const absValue = (value ^ absMask) - absMask;
8
- if (absValue < (2 ** 6)) {
9
- outEncodedData.push(value & 0b01111111);
10
- }
11
- else if (absValue < (2 ** 13)) {
12
- outEncodedData.push((value & 0b00111111) | 0b10000000, (value >> 6) & 0b11111111);
13
- }
14
- else if (absValue < (2 ** 20)) {
15
- outEncodedData.push((value & 0b00011111) | 0b11000000, (value >> 5) & 0b11111111, (value >> 13) & 0b11111111);
16
- }
17
- else if (absValue < (2 ** 27)) {
18
- outEncodedData.push((value & 0b00001111) | 0b11100000, (value >> 4) & 0b11111111, (value >> 12) & 0b11111111, (value >> 20) & 0b11111111);
19
- }
20
- else if (value < (2 ** 31) && value >= -(2 ** 31)) {
21
- outEncodedData.push(0b11110000, value & 0b11111111, (value >> 8) & 0b11111111, (value >> 16) & 0b11111111, (value >> 24) & 0b11111111);
22
- }
23
- else {
24
- throw new Error(`Input value must be within the range of an int31: between -(2^31) and 2^31 - 1`);
25
- }
26
- }
27
- ////////////////////////////////////////////////////////////////////////////////////
28
- // Decode signed integer
29
- ////////////////////////////////////////////////////////////////////////////////////
30
- export function decodeSignedInt32s(encodedData, outDecodedValues) {
31
- for (let readIndex = 0; readIndex < encodedData.length;) {
32
- const byte0 = encodedData[readIndex++];
33
- if ((byte0 & 0b10000000) === 0) {
34
- // 1 byte
35
- let decodedValue = byte0;
36
- if ((byte0 & 0b01000000) !== 0) {
37
- decodedValue |= (-1 << 7);
38
- }
39
- outDecodedValues.push(decodedValue);
40
- continue;
41
- }
42
- const byte1 = encodedData[readIndex++];
43
- if ((byte0 & 0b01000000) === 0) {
44
- // 2 bytes
45
- let decodedValue = (byte0 & 0b00111111) |
46
- (byte1 << 6);
47
- if ((byte1 & 0b10000000) !== 0) {
48
- decodedValue |= (-1 << 14);
49
- }
50
- outDecodedValues.push(decodedValue);
51
- continue;
52
- }
53
- const byte2 = encodedData[readIndex++];
54
- if ((byte0 & 0b00100000) === 0) {
55
- // 3 bytes
56
- let decodedValue = (byte0 & 0b00011111) |
57
- (byte1 << 5) |
58
- (byte2 << 13);
59
- if ((byte2 & 0b10000000) !== 0) {
60
- decodedValue |= (-1 << 21);
61
- }
62
- outDecodedValues.push(decodedValue);
63
- continue;
64
- }
65
- const byte3 = encodedData[readIndex++];
66
- if ((byte0 & 0b00010000) === 0) {
67
- // 4 bytes
68
- let decodedValue = (byte0 & 0b00001111) |
69
- (byte1 << 4) |
70
- (byte2 << 12) |
71
- (byte3 << 20);
72
- if ((byte3 & 0b10000000) !== 0) {
73
- decodedValue |= (-1 << 28);
74
- }
75
- outDecodedValues.push(decodedValue);
76
- continue;
77
- }
78
- const byte4 = encodedData[readIndex++];
79
- if (byte0 === 0b11110000) {
80
- // 5 bytes
81
- let decodedValue = (byte1) |
82
- (byte2 << 8) |
83
- (byte3 << 16) |
84
- (byte4 << 24);
85
- outDecodedValues.push(decodedValue);
86
- continue;
87
- }
88
- throw new Error(`Encountered a value that is encoded with more than 5 bytes (beyond int32 range).`);
89
- }
90
- }
91
- ////////////////////////////////////////////////////////////////////////////////////
92
- // Encode signed integer
93
- ////////////////////////////////////////////////////////////////////////////////////
94
- export function encodeUnsignedInt31(value, outEncodedData) {
95
- if (value < (2 ** 7)) {
96
- outEncodedData.push(value);
97
- }
98
- else if (value < (2 ** 14)) {
99
- outEncodedData.push((value & 0b00111111) | 0b10000000, (value >>> 6) & 0b11111111);
100
- }
101
- else if (value < (2 ** 21)) {
102
- outEncodedData.push((value & 0b00011111) | 0b11000000, (value >>> 5) & 0b11111111, (value >>> 13) & 0b11111111);
103
- }
104
- else if (value < (2 ** 28)) {
105
- outEncodedData.push((value & 0b00001111) | 0b11100000, (value >>> 4) & 0b11111111, (value >>> 12) & 0b11111111, (value >>> 20) & 0b11111111);
106
- }
107
- else if (value < (2 ** 31)) {
108
- outEncodedData.push(0b11110000, value & 0b11111111, (value >>> 8) & 0b11111111, (value >>> 16) & 0b11111111, (value >>> 24) & 0b11111111);
109
- }
110
- else {
111
- throw new Error(`Input value must be within the range of an int31: between 0 and 2^31 - 1.`);
112
- }
113
- }
114
- ////////////////////////////////////////////////////////////////////////////////////
115
- // Decode unsigned integer
116
- ////////////////////////////////////////////////////////////////////////////////////
117
- export function decodeUnsignedInt31s(encodedData, outDecodedValues) {
118
- for (let readIndex = 0; readIndex < encodedData.length;) {
119
- const byte0 = encodedData[readIndex++];
120
- if ((byte0 & 0b10000000) === 0) {
121
- // 1 byte
122
- let decodedValue = byte0;
123
- outDecodedValues.push(decodedValue);
124
- continue;
125
- }
126
- const byte1 = encodedData[readIndex++];
127
- if ((byte0 & 0b01000000) === 0) {
128
- // 2 bytes
129
- let decodedValue = (byte0 & 0b00111111) |
130
- (byte1 << 6);
131
- outDecodedValues.push(decodedValue);
132
- continue;
133
- }
134
- const byte2 = encodedData[readIndex++];
135
- if ((byte0 & 0b00100000) === 0) {
136
- // 3 bytes
137
- let decodedValue = (byte0 & 0b00011111) |
138
- (byte1 << 5) |
139
- (byte2 << 13);
140
- outDecodedValues.push(decodedValue);
141
- continue;
142
- }
143
- const byte3 = encodedData[readIndex++];
144
- if ((byte0 & 0b00010000) === 0) {
145
- // 4 bytes
146
- let decodedValue = (byte0 & 0b00001111) |
147
- (byte1 << 4) |
148
- (byte2 << 12) |
149
- (byte3 << 20);
150
- outDecodedValues.push(decodedValue);
151
- continue;
152
- }
153
- const byte4 = encodedData[readIndex++];
154
- if (byte0 === 0b11110000) {
155
- // 5 bytes
156
- let decodedValue = (byte1) |
157
- (byte2 << 8) |
158
- (byte3 << 16) |
159
- (byte4 << 24);
160
- outDecodedValues.push(decodedValue);
161
- continue;
162
- }
163
- throw new Error(`Encountered a value that is encoded with more than 5 bytes (beyond uint31 range).`);
164
- }
165
- }
166
- //# sourceMappingURL=VarInt.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"VarInt.js","sourceRoot":"","sources":["../../src/utilities/VarInt.ts"],"names":[],"mappings":"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"}