From a4b0a7a3f3065745e422a8faf7b0dda71c1a12e5 Mon Sep 17 00:00:00 2001 From: oddsix Date: Thu, 23 Oct 2025 08:40:08 -0400 Subject: [PATCH] Add ability to disable TTS cache for entire call session. --- lib/tasks/config.js | 9 ++++++++- lib/tasks/say.js | 4 +++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/lib/tasks/config.js b/lib/tasks/config.js index 64b2822a..ad0b70d8 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) { @@ -96,6 +97,7 @@ class TaskConfig extends Task { if (this.data.reset.length) phrase.push(`reset ${this.data.reset.join(',')}`); if (this.bargeIn.enable) phrase.push('enable barge-in'); + if (this.disableTtsCache) phrase.push(`disableTtsCache ${this.disableTtsCache ? 'true' : 'false'}`); if (this.hasSynthesizer) { const {vendor:v, language:l, voice, label} = this.synthesizer; const s = `{${v},${l},${voice},${label || 'None'}}`; @@ -357,6 +359,11 @@ class TaskConfig extends Task { this.logger.info('Config: disabling ttsStream'); cs.disableTtsStream(); } + + if (this.disableTtsCache) { + this.logger.info('Config: disable TtsCache'); + cs.disableTtsCache = this.disableTtsCache; + } } async kill(cs) { diff --git a/lib/tasks/say.js b/lib/tasks/say.js index ead7fc1f..da095017 100644 --- a/lib/tasks/say.js +++ b/lib/tasks/say.js @@ -342,7 +342,9 @@ class TaskSay extends TtsTask { evt.variable_tts_cache_filename && !this.killed && // if tts cache is not disabled, add the file to cache - !this.disableTtsCache + !this.disableTtsCache && + // has tts cache been disabled for the entire session + !cs.disableTtsCache ) { const text = parseTextFromSayString(this.text[segment]); this.logger.debug({text, cacheFile: evt.variable_tts_cache_filename}, 'Say:exec cache tts');