Skip to main content

TUI app for transcribing and editing synced song lyrics

Project description

lyrsmith

An AI-powered terminal UI for transcribing and editing time-synced song lyrics in LRC format.

Point it at a directory, load a track, run Whisper to get a rough transcription, then nudge timestamps until they're right. Saves directly to the audio file's tags.

Features

  • AI transcription via faster-whisper — runs locally, no cloud
  • Waveform display for visual timing reference
  • LRC timestamp editing — stamp, nudge (fine/medium/rough), merge, split, delete, undo
  • Plain text mode for unsynced lyrics
  • Reads and writes lyrics tags on MP3, FLAC, OGG, OPUS

lyrsmith screenshot

Requirements

  • Python 3.13 (3.14 is not yet supported due to a ctranslate2 bug)
  • libmpv (audio playback)
  • FFmpeg libraries (waveform decoding via PyAV)

On Fedora/RHEL:

dnf install mpv-libs ffmpeg-free

On Debian/Ubuntu:

apt install libmpv-dev ffmpeg

On macOS, use the Homebrew installation method below — it handles all dependencies automatically. GPU-accelerated transcription is not available on macOS; transcription runs on CPU.

NVIDIA GPU — if you want GPU-accelerated transcription, also install libcublas and make sure it is registered with ldconfig:

# Fedora example — package name may vary
dnf install libcublas
echo "/usr/local/cuda-12.0/targets/x86_64-linux/lib" | sudo tee /etc/ld.so.conf.d/cuda.conf
sudo ldconfig

Install

macOS — Homebrew (experimental)

brew tap triluch/lyrsmith
brew install lyrsmith

All dependencies (mpv, ffmpeg, Python 3.13) are installed automatically.

Linux / from source

Using uv:

git clone https://github.com/triluch/lyrsmith
cd lyrsmith
uv tool install . --python 3.13

Or with pipx:

pipx install .

Linux — AppImage

Download the latest lyrsmith-*-x86_64.AppImage from https://github.com/triluch/lyrsmith/releases, then run:

chmod +x lyrsmith-*-x86_64.AppImage
./lyrsmith-*-x86_64.AppImage

Updating

cd lyrsmith
git pull
uv tool install . --python 3.13 --reinstall

Usage

lyrsmith [DIRECTORY]

If no directory is given, the last-used directory is restored (or the current working directory on first run).

Press F1 inside the app to see all keybindings.

Recommended model: large-v3-turbo (the default) gives good results at reasonable speed. large-v3 is noticeably more accurate for tricky lyrics but slower and needs more RAM. Configure via F2.

Voice Activity Detection (VAD) is disabled by default. If you're getting a lot of repeated lines or hallucinated text in the transcription, try enabling it with a low threshold like 0.000050.0001 — this pre-filters the audio before Whisper and can significantly improve results on tracks with instrumental sections or background noise.


And yeah, of course it is slopped out, what did you expect in current times?

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lyrsmith-0.3.0.tar.gz (92.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lyrsmith-0.3.0-py3-none-any.whl (112.1 kB view details)

Uploaded Python 3

File details

Details for the file lyrsmith-0.3.0.tar.gz.

File metadata

  • Download URL: lyrsmith-0.3.0.tar.gz
  • Upload date:
  • Size: 92.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for lyrsmith-0.3.0.tar.gz
Algorithm Hash digest
SHA256 e68273034ad54b8d1caf9e9374e3ef4af8d4fa6ac7ffd723bd2023a4b1f9f185
MD5 e159e2426a09ab4e4ce701b26073b8a0
BLAKE2b-256 87109d45c80590aee70f5ded8bbeec1cba9ef3a7cb96a308257e0ff2f41edc0c

See more details on using hashes here.

Provenance

The following attestation bundles were made for lyrsmith-0.3.0.tar.gz:

Publisher: release.yml on triluch/lyrsmith

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file lyrsmith-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: lyrsmith-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 112.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for lyrsmith-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 256fdfd5abeae0f8c7255b025693d93e54a71b99c760b8f74a273c16c4d84a85
MD5 231eec5046524c4ff997c630411fcfad
BLAKE2b-256 4b62ff2abcd0fb553bfb1a388342910f87fa24cfae34665547482196bb4fa773

See more details on using hashes here.

Provenance

The following attestation bundles were made for lyrsmith-0.3.0-py3-none-any.whl:

Publisher: release.yml on triluch/lyrsmith

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page