echogarden
Version:
An easy-to-use speech toolset. Includes tools for synthesis, recognition, alignment, speech translation, language detection, source separation and more.
68 lines • 2.26 kB
JavaScript
import { request } from "gaxios";
import { Logger } from "../utilities/Logger.js";
import { parseText } from "../nlp/Segmentation.js";
import { getChromeOnWindowsHeaders } from "../utilities/BrowserRequestHeaders.js";
export async function translateText(text, sourceLanguage, targetLanguage) {
const logger = new Logger();
logger.start(`Prepare request`);
const segmentedText = await parseText(text, sourceLanguage);
const sentences = segmentedText.sentences;
const requestBodyObject = {
jsonrpc: '2.0',
method: 'LMT_handle_jobs',
params: {
jobs: [
{
kind: 'default',
sentences: [
{
text: sentences[0].text,
id: 1,
prefix: '',
}
],
raw_en_context_before: [],
raw_en_context_after: [],
preferred_num_beams: 4,
quality: 'fast',
}
],
lang: {
target_lang: targetLanguage.toUpperCase(),
preference: {
weight: {},
default: 'default',
},
source_lang_computed: sourceLanguage.toUpperCase(),
},
priority: -1,
commonJobParams: {
mode: 'translate',
browserType: 1,
textType: 'plaintext',
},
timestamp: Date.now(),
},
id: 756456347,
};
const response = await request({
method: 'POST',
url: `https://www2.deepl.com/jsonrpc`,
params: {
'method': 'LMT_handle_jobs',
},
headers: {
...getChromeOnWindowsHeaders({
origin: 'https://www.deepl.com',
referrer: `https://www.deepl.com/`
}),
'Content-Type': 'application/json',
},
body: JSON.stringify(requestBodyObject),
responseType: 'json'
});
logger.start('Parse response');
logger.end();
return [];
}
//# sourceMappingURL=DeepLTextTranslation.js.map