@andresaya/n8n-nodes-edgetts
Version:
n8n node for Edge TTS - Text-to-Speech using Microsoft Edge capabilities
67 lines • 2.45 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.listAll = listAll;
exports.filterByLanguage = filterByLanguage;
exports.filterByGender = filterByGender;
const n8n_workflow_1 = require("n8n-workflow");
const edge_tts_1 = require("@andresaya/edge-tts");
async function listAll(itemIndex) {
const options = this.getNodeParameter('options', itemIndex, {});
const limit = options.limit;
try {
const tts = new edge_tts_1.EdgeTTS();
let voices = await tts.getVoices();
if (limit && limit > 0) {
voices = voices.slice(0, limit);
}
return voices.map((voice) => ({
json: voice,
}));
}
catch (error) {
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Failed to get voices: ${error.message}`);
}
}
async function filterByLanguage(itemIndex) {
const language = this.getNodeParameter('language', itemIndex);
const options = this.getNodeParameter('options', itemIndex, {});
const limit = options.limit;
if (!language) {
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Language is required');
}
try {
const tts = new edge_tts_1.EdgeTTS();
let voices = await tts.getVoicesByLanguage(language);
if (limit && limit > 0) {
voices = voices.slice(0, limit);
}
return voices.map((voice) => ({
json: voice,
}));
}
catch (error) {
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Failed to get voices for language "${language}": ${error.message}`);
}
}
async function filterByGender(itemIndex) {
const gender = this.getNodeParameter('gender', itemIndex);
const options = this.getNodeParameter('options', itemIndex, {});
const limit = options.limit;
if (!gender) {
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Gender is required');
}
try {
const tts = new edge_tts_1.EdgeTTS();
let voices = await tts.getVoicesByGender(gender);
if (limit && limit > 0) {
voices = voices.slice(0, limit);
}
return voices.map((voice) => ({
json: voice,
}));
}
catch (error) {
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Failed to get voices for gender "${gender}": ${error.message}`);
}
}
//# sourceMappingURL=voiceOperations.js.map