ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
Treino de listening por ditado com vídeos do YouTube.
Translation pending
EducationTypeScript · JavaScriptGitHub @gledsonmirandaOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Listening trainer built on dictation: paste a YouTube URL, type what you hear in short segments, and get a word-by-word diff against the real captions — no reading along allowed.
Loading the full README.
Read the full README ↗An English listening trainer with two ways to practise:
The idea behind dictation is simple: understanding a video with the subtitles on is easy, and it lies to you. Typing what you heard does not forgive — either the word reached your ear or it did not.
It is a personal tool: UI in Portuguese, no login, progress kept in the browser.
Engineering conventions are in docs/RULES.md; agent instructions are in
AGENTS.md.
library video, or URL + .srt/.vtt, or URL alone (yt-dlp) → cues → segments
↓
word-by-word diff ← what you typed ← plays and pauses at the end
The way in, on /videos, goes in the order that works:
content/library/). They open straight into practice, no download..srt or
.vtt. Links to third-party caption download sites are offered, already
filled in for that video. From here the video can be added to the
library in one click.yt-dlp — convenient when it works, but YouTube
blocks it often, so it is the last option, not the first.Five decisions shape everything else:
getCurrentTime() every 100ms and pauses on crossing the
mark. Measured: it stops ~64ms late, with ±8ms of spread. Pausing early
would clip the last syllable, so there is no compensation — 64ms late lands in
the silence between sentences."I'm gonna go" and "I am going to go" are the same answer, and we'll
typed as well is accepted. Strict mode is a toggle, offered only when the
captions are manual and have punctuation worth enforcing.[Music], >>, the rolling text of auto-generated
captions, a 20-word cue holding three sentences. Cues are split at sentence
and clause breaks, then regrouped by the segmenter. When both tracks exist,
hand-written captions are re-timed against the ASR word timings, because
hand-typed timings wander by up to ~2s.Around the loop:
Ctrl+↓ reveals just the next word when you are stuck./api/translate).Your hands never have to leave the keyboard:
| shortcut | action |
|---|---|
Enter | check; after a miss, accept and move on |
Shift+Enter | line break |
Ctrl+Enter | replay the segment |
Ctrl+Space | pause / resume |
Ctrl+↓ | reveal the next word |
Ctrl+→ | reveal the answer and move on |
Alt+← / Alt+→ | previous / next segment |
Get it exactly right and "✓ acertou" appears; the segment advances on its own after 1.2s.
One folder per video in content/library/<videoId>/, with captions.srt (or
.vtt) and a meta.json. Instructions, including adding by hand, are in
content/library/README.md. Library pages are prerendered at build.
When running locally the library is writable: cards can be added from the
practice screen and deleted from their card. A production build is read-only
unless LIBRARY_WRITABLE=1 is set.
If a new video's subtitles run early or late, the YouTube upload usually has an
intro the caption file lacks (TED: ~12s). Compare a line at the start and one at
the end against YouTube's transcript; if the gap is the same, shift every
timestamp in captions.srt by that amount.
On /vocabulary:
read as red.This is the beginning of the README. Read the rest at the original. Read the full README ↗