diff --git a/lib/session/call-session.js b/lib/session/call-session.js index ee7b9f66..58e7d2f9 100644 --- a/lib/session/call-session.js +++ b/lib/session/call-session.js @@ -658,6 +658,15 @@ class CallSession extends Emitter { } } + // disableTtsCache + get disableTtsCache() { + return this._disableTtsCache || false; + } + + set disableTtsCache(d) { + this._disableTtsCache = d; + } + getTsStreamingVendor() { let v; if (this.currentTask?.isStreamingTts) { diff --git a/lib/tasks/config.js b/lib/tasks/config.js index 64b2822a..8eac4e9b 100644 --- a/lib/tasks/config.js +++ b/lib/tasks/config.js @@ -18,7 +18,8 @@ class TaskConfig extends Task { 'boostAudioSignal', 'vad', 'ttsStream', - 'autoStreamTts' + 'autoStreamTts', + 'disableTtsCache' ].forEach((k) => this[k] = this.data[k] || {}); if ('notifyEvents' in this.data) { @@ -88,6 +89,7 @@ class TaskConfig extends Task { get hasReferHook() { return Object.keys(this.data).includes('referHook'); } get hasNotifySttLatency() { return Object.keys(this.data).includes('notifySttLatency'); } get hasTtsStream() { return Object.keys(this.ttsStream).length; } + get hasDisableTtsCache() { return Object.keys(this.data).includes('disableTtsCache'); } get summary() { const phrase = []; @@ -125,6 +127,7 @@ class TaskConfig extends Task { phrase.push(`${this.ttsStream.enable ? 'enable' : 'disable'} ttsStream`); } if ('autoStreamTts' in this.data) phrase.push(`enable Say.stream value ${this.data.autoStreamTts ? 'on' : 'off'}`); + if (this.hasDisableTtsCache) phrase.push(`disableTtsCache ${this.data.disableTtsCache ? 'on' : 'off'}`); return `${this.name}{${phrase.join(',')}}`; } @@ -357,6 +360,11 @@ class TaskConfig extends Task { this.logger.info('Config: disabling ttsStream'); cs.disableTtsStream(); } + + if (this.hasDisableTtsCache) { + this.logger.info(`set disableTtsCache = ${this.disableTtsCache}`); + cs.disableTtsCache = this.data.disableTtsCache; + } } async kill(cs) { diff --git a/lib/tasks/tts-task.js b/lib/tasks/tts-task.js index 41598f85..416bde49 100644 --- a/lib/tasks/tts-task.js +++ b/lib/tasks/tts-task.js @@ -41,6 +41,10 @@ class TtsTask extends Task { async exec(cs) { super.exec(cs); + // update disableTtsCache from call session if not set in task + if (this.data.disableTtsCache == null) { + this.disableTtsCache = cs.disableTtsCache; + } if (cs.synthesizer) { this.options = {...cs.synthesizer.options, ...this.options}; this.data.synthesizer = this.data.synthesizer || {};