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.2.1.tar.gz (90.3 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.2.1-py3-none-any.whl (109.6 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for lyrsmith-0.2.1.tar.gz
Algorithm Hash digest
SHA256 69e832b632ed98b0ab670a021d6ed79e120bf581c90681a5de1869cc92d51842
MD5 991d1fb96752f7d99d21ce562315ae43
BLAKE2b-256 5f10e31df56e309f5d96fd2341914e5261abb6db8c0617f7a00794b52ec30ccf

See more details on using hashes here.

Provenance

The following attestation bundles were made for lyrsmith-0.2.1.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.2.1-py3-none-any.whl.

File metadata

  • Download URL: lyrsmith-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 109.6 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.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 34196dff24595cec1ef0f8f9a94e33d61f3cee7bbb68a5eacdbc79a4c07e5ce3
MD5 bf1fdaaef03be0316d707feee55e4497
BLAKE2b-256 7cfbb705ecbd3f05fdf56adadc39169c29e7035ad8c20fe60a587b0b7e475ed0

See more details on using hashes here.

Provenance

The following attestation bundles were made for lyrsmith-0.2.1-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