fix(core.gbapp): Added IBM for TTS and removed MSFT while it does not compile on AZR.

This commit is contained in:
Rodrigo Rodriguez 2021-12-31 08:26:41 -03:00
parent 2a816049bc
commit 12c9bea167

View file

@ -306,29 +306,30 @@ export class GBConversationalService {
const params = { const params = {
text: text, text: text,
accept: 'audio/ogg;codecs=vorbis', // ; rate=44100 accept: 'audio/wav; rate=44100',
voice: 'pt-BR_IsabelaVoice' voice: 'pt-BR_IsabelaVoice'
}; };
// Migrated to IBM from MSFT, as it own package do not compile on Azure Web App. // Migrated to IBM from MSFT, as it own package do not compile on Azure Web App.
let res = await textToSpeech.synthesize(params); let res = await textToSpeech.synthesize(params);
const waveFilename = `work/tmp${name}.pcm`;
let audio = '';
audio = await textToSpeech.repairWavHeaderStream(res.result);
fs.writeFileSync(waveFilename, audio);
const oggFilenameOnly = `tmp${name}.ogg`; const oggFilenameOnly = `tmp${name}.ogg`;
const oggFilename = `work/${oggFilenameOnly}`; const oggFilename = `work/${oggFilenameOnly}`;
const output = fs.createWriteStream(oggFilename);
let body = ''; const transcoder = new prism.FFmpeg({
res.result.on('data',(chunck) => { args: ['-analyzeduration', '0', '-loglevel', '0', '-f', 'opus', '-ar', '16000', '-ac', '1']
body += chunck;
}); });
fs.createReadStream(waveFilename).pipe(transcoder).pipe(output);
res.result.on('end', () => {
fs.writeFileSync(oggFilename, body);
res.statusCode = 200;
});
let url = urlJoin(GBServer.globals.publicAddress, 'audios', oggFilenameOnly); let url = urlJoin(GBServer.globals.publicAddress, 'audios', oggFilenameOnly);
resolve(url); resolve(url);
} catch (error) { } catch (error) {
reject(error); reject(error);
} }