diff --git a/package.json b/package.json index 00b02e00..cbd7f862 100644 --- a/package.json +++ b/package.json @@ -85,7 +85,6 @@ "ibm-watson": "6.1.1", "js-beautify": "1.13.13", "marked": "2.0.7", - "microsoft-cognitiveservices-speech-sdk": "1.14.1", "ms-rest-azure": "3.0.0", "nexmo": "2.9.1", "node-cron": "3.0.0", diff --git a/packages/core.gbapp/services/GBConversationalService.ts b/packages/core.gbapp/services/GBConversationalService.ts index 8bc49fba..f833470b 100644 --- a/packages/core.gbapp/services/GBConversationalService.ts +++ b/packages/core.gbapp/services/GBConversationalService.ts @@ -297,53 +297,6 @@ export class GBConversationalService { await min.whatsAppDirectLine.sendToDevice(mobile, message); } - public static async getAudioBufferFromText(speechKey, cloudRegion, text, locale): Promise { - return new Promise(async (resolve, reject) => { - const name = GBAdminService.getRndReadableIdentifier(); - - const waveFilename = `work/tmp${name}.pcm`; - const sdk = require('microsoft-cognitiveservices-speech-sdk'); - sdk.Recognizer.enableTelemetry(false); - - var audioConfig = sdk.AudioConfig.fromAudioFileOutput(waveFilename); - var speechConfig = sdk.SpeechConfig.fromSubscription(speechKey, cloudRegion); - - var synthesizer = new sdk.SpeechSynthesizer(speechConfig, audioConfig); - - try { - speechConfig.speechSynthesisLanguage = locale; - speechConfig.speechSynthesisVoiceName = 'pt-BR-FranciscaNeural'; - - synthesizer.speakTextAsync(text, result => { - if (result.reason === sdk.ResultReason.SynthesizingAudioCompleted) { - let raw = Buffer.from(result.audioData); - fs.writeFileSync(waveFilename, raw); - GBLog.info(`Audio data byte size: ${result.audioData.byteLength}.`); - const oggFilenameOnly = `tmp${name}.ogg`; - const oggFilename = `work/${oggFilenameOnly}`; - - const output = fs.createWriteStream(oggFilename); - const transcoder = new prism.FFmpeg({ - args: ['-analyzeduration', '0', '-loglevel', '0', '-f', 'opus', '-ar', '16000', '-ac', '1'] - }); - - fs.createReadStream(waveFilename).pipe(transcoder).pipe(output); - - let url = urlJoin(GBServer.globals.publicAddress, 'audios', oggFilenameOnly); - resolve(url); - } else { - const error = 'Speech synthesis canceled, ' + result.errorDetails; - reject(error); - } - synthesizer.close(); - synthesizer = undefined; - }); - } catch (error) { - reject(error); - } - }); - } - public static async getTextFromAudioBuffer(speechKey, cloudRegion, buffer, locale): Promise { return new Promise(async (resolve, reject) => { try { diff --git a/packages/whatsapp.gblib/services/WhatsappDirectLine.ts b/packages/whatsapp.gblib/services/WhatsappDirectLine.ts index d7fe8dcd..01c3e782 100644 --- a/packages/whatsapp.gblib/services/WhatsappDirectLine.ts +++ b/packages/whatsapp.gblib/services/WhatsappDirectLine.ts @@ -443,12 +443,13 @@ export class WhatsappDirectLine extends GBService { public async sendTextAsAudioToDevice(to, msg) { - const url = await GBConversationalService.getAudioBufferFromText( - this.min.instance.speechKey, - this.min.instance.cloudLocation, - msg, this.locale - ); - + // DISABLED: + // const url = await GBConversationalService.getAudioBufferFromText( + // this.min.instance.speechKey, + // this.min.instance.cloudLocation, + // msg, this.locale + // ); + const url = 'https://'; await this.sendFileToDevice(to, url, 'Audio', msg); }