Skip to content

nightingale

v0.9.0 Feature

This release adds 3 notable features for engineering teams evaluating rollout.

✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

ai demucs karaoke karaoke-application karaoke-game machine-learning
+11 more
machine-learning-algorithms party react rust shadcn tailwind tauri tauri-app whisper whisper-ai whisperx

Summary

AI summary

Updates docker/compose.yaml, docker/Dockerfile, and https://nightingale.cafe/docs/docker.html across a mixed release.

Full changelog

Features

  • Docker support for self-hosted web mode — a multi-stage docker/Dockerfile and docker/compose.yaml build the server binary (with the React bundle embedded) into a container that runs without the systemd/Caddy/Avahi installer. The same Dockerfile produces both a CPU image (debian:bookworm-slim) and a CUDA/GPU image (via --build-arg RUNTIME_BASE=nvidia/cuda:... plus the NVIDIA Container Toolkit). The ML toolchain still bootstraps on first launch into the mounted /data volume, so the image stays small and dependencies persist across recreates. The data folder is fixed to /data (the setup wizard skips the data-folder step) and the music library follows a /songs convention via a new NIGHTINGALE_LIBRARY_PATH env var (defaulted in the image) — mount your music at /songs and Nightingale pins a folder source there on startup and hides the in-app source pickers, so nothing needs typing in the browser. Mic scoring still needs a TLS reverse proxy for a secure context. See docs/docker.
  • Cantonese (yue) lyric support — Cantonese now joins Japanese, Mandarin, and Korean as a first-class CJK language. It rides the same per-character forced-alignment path as Mandarin (reusing the Chinese wav2vec2 model and jieba tokenization, since Cantonese is written in the same Han characters), works with the Qwen alignment backend, and shows Jyutping romanized readings above each token. The per-song language override now lists Mandarin and Cantonese separately (the former "Chinese" label). Existing installs should re-run setup so the new Cantonese romanization dependency is installed.
  • Experimental CTC forced-alignment backend — Settings → Analysis → Forced alignment can now use torchaudio's forced_align C++/CUDA kernel instead of WhisperX's pure-Python Viterbi. It computes each word's start/end points with a different algorithm, and is much faster on CUDA GPUs and Apple Silicon (where WhisperX alignment runs on the CPU). It also speeds up LRCLIB lyrics alignment and automatically falls back to WhisperX on error. Defaults to WhisperX, so existing behavior is unchanged unless you opt in.
  • Experimental Qwen forced-alignment backend — Settings → Analysis → Forced alignment can also use Qwen3-ForcedAligner-0.6B, a non-autoregressive model that timestamps every token in one forward pass from audio + transcript (no wav2vec2, no phonetic step). It's fast and covers 11 languages, runs on CUDA and Apple Silicon MPS (as well as CPU), and falls back to WhisperX for unsupported languages, over-length audio, or any error. Timing quality varies song to song, but it can do better on CJK. Defaults to WhisperX, so existing behavior is unchanged unless you opt in. Existing installs should re-run setup so the new Qwen dependencies are installed.
  • Adjustable vocal-detection sensitivity — Settings → Analysis → Vocal detection sensitivity exposes the RMS threshold that decides where a song's vocals start and end. Lower it when quiet intros, outros, or soft singing get trimmed; raise it to cut more silence. Defaults to 15%, matching previous behavior.

Improvements

  • Clearer analysis settings — the vocal separator, transcription model, and alignment model options now have plain-language descriptions explaining what each choice actually changes.
  • Smoother lyrics display across short pauses — a finished line now stays on screen with its already-sung word colors until the next line's lead-in begins, instead of vanishing the moment it ends. Longer gaps still show the countdown as before.

Fixes

  • Fixed Settings page focus rings: tabs, buttons, and the beam/batch number pickers no longer show clipped borders or a brief shrink flicker on hover. The page now uses the same focus-ring style as the rest of the app (removing the ring-offset that got clipped by the scroll containers) and the number pickers have room for the ring.

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track nightingale

Get notified when new releases ship.

Sign up free

About nightingale

All releases →

Beta — feedback welcome: [email protected]