{ saveSettings({ audio: { stt: { engine: STTEngine !== '' ? STTEngine : undefined, language: STTLanguage !== '' ? STTLanguage : undefined }, tts: { engine: TTSEngine !== '' ? TTSEngine : undefined, engineConfig: TTSEngineConfig, playbackRate: playbackRate, voice: voice !== '' ? voice : undefined, defaultVoice: $config?.audio?.tts?.voice ?? '', nonLocalVoices: $config.audio.tts.engine === '' ? nonLocalVoices : undefined } } }); dispatch('save'); }} >

{$i18n.t('Audio')}

{#if $config.audio.stt.engine !== 'web'} {/if} {#if TTSEngine === 'browser-kokoro'} {/if}
x
{#if TTSEngine === 'browser-kokoro'} {#if TTSModel} {#each voices as voice} {/each} {:else}
{$i18n.t('Loading Kokoro.js...')} {TTSModelProgress && TTSModelProgress.status === 'progress' ? `(${Math.round(TTSModelProgress.progress * 10) / 10}%)` : ''}
{$i18n.t('Please do not close the settings page while loading the model.')}
{/if} {:else if $config.audio.tts.engine === ''} {#each voices.filter((v) => nonLocalVoices || v.localService === true) as _voice} {/each} {:else if $config.audio.tts.engine !== ''} {#each voices as voice} {/each} {/if}