const fs = require('fs'); module.exports = class { constructor(longName, fileExtension, supportedParameters = []) { this.longName = longName; this.fileExtension = fileExtension; } getInternalVoiceName(str) { return this.voices ? this.voices[str] : str; } getDefaultVoice() { } validateVoice(voice) { return this.voices ? this.voices[voice] : true; } async getSpeech(text, voice = this.getDefaultVoice(), params) { } async getSpeechFile(text, filepath, voice, params) { const data = await this.getSpeech(text, voice, params); const contents = await data.arrayBuffer(); const buf = Buffer.from(contents); fs.writeFileSync(filepath, buf); return filepath; } }