Add spelling improvements and local Piper TTS
Practice: fire streak badge, first-letter hint on wrong answers, missed-words drill session after practice completes. Test: audio-only mode with listening state before input appears, larger re-read button. Words: definition field (DB migration + admin editor + TTS playback). TTS: replace speechSynthesis with local Piper via /api/tts, WAV cached in data/tts-cache, falls back to browser voice when Piper is not installed. Dockerfile: switched to node:26-slim, installs Piper binary + en_US-lessac-medium voice. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
1 parent
544469d6c9
commit
6f2281e2a7
8 files changed
+202
-35
No files matched your search
+1
-1
@@ -258,7 +258,7 @@
|
||||
<input type="hidden" id="list-id">
|
||||
<input id="list-name" placeholder="List name (e.g. Week of July 6)" aria-label="List name">
|
||||
<textarea id="list-words" rows="8"
|
||||
placeholder="One word per line. Add an example sentence with | like: receive | Did you receive my letter?"></textarea>
|
||||
placeholder="One word per line. Optionally add sentence and definition with | like: receive | Did you receive my letter? | to get or accept something"></textarea>
|
||||
<div class="row-actions">
|
||||
<button type="submit">Save list</button>
|
||||
<button type="button" id="list-cancel" class="secondary">Clear</button>
|
||||
|
||||
Reference in new issue
Block a user