const BaseEngine = require('../BaseEngine'); const fetch = require('node-fetch'); const querystring = require('querystring'); module.exports = class extends BaseEngine { constructor() { super("IBM Watson TTS", "ogg"); <<<<<<< HEAD this.voices = {}; this.populateVoiceList(); } async populateVoiceList() { const url = process.env.watsonURL + "/v1/voices"; const authorization = this.IBMAuthString(); const opts = { method: "get", headers: { 'Authorization': authorization }, ======= this.voices = { 'Michael': 'en-US_MichaelV3Voice', 'Allison': 'en-US_AllisonV3Voice', 'Kevin': 'en-US_KevinV3Voice', >>>>>>> 12a9f8fc5374d912e595cea204998daa4d7220ba }; const res = await fetch(url, opts); const voices = await res.json(); voices.voices.forEach((i) => { let voiceName = i.description.substring(0, i.description.indexOf(':')); this.voices[voiceName] = i.name; }); } getDefaultVoice() { return 'Michael'; } <<<<<<< HEAD IBMAuthString() { let buff = new Buffer('apikey:' + process.env.watsonAPIKey); let b64auth = buff.toString('base64'); return 'Basic ' + b64auth; } async getSpeech(text, voice = this.getSpeechVoice(), params = {}) { const url = process.env.watsonURL + "/v1/synthesize?voice=" + this.getInternalVoiceName(voice); const authorization = this.IBMAuthString(); ======= async getSpeech(text, voice = this.getSpeechVoice(), params = {}) { const url = process.env.watsonURL + "/v1/synthesize?voice=" + this.getInternalVoiceName(voice); let buff = new Buffer('apikey:' + process.env.watsonAPIKey); let b64auth = buff.toString('base64'); const authorization = 'Basic ' + b64auth; >>>>>>> 12a9f8fc5374d912e595cea204998daa4d7220ba const opts = { method: "post", headers: { 'Content-Type': 'application/json', 'Authorization': authorization }, body: JSON.stringify({ text: text }) }; return fetch(url, opts); } };