anylang
Version:
A translator's kit that uses the free APIs of Google Translate, Yandex, Bing, ChatGPT, and other LLMs
48 lines (46 loc) • 8.59 kB
JavaScript
import { bufferToArrayBuffer } from '../../utils/buffers';
import { basicFetcher } from '../../utils/fetcher/basicFetcher';
export class GoogleTTS {
constructor({ fetcher = basicFetcher } = {}) {
this.fetcher = fetcher;
}
getAudioBuffer(text, language) {
const url = `https://translate.google.com/translate_tts?ie=UTF-8&tl=${language}&client=dict-chrome-ex&ttsspeed=0.5&q=` +
encodeURIComponent(text);
return this.fetcher(url, { responseType: 'arrayBuffer', method: 'GET' }).then(({ data }) => {
let buffer;
if (typeof Buffer !== 'undefined' && data instanceof Buffer) {
buffer = bufferToArrayBuffer(data);
}
else if (data instanceof ArrayBuffer) {
buffer = data;
}
else {
throw new TypeError('Unexpected response');
}
return {
type: 'audio/mpeg',
buffer,
};
});
}
static getSupportedLanguages() {
// prettier-ignore
return [
"af", "sq", "am", "ar", "hy", "as", "ay", "az", "bm", "eu",
"be", "bn", "bho", "bs", "bg", "ca", "ceb", "ny", "zh", "zh_HANT",
"co", "hr", "cs", "da", "dv", "doi", "nl", "en", "eo", "et", "ee",
"tl", "fi", "fr", "fy", "gl", "ka", "de", "el", "gn", "gu", "ht",
"ha", "haw", "iw", "hi", "hmn", "hu", "is", "ig", "ilo", "id",
"ga", "it", "ja", "jw", "kn", "kk", "km", "rw", "gom", "ko",
"kri", "ku", "ckb", "ky", "lo", "la", "lv", "ln", "lt", "lg",
"lb", "mk", "mai", "mg", "ms", "ml", "mt", "mi", "mr", "mni-Mtei",
"lus", "mn", "my", "ne", "no", "or", "om", "ps", "fa", "pl",
"pt", "pa", "qu", "ro", "ru", "sm", "sa", "gd", "nso", "sr",
"st", "sn", "sd", "si", "sk", "sl", "so", "es", "su", "sw", "sv",
"tg", "ta", "tt", "te", "th", "ti", "ts", "tr", "tk", "ak", "uk", "ur",
"ug", "uz", "vi", "cy", "xh", "yi", "yo", "zu"
];
}
}
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInR0cy9Hb29nbGVUVFMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBS2hFLE1BQU0sT0FBTyxTQUFTO0lBRXJCLFlBQVksRUFBRSxPQUFPLEdBQUcsWUFBWSxLQUE0QixFQUFFO1FBQ2pFLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFFTSxjQUFjLENBQUMsSUFBWSxFQUFFLFFBQWdCO1FBQ25ELE1BQU0sR0FBRyxHQUNSLDBEQUEwRCxRQUFRLHdDQUF3QztZQUMxRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUUxQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQzVFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFO1lBQ1osSUFBSSxNQUFtQixDQUFDO1lBQ3hCLElBQUksT0FBTyxNQUFNLEtBQUssV0FBVyxJQUFJLElBQUksWUFBWSxNQUFNLEVBQUUsQ0FBQztnQkFDN0QsTUFBTSxHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BDLENBQUM7aUJBQU0sSUFBSSxJQUFJLFlBQVksV0FBVyxFQUFFLENBQUM7Z0JBQ3hDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDZixDQUFDO2lCQUFNLENBQUM7Z0JBQ1AsTUFBTSxJQUFJLFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBQzVDLENBQUM7WUFFRCxPQUFPO2dCQUNOLElBQUksRUFBRSxZQUFZO2dCQUNsQixNQUFNO2FBQ04sQ0FBQztRQUNILENBQUMsQ0FDRCxDQUFDO0lBQ0gsQ0FBQztJQUVNLE1BQU0sQ0FBQyxxQkFBcUI7UUFDbEMsa0JBQWtCO1FBQ2xCLE9BQU87WUFDTixJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJO1lBQzFELElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFNBQVM7WUFDakUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUk7WUFDakUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUk7WUFDaEUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSTtZQUM3RCxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJO1lBQzNELEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUk7WUFDNUQsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVTtZQUNqRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJO1lBQzNELElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUk7WUFDM0QsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUk7WUFDaEUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJO1lBQ3RFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJO1NBQzlDLENBQUM7SUFDSCxDQUFDO0NBQ0QiLCJmaWxlIjoidHRzL0dvb2dsZVRUUy9pbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGJ1ZmZlclRvQXJyYXlCdWZmZXIgfSBmcm9tICcuLi8uLi91dGlscy9idWZmZXJzJztcbmltcG9ydCB7IGJhc2ljRmV0Y2hlciB9IGZyb20gJy4uLy4uL3V0aWxzL2ZldGNoZXIvYmFzaWNGZXRjaGVyJztcbmltcG9ydCB7IEZldGNoZXIgfSBmcm9tICcuLi8uLi91dGlscy9mZXRjaGVyL3R5cGVzJztcblxuaW1wb3J0IHsgVFRTQXVkaW9CdWZmZXIsIFRUU1Byb3ZpZGVyUHJvcHMgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBHb29nbGVUVFMgaW1wbGVtZW50cyBUVFNQcm92aWRlclByb3BzIHtcblx0cHJpdmF0ZSByZWFkb25seSBmZXRjaGVyO1xuXHRjb25zdHJ1Y3Rvcih7IGZldGNoZXIgPSBiYXNpY0ZldGNoZXIgfTogeyBmZXRjaGVyPzogRmV0Y2hlciB9ID0ge30pIHtcblx0XHR0aGlzLmZldGNoZXIgPSBmZXRjaGVyO1xuXHR9XG5cblx0cHVibGljIGdldEF1ZGlvQnVmZmVyKHRleHQ6IHN0cmluZywgbGFuZ3VhZ2U6IHN0cmluZyk6IFByb21pc2U8VFRTQXVkaW9CdWZmZXI+IHtcblx0XHRjb25zdCB1cmwgPVxuXHRcdFx0YGh0dHBzOi8vdHJhbnNsYXRlLmdvb2dsZS5jb20vdHJhbnNsYXRlX3R0cz9pZT1VVEYtOCZ0bD0ke2xhbmd1YWdlfSZjbGllbnQ9ZGljdC1jaHJvbWUtZXgmdHRzc3BlZWQ9MC41JnE9YCArXG5cdFx0XHRlbmNvZGVVUklDb21wb25lbnQodGV4dCk7XG5cblx0XHRyZXR1cm4gdGhpcy5mZXRjaGVyKHVybCwgeyByZXNwb25zZVR5cGU6ICdhcnJheUJ1ZmZlcicsIG1ldGhvZDogJ0dFVCcgfSkudGhlbihcblx0XHRcdCh7IGRhdGEgfSkgPT4ge1xuXHRcdFx0XHRsZXQgYnVmZmVyOiBBcnJheUJ1ZmZlcjtcblx0XHRcdFx0aWYgKHR5cGVvZiBCdWZmZXIgIT09ICd1bmRlZmluZWQnICYmIGRhdGEgaW5zdGFuY2VvZiBCdWZmZXIpIHtcblx0XHRcdFx0XHRidWZmZXIgPSBidWZmZXJUb0FycmF5QnVmZmVyKGRhdGEpO1xuXHRcdFx0XHR9IGVsc2UgaWYgKGRhdGEgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcikge1xuXHRcdFx0XHRcdGJ1ZmZlciA9IGRhdGE7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvcignVW5leHBlY3RlZCByZXNwb25zZScpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHR0eXBlOiAnYXVkaW8vbXBlZycsXG5cdFx0XHRcdFx0YnVmZmVyLFxuXHRcdFx0XHR9O1xuXHRcdFx0fSxcblx0XHQpO1xuXHR9XG5cblx0cHVibGljIHN0YXRpYyBnZXRTdXBwb3J0ZWRMYW5ndWFnZXMoKSB7XG5cdFx0Ly8gcHJldHRpZXItaWdub3JlXG5cdFx0cmV0dXJuIFtcblx0XHRcdFwiYWZcIiwgXCJzcVwiLCBcImFtXCIsIFwiYXJcIiwgXCJoeVwiLCBcImFzXCIsIFwiYXlcIiwgXCJhelwiLCBcImJtXCIsIFwiZXVcIixcblx0XHRcdFwiYmVcIiwgXCJiblwiLCBcImJob1wiLCBcImJzXCIsIFwiYmdcIiwgXCJjYVwiLCBcImNlYlwiLCBcIm55XCIsIFwiemhcIiwgXCJ6aF9IQU5UXCIsXG5cdFx0XHRcImNvXCIsIFwiaHJcIiwgXCJjc1wiLCBcImRhXCIsIFwiZHZcIiwgXCJkb2lcIiwgXCJubFwiLCBcImVuXCIsIFwiZW9cIiwgXCJldFwiLCBcImVlXCIsXG5cdFx0XHRcInRsXCIsIFwiZmlcIiwgXCJmclwiLCBcImZ5XCIsIFwiZ2xcIiwgXCJrYVwiLCBcImRlXCIsIFwiZWxcIiwgXCJnblwiLCBcImd1XCIsIFwiaHRcIixcblx0XHRcdFwiaGFcIiwgXCJoYXdcIiwgXCJpd1wiLCBcImhpXCIsIFwiaG1uXCIsIFwiaHVcIiwgXCJpc1wiLCBcImlnXCIsIFwiaWxvXCIsIFwiaWRcIixcblx0XHRcdFwiZ2FcIiwgXCJpdFwiLCBcImphXCIsIFwiandcIiwgXCJrblwiLCBcImtrXCIsIFwia21cIiwgXCJyd1wiLCBcImdvbVwiLCBcImtvXCIsXG5cdFx0XHRcImtyaVwiLCBcImt1XCIsIFwiY2tiXCIsIFwia3lcIiwgXCJsb1wiLCBcImxhXCIsIFwibHZcIiwgXCJsblwiLCBcImx0XCIsIFwibGdcIixcblx0XHRcdFwibGJcIiwgXCJta1wiLCBcIm1haVwiLCBcIm1nXCIsIFwibXNcIiwgXCJtbFwiLCBcIm10XCIsIFwibWlcIiwgXCJtclwiLCBcIm1uaS1NdGVpXCIsXG5cdFx0XHRcImx1c1wiLCBcIm1uXCIsIFwibXlcIiwgXCJuZVwiLCBcIm5vXCIsIFwib3JcIiwgXCJvbVwiLCBcInBzXCIsIFwiZmFcIiwgXCJwbFwiLFxuXHRcdFx0XCJwdFwiLCBcInBhXCIsIFwicXVcIiwgXCJyb1wiLCBcInJ1XCIsIFwic21cIiwgXCJzYVwiLCBcImdkXCIsIFwibnNvXCIsIFwic3JcIixcblx0XHRcdFwic3RcIiwgXCJzblwiLCBcInNkXCIsIFwic2lcIiwgXCJza1wiLCBcInNsXCIsIFwic29cIiwgXCJlc1wiLCBcInN1XCIsIFwic3dcIiwgXCJzdlwiLFxuXHRcdFx0XCJ0Z1wiLCBcInRhXCIsIFwidHRcIiwgXCJ0ZVwiLCBcInRoXCIsIFwidGlcIiwgXCJ0c1wiLCBcInRyXCIsIFwidGtcIiwgXCJha1wiLCBcInVrXCIsIFwidXJcIixcblx0XHRcdFwidWdcIiwgXCJ1elwiLCBcInZpXCIsIFwiY3lcIiwgXCJ4aFwiLCBcInlpXCIsIFwieW9cIiwgXCJ6dVwiXG5cdFx0XTtcblx0fVxufVxuIl19