Floating, synced lyrics for anything playing on your PC — with AI sync and Shazam-style song recognition.
Download | Report a bug | Privacy | License
Resumen en español: Lyrio muestra la letra sincronizada de lo que suene en tu PC (Spotify, YouTube o cualquier reproductor) flotando sobre la pantalla. Identifica la canción escuchándola (estilo Shazam), la sincroniza con IA local cuando no existe sincronización en ninguna fuente, y es completamente gratis. Descarga el
.exeportable desde Releases; no requiere instalador, cuentas ni Python. Único autor y creador: EazyHood.
- Floating lyrics overlay — transparent background, always on top, draggable, click-through ghost mode, word-by-word karaoke sweep, 4 style themes (Classic, Cartoon, Neon, Minimal), adjustable width, 1–3 visible lines, alignment, font and color.
- Finds any lyric — 8 sources searched in order and validated by artist + duration: lrclib, Musixmatch, QQ Music, Kugou, NetEase, letras.com, Genius, lyrics.ovh.
- Song identification (Shazam-style) — recognizes the actual song from the system audio, even when a video's title isn't the song name. Its offset also auto-syncs videos that have intros.
- AI sync — when no source has real timing, a local Whisper model listens to the song, transcribes the singer word by word and aligns the lyrics by itself. Fully offline, background, with a quality gate.
- Audio calibration — detects where the music really starts (spoken intros/skits) and re-anchors estimated lyrics; remembered per song.
- Radio mode — no player detected at all? Lyrio identifies what's playing by listening and drives the lyrics with Shazam's clock.
- Click to jump — click any line (or the progress bar) to seek there in the player. Per-song timing offset, persisted.
- Sync by hand + community — live-correction editor (press Space when the highlighted line starts; everything after shifts). Publish your sync to lrclib with your signature; synchronizer credits are shown at the end of songs.
- Multi-source — two players at once? Pick the source with one click, or show 2 lyrics at the same time (dual overlay).
- Live translation — a translated line under the lyrics, generated by a local LLM (Ollama). Offline, free, optional.
- Romanization — Japanese, Korean and Chinese lyrics shown in Latin script automatically (offline).
- True word-level karaoke — when the AI syncs a song, it keeps each word's real timestamp and the sweep follows the actual singer.
- Party mode — fullscreen lyrics for a TV or projector (Esc to exit).
- Phone companion — read the lyrics on your phone: same Wi-Fi, scan a QR, done. No app install.
- Auto-update notice — Lyrio tells you when a new version is on GitHub.
- English / Español · light & dark themes · system tray · global hotkeys (Ctrl+Alt+L, ←→ timing, ↑↓ size) · single instance · autostart.
Download Lyrio.exe from Releases and double-click it. No Python, no account, no login.
Descarga Lyrio.exe desde Releases y doble clic. Sin Python, sin cuentas, sin login.
Windows 10/11. Lyrio reads the media session that Windows exposes (SMTC) — it never touches the players themselves.
pip install requests customtkinter pystray pillow syncedlyrics pyaudiowpatch numpy shazamio==0.4.0.1 audioop-lts faster-whisper segno pykakasi pypinyin korean-romanizer
python main.pyBuild the exe with build.bat (PyInstaller).
| Problem | Solution |
|---|---|
| Video title ≠ song name | Title cleanup (VEVO, - Topic, [4K]…) + duration-gated fuzzy search + Shazam-style audio identification |
| Song has no synced lyrics anywhere | Local Whisper transcribes the vocals and aligns the known text word by word (source: "AI-synced") |
| Song starts with a spoken intro | Loopback audio analysis finds the real music onset and re-anchors the timing |
| Bluetooth latency | Global offset setting; per-song offsets are persisted separately from the cache |
| Two apps playing at once | Source picker chips + optional dual overlay |
Everything runs locally. No account, no telemetry. Audio is captured only from your own system output, analyzed in memory/temp and discarded. Lyrics are fetched from public sources and cached locally (auto-pruned). Publishing to lrclib is manual and anonymous (only your chosen signature is embedded).
Planned for future versions (in no particular order):
- Overlay on top of exclusive-fullscreen games (DirectX overlay).
- Community sync network with voting (own backend).
- Publishing the AI's word-level timing to lrclib as enhanced LRC.
- Per-monitor DPI awareness for mixed-scaling multi-monitor setups.
- Signed installer (an unsigned
installer.issfor Inno Setup ships in the repo).
Free to use, attribution required. Not for sale, no illegal use. All rights reserved by EazyHood — see LICENSE.
Gratis y libre de usar, con reconocimiento. Prohibida su venta y el mal uso. Todos los derechos reservados por EazyHood — ver LICENSE.

