const BaseEngine = require('../BaseEngine')
const Sam = require('sam-js');
const wavefile = require('wavefile');
const fs = require('fs');

module.exports = class extends BaseEngine {
    constructor() {
        super('sam', 'Software Automatic Mouth', 'wav')
    }
    getDefaultVoice() {
        return 'en';
    }
    async getSpeechFile(text, filepath, voice = this.getDefaultVoice(), params = {}) {
        let sam = new Sam();
        const buf = sam.buf8(text);
        const file = new wavefile.WaveFile();
        file.fromScratch(1, 22050, 8, buf);
        fs.writeFileSync(filepath, file.toBuffer());
    }
}