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.0.tar.gz (90.1 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.0-py3-none-any.whl (109.3 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for lyrsmith-0.2.0.tar.gz
Algorithm Hash digest
SHA256 069b31f20e27b1734f25f35f7c57793fcbfc34aa776155cbef23025bd3a361db
MD5 f6ecffe5a017501e435969b42364aa55
BLAKE2b-256 55a6334887b6cdf89fac96db213730936594509412b32313052d58ad9ad9a111

See more details on using hashes here.

Provenance

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

File metadata

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

File hashes

Hashes for lyrsmith-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 24226f1063a0a343a63afb64206e6ab3abd905df038c5e009a68b7be0e81ad14
MD5 27a571b10637df98ad05320b25f739f4
BLAKE2b-256 64470daedcae69e23e1772367c40169c57e0a0e05ec3fcda869c0fed255e7a45

See more details on using hashes here.

Provenance

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