echogarden 1.3.0 → 1.3.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/dist/alignment/TextAlignment.d.ts +16 -0
- package/dist/alignment/TextAlignment.js +63 -0
- package/dist/alignment/TextAlignment.js.map +1 -0
- package/dist/api/Alignment.js +6 -1
- package/dist/api/Alignment.js.map +1 -1
- package/dist/api/Denoising.js +0 -1
- package/dist/api/Denoising.js.map +1 -1
- package/dist/api/LanguageDetection.js +2 -2
- package/dist/api/LanguageDetection.js.map +1 -1
- package/dist/api/Recognition.js +3 -1
- package/dist/api/Recognition.js.map +1 -1
- package/dist/api/Synthesis.js +1 -1
- package/dist/api/Synthesis.js.map +1 -1
- package/dist/api/Translation.js +3 -1
- package/dist/api/Translation.js.map +1 -1
- package/dist/api/TranslationAlignment.js +4 -1
- package/dist/api/TranslationAlignment.js.map +1 -1
- package/dist/api/VoiceActivityDetection.js +5 -2
- package/dist/api/VoiceActivityDetection.js.map +1 -1
- package/dist/audio/AudioUtilities.d.ts +1 -1
- package/dist/audio/AudioUtilities.js +2 -2
- package/dist/audio/AudioUtilities.js.map +1 -1
- package/dist/cli/CLILauncher.js +1 -2
- package/dist/cli/CLILauncher.js.map +1 -1
- package/dist/codecs/FFMpegTranscoder.js +4 -1
- package/dist/codecs/FFMpegTranscoder.js.map +1 -1
- package/dist/codecs/WaveCodec.d.ts +1 -1
- package/dist/codecs/WaveCodec.js +13 -5
- package/dist/codecs/WaveCodec.js.map +1 -1
- package/dist/dsp/SpeexResampler.js +49 -21
- package/dist/dsp/SpeexResampler.js.map +1 -1
- package/dist/synthesis/CoquiServerTTS.js +1 -1
- package/dist/synthesis/CoquiServerTTS.js.map +1 -1
- package/dist/synthesis/VitsTTS.js +1 -1
- package/dist/synthesis/VitsTTS.js.map +1 -1
- package/dist/text-translation/NLLBTextTranslation.d.ts +1 -0
- package/dist/text-translation/NLLBTextTranslation.js +237 -0
- package/dist/text-translation/NLLBTextTranslation.js.map +1 -0
- package/dist/utilities/PackageManager.js +2 -0
- package/dist/utilities/PackageManager.js.map +1 -1
- package/docs/Development.md +1 -1
- package/docs/Server.md +1 -1
- package/docs/Tasklist.md +1 -1
- package/package.json +11 -10
- package/src/alignment/TextAlignment.ts +96 -0
- package/src/api/Alignment.ts +10 -1
- package/src/api/Denoising.ts +0 -2
- package/src/api/LanguageDetection.ts +2 -3
- package/src/api/Recognition.ts +3 -1
- package/src/api/Synthesis.ts +1 -1
- package/src/api/Translation.ts +3 -1
- package/src/api/TranslationAlignment.ts +5 -1
- package/src/api/VoiceActivityDetection.ts +7 -4
- package/src/audio/AudioUtilities.ts +2 -2
- package/src/cli/CLILauncher.ts +1 -2
- package/src/codecs/FFMpegTranscoder.ts +5 -1
- package/src/codecs/WaveCodec.ts +15 -5
- package/src/dsp/SpeexResampler.ts +62 -23
- package/src/synthesis/CoquiServerTTS.ts +1 -1
- package/src/synthesis/VitsTTS.ts +2 -2
- package/src/text-translation/NLLBTextTranslation.ts +252 -0
- package/src/utilities/PackageManager.ts +3 -0
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
import { Logger } from '../utilities/Logger.js';
|
|
2
|
+
import { loadPackage } from '../utilities/PackageManager.js';
|
|
3
|
+
export async function translateText(sourceText, sourceLanguage, targetLanguage) {
|
|
4
|
+
const logger = new Logger();
|
|
5
|
+
const { AutoTokenizer, M2M100ForConditionalGeneration } = await import('@echogarden/transformers-nodejs-lite');
|
|
6
|
+
const modelPath = await loadPackage(`xenova-nllb-200-distilled-600M-quantized`);
|
|
7
|
+
const tokenizer = await AutoTokenizer.from_pretrained(modelPath);
|
|
8
|
+
const model = await M2M100ForConditionalGeneration.from_pretrained(modelPath);
|
|
9
|
+
const config = {
|
|
10
|
+
src_lang: 'eng_Latn',
|
|
11
|
+
tgt_lang: 'fra_Latn'
|
|
12
|
+
};
|
|
13
|
+
const inputs = tokenizer._build_translation_inputs(sourceText, {
|
|
14
|
+
padding: true,
|
|
15
|
+
truncation: true,
|
|
16
|
+
}, config);
|
|
17
|
+
const result = await model.generate(inputs.input_ids, config);
|
|
18
|
+
logger.log(tokenizer.model.convert_ids_to_tokens(result[0]));
|
|
19
|
+
const inputTokens = tokenizer.model.convert_ids_to_tokens(Array.from(inputs.input_ids.data));
|
|
20
|
+
const embeddingResult = await model(inputs);
|
|
21
|
+
const lastHiddenState = embeddingResult.last_hidden_state;
|
|
22
|
+
const tokenCount = lastHiddenState.dims[1];
|
|
23
|
+
const embeddingSize = lastHiddenState.dims[2];
|
|
24
|
+
for (let i = 0; i < tokenCount; i++) {
|
|
25
|
+
const tokenEmbedding = lastHiddenState.data.slice(i * embeddingSize, (i + 1) * embeddingSize);
|
|
26
|
+
const tokenId = inputTokens[i];
|
|
27
|
+
logger.log(`Token ${i} (${tokenId}):`, tokenEmbedding);
|
|
28
|
+
}
|
|
29
|
+
logger.log(inputTokens);
|
|
30
|
+
}
|
|
31
|
+
const languageNameToNLLBCode = {
|
|
32
|
+
'Acehnese (Arabic script)': 'ace_Arab',
|
|
33
|
+
'Acehnese (Latin script)': 'ace_Latn',
|
|
34
|
+
'Afrikaans': 'afr_Latn',
|
|
35
|
+
'Akan': 'aka_Latn',
|
|
36
|
+
'Amharic': 'amh_Ethi',
|
|
37
|
+
'Armenian': 'hye_Armn',
|
|
38
|
+
'Assamese': 'asm_Beng',
|
|
39
|
+
'Asturian': 'ast_Latn',
|
|
40
|
+
'Awadhi': 'awa_Deva',
|
|
41
|
+
'Ayacucho Quechua': 'quy_Latn',
|
|
42
|
+
'Balinese': 'ban_Latn',
|
|
43
|
+
'Bambara': 'bam_Latn',
|
|
44
|
+
'Banjar (Arabic script)': 'bjn_Arab',
|
|
45
|
+
'Banjar (Latin script)': 'bjn_Latn',
|
|
46
|
+
'Bashkir': 'bak_Cyrl',
|
|
47
|
+
'Basque': 'eus_Latn',
|
|
48
|
+
'Belarusian': 'bel_Cyrl',
|
|
49
|
+
'Bemba': 'bem_Latn',
|
|
50
|
+
'Bengali': 'ben_Beng',
|
|
51
|
+
'Bhojpuri': 'bho_Deva',
|
|
52
|
+
'Bosnian': 'bos_Latn',
|
|
53
|
+
'Buginese': 'bug_Latn',
|
|
54
|
+
'Bulgarian': 'bul_Cyrl',
|
|
55
|
+
'Burmese': 'mya_Mymr',
|
|
56
|
+
'Catalan': 'cat_Latn',
|
|
57
|
+
'Cebuano': 'ceb_Latn',
|
|
58
|
+
'Central Atlas Tamazight': 'tzm_Tfng',
|
|
59
|
+
'Central Aymara': 'ayr_Latn',
|
|
60
|
+
'Central Kanuri (Arabic script)': 'knc_Arab',
|
|
61
|
+
'Central Kanuri (Latin script)': 'knc_Latn',
|
|
62
|
+
'Central Kurdish': 'ckb_Arab',
|
|
63
|
+
'Chhattisgarhi': 'hne_Deva',
|
|
64
|
+
'Chinese (Simplified)': 'zho_Hans',
|
|
65
|
+
'Chinese (Traditional)': 'zho_Hant',
|
|
66
|
+
'Chokwe': 'cjk_Latn',
|
|
67
|
+
'Crimean Tatar': 'crh_Latn',
|
|
68
|
+
'Croatian': 'hrv_Latn',
|
|
69
|
+
'Czech': 'ces_Latn',
|
|
70
|
+
'Danish': 'dan_Latn',
|
|
71
|
+
'Dari': 'prs_Arab',
|
|
72
|
+
'Dutch': 'nld_Latn',
|
|
73
|
+
'Dyula': 'dyu_Latn',
|
|
74
|
+
'Dzongkha': 'dzo_Tibt',
|
|
75
|
+
'Eastern Panjabi': 'pan_Guru',
|
|
76
|
+
'Eastern Yiddish': 'ydd_Hebr',
|
|
77
|
+
'Egyptian Arabic': 'arz_Arab',
|
|
78
|
+
'English': 'eng_Latn',
|
|
79
|
+
'Esperanto': 'epo_Latn',
|
|
80
|
+
'Estonian': 'est_Latn',
|
|
81
|
+
'Ewe': 'ewe_Latn',
|
|
82
|
+
'Faroese': 'fao_Latn',
|
|
83
|
+
'Fijian': 'fij_Latn',
|
|
84
|
+
'Finnish': 'fin_Latn',
|
|
85
|
+
'Fon': 'fon_Latn',
|
|
86
|
+
'French': 'fra_Latn',
|
|
87
|
+
'Friulian': 'fur_Latn',
|
|
88
|
+
'Galician': 'glg_Latn',
|
|
89
|
+
'Ganda': 'lug_Latn',
|
|
90
|
+
'Georgian': 'kat_Geor',
|
|
91
|
+
'German': 'deu_Latn',
|
|
92
|
+
'Greek': 'ell_Grek',
|
|
93
|
+
'Guarani': 'grn_Latn',
|
|
94
|
+
'Gujarati': 'guj_Gujr',
|
|
95
|
+
'Haitian Creole': 'hat_Latn',
|
|
96
|
+
'Halh Mongolian': 'khk_Cyrl',
|
|
97
|
+
'Hausa': 'hau_Latn',
|
|
98
|
+
'Hebrew': 'heb_Hebr',
|
|
99
|
+
'Hindi': 'hin_Deva',
|
|
100
|
+
'Hungarian': 'hun_Latn',
|
|
101
|
+
'Icelandic': 'isl_Latn',
|
|
102
|
+
'Igbo': 'ibo_Latn',
|
|
103
|
+
'Ilocano': 'ilo_Latn',
|
|
104
|
+
'Indonesian': 'ind_Latn',
|
|
105
|
+
'Irish': 'gle_Latn',
|
|
106
|
+
'Italian': 'ita_Latn',
|
|
107
|
+
'Japanese': 'jpn_Jpan',
|
|
108
|
+
'Javanese': 'jav_Latn',
|
|
109
|
+
'Jingpho': 'kac_Latn',
|
|
110
|
+
'Kabiyè': 'kbp_Latn',
|
|
111
|
+
'Kabuverdianu': 'kea_Latn',
|
|
112
|
+
'Kabyle': 'kab_Latn',
|
|
113
|
+
'Kamba': 'kam_Latn',
|
|
114
|
+
'Kannada': 'kan_Knda',
|
|
115
|
+
'Kashmiri (Arabic script)': 'kas_Arab',
|
|
116
|
+
'Kashmiri (Devanagari script)': 'kas_Deva',
|
|
117
|
+
'Kazakh': 'kaz_Cyrl',
|
|
118
|
+
'Khmer': 'khm_Khmr',
|
|
119
|
+
'Kikongo': 'kon_Latn',
|
|
120
|
+
'Kikuyu': 'kik_Latn',
|
|
121
|
+
'Kimbundu': 'kmb_Latn',
|
|
122
|
+
'Kinyarwanda': 'kin_Latn',
|
|
123
|
+
'Korean': 'kor_Hang',
|
|
124
|
+
'Kyrgyz': 'kir_Cyrl',
|
|
125
|
+
'Lao': 'lao_Laoo',
|
|
126
|
+
'Latgalian': 'ltg_Latn',
|
|
127
|
+
'Ligurian': 'lij_Latn',
|
|
128
|
+
'Limburgish': 'lim_Latn',
|
|
129
|
+
'Lingala': 'lin_Latn',
|
|
130
|
+
'Lithuanian': 'lit_Latn',
|
|
131
|
+
'Lombard': 'lmo_Latn',
|
|
132
|
+
'Luba-Kasai': 'lua_Latn',
|
|
133
|
+
'Luo': 'luo_Latn',
|
|
134
|
+
'Luxembourgish': 'ltz_Latn',
|
|
135
|
+
'Macedonian': 'mkd_Cyrl',
|
|
136
|
+
'Magahi': 'mag_Deva',
|
|
137
|
+
'Maithili': 'mai_Deva',
|
|
138
|
+
'Malayalam': 'mal_Mlym',
|
|
139
|
+
'Maltese': 'mlt_Latn',
|
|
140
|
+
'Maori': 'mri_Latn',
|
|
141
|
+
'Marathi': 'mar_Deva',
|
|
142
|
+
'Meitei (Bengali script)': 'mni_Beng',
|
|
143
|
+
'Mesopotamian Arabic': 'acm_Arab',
|
|
144
|
+
'Minangkabau (Arabic script)': 'min_Arab',
|
|
145
|
+
'Minangkabau (Latin script)': 'min_Latn',
|
|
146
|
+
'Mizo': 'lus_Latn',
|
|
147
|
+
'Modern Standard Arabic (Romanized)': 'arb_Latn',
|
|
148
|
+
'Modern Standard Arabic': 'arb_Arab',
|
|
149
|
+
'Moroccan Arabic': 'ary_Arab',
|
|
150
|
+
'Mossi': 'mos_Latn',
|
|
151
|
+
'Najdi Arabic': 'ars_Arab',
|
|
152
|
+
'Nepali': 'npi_Deva',
|
|
153
|
+
'Nigerian Fulfulde': 'fuv_Latn',
|
|
154
|
+
'North Azerbaijani': 'azj_Latn',
|
|
155
|
+
'North Levantine Arabic': 'apc_Arab',
|
|
156
|
+
'Northern Kurdish': 'kmr_Latn',
|
|
157
|
+
'Northern Sotho': 'nso_Latn',
|
|
158
|
+
'Northern Uzbek': 'uzn_Latn',
|
|
159
|
+
'Norwegian Bokmål': 'nob_Latn',
|
|
160
|
+
'Norwegian Nynorsk': 'nno_Latn',
|
|
161
|
+
'Nuer': 'nus_Latn',
|
|
162
|
+
'Nyanja': 'nya_Latn',
|
|
163
|
+
'Occitan': 'oci_Latn',
|
|
164
|
+
'Odia': 'ory_Orya',
|
|
165
|
+
'Pangasinan': 'pag_Latn',
|
|
166
|
+
'Papiamento': 'pap_Latn',
|
|
167
|
+
'Plateau Malagasy': 'plt_Latn',
|
|
168
|
+
'Polish': 'pol_Latn',
|
|
169
|
+
'Portuguese': 'por_Latn',
|
|
170
|
+
'Romanian': 'ron_Latn',
|
|
171
|
+
'Rundi': 'run_Latn',
|
|
172
|
+
'Russian': 'rus_Cyrl',
|
|
173
|
+
'Samoan': 'smo_Latn',
|
|
174
|
+
'Sango': 'sag_Latn',
|
|
175
|
+
'Sanskrit': 'san_Deva',
|
|
176
|
+
'Santali': 'sat_Olck',
|
|
177
|
+
'Sardinian': 'srd_Latn',
|
|
178
|
+
'Scottish Gaelic': 'gla_Latn',
|
|
179
|
+
'Serbian': 'srp_Cyrl',
|
|
180
|
+
'Shan': 'shn_Mymr',
|
|
181
|
+
'Shona': 'sna_Latn',
|
|
182
|
+
'Sicilian': 'scn_Latn',
|
|
183
|
+
'Silesian': 'szl_Latn',
|
|
184
|
+
'Sindhi': 'snd_Arab',
|
|
185
|
+
'Sinhala': 'sin_Sinh',
|
|
186
|
+
'Slovak': 'slk_Latn',
|
|
187
|
+
'Slovenian': 'slv_Latn',
|
|
188
|
+
'Somali': 'som_Latn',
|
|
189
|
+
'South Azerbaijani': 'azb_Arab',
|
|
190
|
+
'South Levantine Arabic': 'ajp_Arab',
|
|
191
|
+
'Southern Pashto': 'pbt_Arab',
|
|
192
|
+
'Southern Sotho': 'sot_Latn',
|
|
193
|
+
'Southwestern Dinka': 'dik_Latn',
|
|
194
|
+
'Spanish': 'spa_Latn',
|
|
195
|
+
'Standard Latvian': 'lvs_Latn',
|
|
196
|
+
'Standard Malay': 'zsm_Latn',
|
|
197
|
+
'Standard Tibetan': 'bod_Tibt',
|
|
198
|
+
'Sundanese': 'sun_Latn',
|
|
199
|
+
'Swahili': 'swh_Latn',
|
|
200
|
+
'Swati': 'ssw_Latn',
|
|
201
|
+
'Swedish': 'swe_Latn',
|
|
202
|
+
'Tagalog': 'tgl_Latn',
|
|
203
|
+
'Tajik': 'tgk_Cyrl',
|
|
204
|
+
'Tamasheq (Latin script)': 'taq_Latn',
|
|
205
|
+
'Tamasheq (Tifinagh script)': 'taq_Tfng',
|
|
206
|
+
'Tamil': 'tam_Taml',
|
|
207
|
+
'Tatar': 'tat_Cyrl',
|
|
208
|
+
'Ta’izzi-Adeni Arabic': 'acq_Arab',
|
|
209
|
+
'Telugu': 'tel_Telu',
|
|
210
|
+
'Thai': 'tha_Thai',
|
|
211
|
+
'Tigrinya': 'tir_Ethi',
|
|
212
|
+
'Tok Pisin': 'tpi_Latn',
|
|
213
|
+
'Tosk Albanian': 'als_Latn',
|
|
214
|
+
'Tsonga': 'tso_Latn',
|
|
215
|
+
'Tswana': 'tsn_Latn',
|
|
216
|
+
'Tumbuka': 'tum_Latn',
|
|
217
|
+
'Tunisian Arabic': 'aeb_Arab',
|
|
218
|
+
'Turkish': 'tur_Latn',
|
|
219
|
+
'Turkmen': 'tuk_Latn',
|
|
220
|
+
'Twi': 'twi_Latn',
|
|
221
|
+
'Ukrainian': 'ukr_Cyrl',
|
|
222
|
+
'Umbundu': 'umb_Latn',
|
|
223
|
+
'Urdu': 'urd_Arab',
|
|
224
|
+
'Uyghur': 'uig_Arab',
|
|
225
|
+
'Venetian': 'vec_Latn',
|
|
226
|
+
'Vietnamese': 'vie_Latn',
|
|
227
|
+
'Waray': 'war_Latn',
|
|
228
|
+
'Welsh': 'cym_Latn',
|
|
229
|
+
'West Central Oromo': 'gaz_Latn',
|
|
230
|
+
'Western Persian': 'pes_Arab',
|
|
231
|
+
'Wolof': 'wol_Latn',
|
|
232
|
+
'Xhosa': 'xho_Latn',
|
|
233
|
+
'Yoruba': 'yor_Latn',
|
|
234
|
+
'Yue Chinese': 'yue_Hant',
|
|
235
|
+
'Zulu': 'zul_Latn',
|
|
236
|
+
};
|
|
237
|
+
//# sourceMappingURL=NLLBTextTranslation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NLLBTextTranslation.js","sourceRoot":"","sources":["../../src/text-translation/NLLBTextTranslation.ts"],"names":[],"mappings":"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"}
|
|
@@ -133,5 +133,7 @@ const packageVersionTagResolutionLookup = {
|
|
|
133
133
|
'whisper-tiktoken-data': '20240408',
|
|
134
134
|
'whisper.cpp-binaries-windows-x64-cublas-12.4.0-latest-patched': '20240409',
|
|
135
135
|
'whisper.cpp-binaries-windows-x64-cublas-11.8.0-latest-patched': '20240409',
|
|
136
|
+
'xenova-multilingual-e5-small-quantized': '20240504',
|
|
137
|
+
'xenova-nllb-200-distilled-600M-quantized': '20240505',
|
|
136
138
|
};
|
|
137
139
|
//# sourceMappingURL=PackageManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PackageManager.js","sourceRoot":"","sources":["../../src/utilities/PackageManager.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"PackageManager.js","sourceRoot":"","sources":["../../src/utilities/PackageManager.ts"],"names":[],"mappings":"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"}
|
package/docs/Development.md
CHANGED
|
@@ -82,7 +82,7 @@ Add a `.vscode/launch.json` file to launch the CLI in debug mode:
|
|
|
82
82
|
"program": "${workspaceFolder}/dist/cli/CLIStarter.js",
|
|
83
83
|
"outputCapture": "std",
|
|
84
84
|
"console": "integratedTerminal",
|
|
85
|
-
"runtimeArgs": ["--
|
|
85
|
+
"runtimeArgs": ["--experimental-wasi-unstable-preview1", "--no-warnings", "--trace-uncaught"],
|
|
86
86
|
|
|
87
87
|
"args": ["speak", "Hello World!", "--debug"]
|
|
88
88
|
}
|
package/docs/Server.md
CHANGED
|
@@ -45,7 +45,7 @@ ws.on("open", async () => {
|
|
|
45
45
|
|
|
46
46
|
## Protocol details
|
|
47
47
|
|
|
48
|
-
The protocol is based on binary WebSocket messages, for both request and response objects. Messages are encoded using the [MessagePack](https://msgpack.org
|
|
48
|
+
The protocol is based on binary WebSocket messages, for both request and response objects. Messages are encoded using the [MessagePack](https://msgpack.org) encoding scheme.
|
|
49
49
|
|
|
50
50
|
All messages are objects and have the basic structure:
|
|
51
51
|
|
package/docs/Tasklist.md
CHANGED
|
@@ -260,7 +260,7 @@
|
|
|
260
260
|
|
|
261
261
|
### Speech-to-text translation
|
|
262
262
|
|
|
263
|
-
* Hybrid approach: recognize speech in its language using any recognition model, then translate the resulting transcript using a text-to-text translation engine, and then align the translated transcript to the original one using text-to-text alignment, and map back to the original speech using the recognition timestamps, to get word-level alignment for the translated transcript
|
|
263
|
+
* Hybrid approach: recognize speech in its native language using any recognition model, then translate the resulting transcript using a text-to-text translation engine, and then align the translated transcript to the original one using text-to-text alignment, and map back to the original speech using the recognition timestamps, to get word-level alignment for the translated transcript
|
|
264
264
|
|
|
265
265
|
## Possible new engines or platforms
|
|
266
266
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "echogarden",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.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",
|
|
@@ -46,17 +46,17 @@
|
|
|
46
46
|
"LICENSE.md"
|
|
47
47
|
],
|
|
48
48
|
"scripts": {
|
|
49
|
-
"cli": "node --
|
|
50
|
-
"server": "node --
|
|
51
|
-
"test": "node --
|
|
49
|
+
"cli": "node --experimental-wasi-unstable-preview1 --no-warnings ./dist/cli/CLIStarter.js",
|
|
50
|
+
"server": "node --experimental-wasi-unstable-preview1 --no-warnings ./dist/server/ServerStarter.js",
|
|
51
|
+
"test": "node --experimental-wasi-unstable-preview1 --no-warnings --trace-uncaught ./dist/tests/Test.js",
|
|
52
52
|
"generate-options-schema": "npx ts-json-schema-generator --path ./src/api/APIOptions.ts --unstable --type APIOptions --tsconfig ./tsconfig.json --out ./data/schemas/options.json"
|
|
53
53
|
},
|
|
54
54
|
"bin": {
|
|
55
55
|
"echogarden": "./dist/cli/CLILauncher.js"
|
|
56
56
|
},
|
|
57
57
|
"dependencies": {
|
|
58
|
-
"@aws-sdk/client-polly": "^3.
|
|
59
|
-
"@aws-sdk/client-transcribe-streaming": "^3.
|
|
58
|
+
"@aws-sdk/client-polly": "^3.569.0",
|
|
59
|
+
"@aws-sdk/client-transcribe-streaming": "^3.569.0",
|
|
60
60
|
"@echogarden/espeak-ng-emscripten": "^0.1.2",
|
|
61
61
|
"@echogarden/fasttext-wasm": "^0.1.0",
|
|
62
62
|
"@echogarden/flite-wasi": "^0.1.1",
|
|
@@ -67,6 +67,7 @@
|
|
|
67
67
|
"@echogarden/sonic-wasm": "^0.1.1",
|
|
68
68
|
"@echogarden/speex-resampler-wasm": "^0.1.1",
|
|
69
69
|
"@echogarden/svoxpico-wasm": "^0.1.0",
|
|
70
|
+
"@echogarden/transformers-nodejs-lite": "^2.17.1-lite.3",
|
|
70
71
|
"@mozilla/readability": "^0.5.0",
|
|
71
72
|
"alawmulaw": "^6.0.0",
|
|
72
73
|
"buffer-split": "^1.0.0",
|
|
@@ -88,10 +89,10 @@
|
|
|
88
89
|
"moving-median": "^1.0.0",
|
|
89
90
|
"msgpack-lite": "^0.1.26",
|
|
90
91
|
"onnxruntime-node": "^1.17.3",
|
|
91
|
-
"openai": "^4.
|
|
92
|
+
"openai": "^4.42.0",
|
|
92
93
|
"sam-js": "^0.2.1",
|
|
93
94
|
"strip-ansi": "^7.1.0",
|
|
94
|
-
"tar": "^7.0
|
|
95
|
+
"tar": "^7.1.0",
|
|
95
96
|
"tiktoken": "^1.0.14",
|
|
96
97
|
"tinyld": "^1.3.4",
|
|
97
98
|
"ws": "^8.17.0",
|
|
@@ -99,7 +100,7 @@
|
|
|
99
100
|
},
|
|
100
101
|
"peerDependencies": {
|
|
101
102
|
"@echogarden/vosk": "^0.3.39-patched.1",
|
|
102
|
-
"speaker": "^0.5.
|
|
103
|
+
"speaker": "^0.5.5",
|
|
103
104
|
"winax": "^3.4.2"
|
|
104
105
|
},
|
|
105
106
|
"peerDependenciesMeta": {
|
|
@@ -119,7 +120,7 @@
|
|
|
119
120
|
"@types/graceful-fs": "^4.1.9",
|
|
120
121
|
"@types/jsdom": "^21.1.6",
|
|
121
122
|
"@types/msgpack-lite": "^0.1.11",
|
|
122
|
-
"@types/node": "^20.12.
|
|
123
|
+
"@types/node": "^20.12.10",
|
|
123
124
|
"@types/recursive-readdir": "^2.2.4",
|
|
124
125
|
"@types/tar": "^6.1.13",
|
|
125
126
|
"@types/ws": "^8.5.10",
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { type PreTrainedModel, type PreTrainedTokenizer } from '@echogarden/transformers-nodejs-lite'
|
|
2
|
+
import { Logger } from '../utilities/Logger.js'
|
|
3
|
+
import { loadPackage } from '../utilities/PackageManager.js'
|
|
4
|
+
|
|
5
|
+
export async function alignText(text1: string, text2: string) {
|
|
6
|
+
const logger = new Logger()
|
|
7
|
+
|
|
8
|
+
text1 = text1.replaceAll(/(\r?\n)+/g, ' ')
|
|
9
|
+
text2 = text2.replaceAll(/(\r?\n)+/g, ' ')
|
|
10
|
+
|
|
11
|
+
const modelPath = await loadPackage(`xenova-multilingual-e5-small-quantized`)
|
|
12
|
+
|
|
13
|
+
const embeddingModel = new E5TextEmbedding(modelPath)
|
|
14
|
+
|
|
15
|
+
logger.start(`Initialize E5 embedding model`)
|
|
16
|
+
await embeddingModel.initializeIfNeeded()
|
|
17
|
+
|
|
18
|
+
logger.start(`Tokenize text 1`)
|
|
19
|
+
const inputs1 = await embeddingModel.tokenizeToModelInputs(text1)
|
|
20
|
+
|
|
21
|
+
logger.start(`Infer embeddings for text 1`)
|
|
22
|
+
const embeddings1 = await embeddingModel.inferTokenEmbeddings(inputs1)
|
|
23
|
+
|
|
24
|
+
logger.start(`Tokenize text 2`)
|
|
25
|
+
const inputs2 = await embeddingModel.tokenizeToModelInputs(text2)
|
|
26
|
+
|
|
27
|
+
logger.start(`Infer embeddings for text 2`)
|
|
28
|
+
const embeddings2 = await embeddingModel.inferTokenEmbeddings(inputs1)
|
|
29
|
+
|
|
30
|
+
logger.end()
|
|
31
|
+
|
|
32
|
+
logger.log(embeddings1)
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export class E5TextEmbedding {
|
|
36
|
+
tokenizer?: PreTrainedTokenizer
|
|
37
|
+
model?: PreTrainedModel
|
|
38
|
+
|
|
39
|
+
constructor(public readonly modelPath: string) {
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
async tokenizeToModelInputs(text: string) {
|
|
43
|
+
await this.initializeIfNeeded()
|
|
44
|
+
|
|
45
|
+
const inputs = await this.tokenizer!(text)
|
|
46
|
+
|
|
47
|
+
return inputs
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
async inferTokenEmbeddings(inputs: any) {
|
|
51
|
+
await this.initializeIfNeeded()
|
|
52
|
+
|
|
53
|
+
const tokensText = this.tokenizer!.model.convert_ids_to_tokens(Array.from(inputs.input_ids.data))
|
|
54
|
+
|
|
55
|
+
const result = await this.model!(inputs)
|
|
56
|
+
|
|
57
|
+
const lastHiddenState = result.last_hidden_state
|
|
58
|
+
|
|
59
|
+
const tokenCount = lastHiddenState.dims[1]
|
|
60
|
+
const embeddingSize = lastHiddenState.dims[2]
|
|
61
|
+
|
|
62
|
+
const tokenEmbeddings: TokenEmbeddingData[] = []
|
|
63
|
+
|
|
64
|
+
for (let i = 0; i < tokenCount; i++) {
|
|
65
|
+
const tokenEmbeddingVector = lastHiddenState.data.slice(i * embeddingSize, (i + 1) * embeddingSize)
|
|
66
|
+
|
|
67
|
+
const tokenId = Number(inputs.input_ids.data[i])
|
|
68
|
+
const tokenText = tokensText[i]
|
|
69
|
+
|
|
70
|
+
tokenEmbeddings.push({
|
|
71
|
+
id: tokenId,
|
|
72
|
+
text: tokenText,
|
|
73
|
+
embeddingVector: tokenEmbeddingVector
|
|
74
|
+
})
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
return tokenEmbeddings
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
async initializeIfNeeded() {
|
|
81
|
+
if (this.tokenizer && this.model) {
|
|
82
|
+
return
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
const { AutoTokenizer, AutoModel } = await import('@echogarden/transformers-nodejs-lite')
|
|
86
|
+
|
|
87
|
+
this.tokenizer = await AutoTokenizer.from_pretrained(this.modelPath)
|
|
88
|
+
this.model = await AutoModel.from_pretrained(this.modelPath)
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
export interface TokenEmbeddingData {
|
|
93
|
+
id: number
|
|
94
|
+
text: string
|
|
95
|
+
embeddingVector: Float32Array
|
|
96
|
+
}
|
package/src/api/Alignment.ts
CHANGED
|
@@ -13,10 +13,15 @@ import { DtwGranularity, createAlignmentReferenceUsingEspeak } from '../alignmen
|
|
|
13
13
|
import { type SubtitlesConfig } from '../subtitles/Subtitles.js'
|
|
14
14
|
import { type EspeakOptions, defaultEspeakOptions } from '../synthesis/EspeakTTS.js'
|
|
15
15
|
import { isWord } from '../nlp/Segmentation.js'
|
|
16
|
+
import { alignText } from '../alignment/TextAlignment.js'
|
|
17
|
+
import { translateText } from '../text-translation/NLLBTextTranslation.js'
|
|
16
18
|
|
|
17
19
|
const log = logToStderr
|
|
18
20
|
|
|
19
21
|
export async function align(input: AudioSourceParam, transcript: string, options: AlignmentOptions): Promise<AlignmentResult> {
|
|
22
|
+
//await alignText(transcript, transcript)
|
|
23
|
+
//await translateText(transcript, 'en', 'de')
|
|
24
|
+
|
|
20
25
|
const logger = new Logger()
|
|
21
26
|
|
|
22
27
|
const startTimestamp = logger.getTimestamp()
|
|
@@ -38,8 +43,10 @@ export async function align(input: AudioSourceParam, transcript: string, options
|
|
|
38
43
|
logger.end()
|
|
39
44
|
logger.log(``)
|
|
40
45
|
|
|
46
|
+
logger.start(`Resample audio to 16kHz mono`)
|
|
41
47
|
sourceRawAudio = await ensureRawAudio(isolatedRawAudio, 16000, 1)
|
|
42
48
|
} else {
|
|
49
|
+
logger.start(`Resample audio to 16kHz mono`)
|
|
43
50
|
sourceRawAudio = await ensureRawAudio(inputRawAudio, 16000, 1)
|
|
44
51
|
}
|
|
45
52
|
|
|
@@ -52,7 +59,7 @@ export async function align(input: AudioSourceParam, transcript: string, options
|
|
|
52
59
|
logger.end()
|
|
53
60
|
}
|
|
54
61
|
|
|
55
|
-
logger.start('
|
|
62
|
+
logger.start('Normalize and trim audio')
|
|
56
63
|
|
|
57
64
|
sourceRawAudio = normalizeAudioLevel(sourceRawAudio)
|
|
58
65
|
sourceRawAudio.audioChannels[0] = trimAudioEnd(sourceRawAudio.audioChannels[0])
|
|
@@ -69,6 +76,8 @@ export async function align(input: AudioSourceParam, transcript: string, options
|
|
|
69
76
|
}
|
|
70
77
|
}
|
|
71
78
|
|
|
79
|
+
logger.end()
|
|
80
|
+
|
|
72
81
|
let language: string
|
|
73
82
|
|
|
74
83
|
if (options.language) {
|
package/src/api/Denoising.ts
CHANGED
|
@@ -14,8 +14,6 @@ export async function denoise(input: AudioSourceParam, options: DenoisingOptions
|
|
|
14
14
|
const logger = new Logger()
|
|
15
15
|
const startTime = logger.getTimestamp()
|
|
16
16
|
|
|
17
|
-
logger.start('Prepare for denoising')
|
|
18
|
-
|
|
19
17
|
options = extendDeep(defaultDenoisingOptions, options)
|
|
20
18
|
|
|
21
19
|
const inputRawAudio = await ensureRawAudio(input)
|
|
@@ -28,6 +28,7 @@ export async function detectSpeechLanguage(input: AudioSourceParam, options: Spe
|
|
|
28
28
|
|
|
29
29
|
const inputRawAudio = await ensureRawAudio(input)
|
|
30
30
|
|
|
31
|
+
logger.start(`Resample audio to 16kHz mono`)
|
|
31
32
|
let sourceRawAudio = await ensureRawAudio(inputRawAudio, 16000, 1)
|
|
32
33
|
sourceRawAudio = normalizeAudioLevel(sourceRawAudio)
|
|
33
34
|
sourceRawAudio.audioChannels[0] = trimAudioEnd(sourceRawAudio.audioChannels[0])
|
|
@@ -39,13 +40,11 @@ export async function detectSpeechLanguage(input: AudioSourceParam, options: Spe
|
|
|
39
40
|
logger.end()
|
|
40
41
|
}
|
|
41
42
|
|
|
42
|
-
logger.start(
|
|
43
|
+
logger.start(`Initialize ${options.engine} module`)
|
|
43
44
|
|
|
44
45
|
const defaultLanguage = options.defaultLanguage!
|
|
45
46
|
const fallbackThresholdProbability = options.fallbackThresholdProbability!
|
|
46
47
|
|
|
47
|
-
logger.start(`Initialize ${options.engine} module`)
|
|
48
|
-
|
|
49
48
|
let detectedLanguageProbabilities: LanguageDetectionResults
|
|
50
49
|
|
|
51
50
|
switch (options.engine) {
|
package/src/api/Recognition.ts
CHANGED
|
@@ -41,8 +41,10 @@ export async function recognize(input: AudioSourceParam, options: RecognitionOpt
|
|
|
41
41
|
logger.end()
|
|
42
42
|
logger.log(``)
|
|
43
43
|
|
|
44
|
+
logger.start(`Resample audio to 16kHz mono`)
|
|
44
45
|
sourceRawAudio = await ensureRawAudio(isolatedRawAudio, 16000, 1)
|
|
45
46
|
} else {
|
|
47
|
+
logger.start(`Resample audio to 16kHz mono`)
|
|
46
48
|
sourceRawAudio = await ensureRawAudio(inputRawAudio, 16000, 1)
|
|
47
49
|
}
|
|
48
50
|
|
|
@@ -55,7 +57,7 @@ export async function recognize(input: AudioSourceParam, options: RecognitionOpt
|
|
|
55
57
|
logger.end()
|
|
56
58
|
}
|
|
57
59
|
|
|
58
|
-
logger.start('
|
|
60
|
+
logger.start('Normalize and trim audio')
|
|
59
61
|
|
|
60
62
|
sourceRawAudio = normalizeAudioLevel(sourceRawAudio)
|
|
61
63
|
sourceRawAudio.audioChannels[0] = trimAudioEnd(sourceRawAudio.audioChannels[0])
|
package/src/api/Synthesis.ts
CHANGED
|
@@ -301,7 +301,7 @@ async function synthesizeSegment(text: string, options: SynthesisOptions) {
|
|
|
301
301
|
|
|
302
302
|
const startTimestamp = logger.getTimestamp()
|
|
303
303
|
|
|
304
|
-
logger.start('Prepare for synthesis')
|
|
304
|
+
logger.start('Prepare text for synthesis')
|
|
305
305
|
|
|
306
306
|
const simplifiedText = simplifyPunctuationCharacters(text)
|
|
307
307
|
|
package/src/api/Translation.ts
CHANGED
|
@@ -43,8 +43,10 @@ export async function translateSpeech(input: AudioSourceParam, options: SpeechTr
|
|
|
43
43
|
logger.end()
|
|
44
44
|
logger.log(``)
|
|
45
45
|
|
|
46
|
+
logger.start(`Resample audio to 16kHz mono`)
|
|
46
47
|
sourceRawAudio = await ensureRawAudio(isolatedRawAudio, 16000, 1)
|
|
47
48
|
} else {
|
|
49
|
+
logger.start(`Resample audio to 16kHz mono`)
|
|
48
50
|
sourceRawAudio = await ensureRawAudio(inputRawAudio, 16000, 1)
|
|
49
51
|
}
|
|
50
52
|
|
|
@@ -57,7 +59,7 @@ export async function translateSpeech(input: AudioSourceParam, options: SpeechTr
|
|
|
57
59
|
logger.end()
|
|
58
60
|
}
|
|
59
61
|
|
|
60
|
-
logger.start('
|
|
62
|
+
logger.start('Normalize and trim audio')
|
|
61
63
|
|
|
62
64
|
sourceRawAudio = normalizeAudioLevel(sourceRawAudio)
|
|
63
65
|
sourceRawAudio.audioChannels[0] = trimAudioEnd(sourceRawAudio.audioChannels[0])
|
|
@@ -35,8 +35,10 @@ export async function alignTranslation(input: AudioSourceParam, transcript: stri
|
|
|
35
35
|
logger.end()
|
|
36
36
|
logger.log(``)
|
|
37
37
|
|
|
38
|
+
logger.start(`Resample audio to 16kHz mono`)
|
|
38
39
|
sourceRawAudio = await ensureRawAudio(isolatedRawAudio, 16000, 1)
|
|
39
40
|
} else {
|
|
41
|
+
logger.start(`Resample audio to 16kHz mono`)
|
|
40
42
|
sourceRawAudio = await ensureRawAudio(inputRawAudio, 16000, 1)
|
|
41
43
|
}
|
|
42
44
|
|
|
@@ -49,11 +51,13 @@ export async function alignTranslation(input: AudioSourceParam, transcript: stri
|
|
|
49
51
|
logger.end()
|
|
50
52
|
}
|
|
51
53
|
|
|
52
|
-
logger.start('
|
|
54
|
+
logger.start('Normalize and trim audio')
|
|
53
55
|
|
|
54
56
|
sourceRawAudio = normalizeAudioLevel(sourceRawAudio)
|
|
55
57
|
sourceRawAudio.audioChannels[0] = trimAudioEnd(sourceRawAudio.audioChannels[0])
|
|
56
58
|
|
|
59
|
+
logger.end()
|
|
60
|
+
|
|
57
61
|
let sourceLanguage: string
|
|
58
62
|
|
|
59
63
|
if (options.sourceLanguage) {
|