agent-zero/webui/components/settings/agent/speech.html
Alessandro a1c12e9247 Refine settings and remote access UX
Restyle Settings and standard modals around a streamlined left-rail layout, clearer section hierarchy, advanced settings disclosures, and stronger update states.

Add persistent update visibility with quieter once-daily update notifications, plus Remote Link and Space Agent actions in the canvas rail. Refresh the tunnel experience as a normal Remote Link modal with clearer copy, QR/mobile affordances, and safer state handling.
2026-04-27 02:48:23 +02:00

108 lines
4.6 KiB
HTML

<html>
<head>
<title>Speech</title>
</head>
<body>
<div x-data>
<template x-if="$store.settings.settings">
<div>
<div class="section-title">Speech</div>
<div class="section-description">
Pick the microphone, transcription model, and voice output behavior.
</div>
<div class="field field-full">
<div class="field-label">
<div class="field-title">Microphone device</div>
<div class="field-description">Choose the input device Agent Zero listens to.</div>
</div>
<div class="field-control">
<x-component path="settings/speech/microphone.html"></x-component>
</div>
</div>
<div class="field">
<div class="field-label">
<div class="field-title">Speech-to-text model size</div>
<div class="field-description">Larger models can hear more accurately, but need more time and memory.</div>
</div>
<div class="field-control">
<select x-model="$store.settings.settings.stt_model_size">
<template x-for="option in $store.settings.additional?.stt_models" :key="option.value">
<option :value="option.value" :selected="option.value === $store.settings.settings.stt_model_size" x-text="option.label"></option>
</template>
</select>
</div>
</div>
<div class="field">
<div class="field-label">
<div class="field-title">Enable Kokoro TTS</div>
<div class="field-description">
Use higher-quality server-side speech instead of the browser voice.
</div>
</div>
<div class="field-control">
<label class="toggle">
<input type="checkbox" x-model="$store.settings.settings.tts_kokoro" />
<span class="toggler"></span>
</label>
</div>
</div>
<div class="settings-advanced-section" x-data="{ advOpen: false }">
<button type="button" class="settings-advanced-toggle" @click="advOpen = !advOpen">
<span class="material-symbols-outlined settings-advanced-toggle-icon"
:style="advOpen ? 'transform:rotate(90deg)' : ''">chevron_right</span>
<span>Advanced Settings</span>
</button>
<div class="settings-advanced-body" x-show="advOpen" x-transition.opacity>
<div class="field">
<div class="field-label">
<div class="field-title">Language hint</div>
<div class="field-description">Use a short language code such as en, fr, or it when automatic detection needs guidance.</div>
</div>
<div class="field-control">
<input type="text" x-model="$store.settings.settings.stt_language" />
</div>
</div>
<div class="field">
<div class="field-label">
<div class="field-title">Silence threshold</div>
<div class="field-description">Lower values catch softer speech; higher values ignore more room noise.</div>
</div>
<div class="field-control">
<input type="range" min="0" max="1" step="0.01" x-model.number="$store.settings.settings.stt_silence_threshold" />
<span class="range-value" x-text="$store.settings.settings.stt_silence_threshold"></span>
</div>
</div>
<div class="field">
<div class="field-label">
<div class="field-title">End-of-speech delay</div>
<div class="field-description">How long silence must last before Agent Zero treats your sentence as complete.</div>
</div>
<div class="field-control">
<input type="number" x-model.number="$store.settings.settings.stt_silence_duration" />
</div>
</div>
<div class="field">
<div class="field-label">
<div class="field-title">Microphone close delay</div>
<div class="field-description">How long Agent Zero waits before closing the microphone after speech stops.</div>
</div>
<div class="field-control">
<input type="number" x-model.number="$store.settings.settings.stt_waiting_timeout" />
</div>
</div>
</div>
</div>
</div>
</template>
</div>
</body>
</html>