in src/core/awspack/AbstractTextToSpeechFeature.js [535:591]
_updateConfig(config, skipSpeeches = []) {
const currentConfig = this._getConfig();
if (!config) {
return currentConfig;
}
this._isValidated = false;
const currentConfigStr = JSON.stringify(currentConfig);
// Update options
if (config.Engine) {
this._engine = config.Engine;
}
if (config.audioFormat) {
this._audioFormat = config.audioFormat;
}
if (config.SampleRate) {
this._sampleRate = config.SampleRate;
}
if (config.VoiceId) {
this._voice = config.VoiceId;
}
if (config.Language) {
this._language = config.Language;
}
// Validate the config
const validConfig = this._getConfig();
// Exit if nothing has changed
const configStr = JSON.stringify(validConfig);
if (currentConfigStr === configStr) {
this._isValidated = true;
return validConfig;
}
// Update all cached configs
Object.entries(this._speechCache).forEach(([text, speech]) => {
// Check if this is a skipped speech
if (skipSpeeches.includes(text)) {
return;
}
const speechConfigStr = JSON.stringify(speech.config);
// Update the speech with new parameters
if (speechConfigStr !== configStr) {
this._updateSpeech(text, validConfig);
}
});
return validConfig;
}