This release adds 3 notable features for engineering teams evaluating rollout.
Published 20d
AI Agents & Assistants
✓ No known CVEs patched
✓ 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 summaryUpdates 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/Dockerfileanddocker/compose.yamlbuild theserverbinary (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/datavolume, 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/songsconvention via a newNIGHTINGALE_LIBRARY_PATHenv var (defaulted in the image) — mount your music at/songsand 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_alignC++/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-offsetthat 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
About nightingale
All releases →Related context
Related tools
Beta — feedback welcome: [email protected]