{ saveSettings({ audio: { STTEngine: STTEngine !== '' ? STTEngine : undefined, TTSEngine: TTSEngine !== '' ? TTSEngine : undefined, speaker: speaker !== '' ? speaker : undefined } }); dispatch('save'); }} >
STT Settings
Speech-to-Text Engine
{ if (e.target.value !== '') { navigator.mediaDevices.getUserMedia({ audio: true }).catch(function (err) { toast.error(`Permission denied when accessing microphone: ${err}`); STTEngine = ''; }); } }} >
Default (Web API)
Whisper (Local)
Conversation Mode
{ toggleConversationMode(); }} type="button" > {#if conversationMode === true}
On
{:else}
Off
{/if}
Auto-send input after 3 sec.
{ toggleSpeechAutoSend(); }} type="button" > {#if speechAutoSend === true}
On
{:else}
Off
{/if}
TTS Settings
Text-to-Speech Engine
{ if (e.target.value === 'openai') { getOpenAIVoices(); speaker = 'alloy'; } else { getWebAPIVoices(); speaker = ''; } }} >
Default (Web API)
Open AI
Auto-playback response
{ toggleResponseAutoPlayback(); }} type="button" > {#if responseAutoPlayback === true}
On
{:else}
Off
{/if}
{#if TTSEngine === ''}
Set Voice
Default
{#each voices.filter((v) => v.localService === true) as voice}
{voice.name}
{/each}
{:else if TTSEngine === 'openai'}
Set Voice
{#each voices as voice}
{voice.name}
{/each}
{/if}
Save