New voice applies on next "Play narration". {#if voices.length > 0} { e.preventDefault(); fetch('/api/audio/voice-samples', { method: 'POST' }).catch(() => {}); }} >Generate missing samples {/if}
{audioStore.errorMsg || 'Failed to load audio.'}
{/if} {:else if audioStore.status === 'loading'} {:else if audioStore.status === 'generating'}Generating narration…
{Math.round(audioStore.progress)}%
Ch.{nextChapter} ready
{:else if audioStore.nextStatus === 'failed'}Ch.{nextChapter} will generate on navigate
{/if}Now playing: {audioStore.chapterTitle || `Ch.${audioStore.chapter}`}