英文原文正文为项目原始 README(英文),本站后续会翻译为中文,当前仅剔除图片与无关章节并统一排版。
从您的音乐库中的任何歌曲进行卡拉OK,由神经网络驱动。
网站 ·
下载 ·
文档 ·
更新日志 ·
Discord
Nightingale 可以将你已有的音乐变成卡拉OK。它可以分离主唱、查找或生成逐字歌词,并播放带有同步高亮、音高评分、调性和节奏控制、多玩家和动态背景的曲目。在 Linux、macOS 或 Windows 上使用原生桌面应用,或者以自托管的网页应用运行相同的体验。
亮点
- 带上你的库 — 扫描本地音频、视频和 UltraStar 文件,或连接 Plex、Jellyfin 或 Navidrome。现有的提供商和文件夹播放列表将以只读导航方式显示。
- 在本地准备曲目 — 使用 UVR Karaoke 或 Demucs 分离人声,然后使用 LRCLIB、本地或粘贴的 LRC,或自动转录和对齐歌词。
- 尽情歌唱 — 按同步歌词演唱,评分麦克风音高,调整调或节奏,混合指导人声,监控麦克风,并补偿房间延迟。
- 举办卡拉 OK 夜 — 构建播放队列,在会话模式中继续管理,切换配置文件,对比排行榜,或为两到四个本地玩家分配独立麦克风。
- 布置舞台 — 使用源视频、GPU 着色器、Pixabay 循环,或自定义图像、视频和着色器背景;重新定位和缩放歌词以及音高图表。
- 使用你现有的屏幕 — 桌面模式和自托管模式共享相同的卡拉 OK 核心,支持键盘、游戏手柄、触控,以及从手机到 4K 显示器的布局。
详细行为、支持的媒体格式、控制选项、分析器选项及当前限制请参阅 用户指南。
获取 Nightingale
| 模式 | 从这里开始 |
|---|---|
| 桌面 | 下载最新版本 |
| 自托管 Linux | 安装指南 |
| Docker | CPU 和 CUDA 镜像 |
桌面版本支持 Linux x86_64/aarch64、macOS Apple Silicon/Intel 和 Windows x86_64。自托管版本二进制文件支持 Linux x86_64/aarch64。
首次启动会准备一个隔离的 ffmpeg、Python、分析器包和所需的机器学习模型副本。不需要系统 Python 设置,但首次下载需要几 GB。GPU 加速为可选;当 CUDA 或 Apple Silicon 加速不可用时,分析会回退到 CPU。
有关设置、平台特定说明、更新和添加音乐,请参见 入门指南。如遇故障,请查看 故障排除。
文档
架构
桌面版和自托管交付共享一个 Rust 应用核心和一个 React 前端。传输适配器保持精简,因此 Tauri 和网页服务器之间的卡拉 OK 行为不会发生偏差。
flowchart LR
UI["React UI"] --> Bridge["Typed bridge / client"]
Bridge --> Tauri["Tauri IPC adapter"]
Bridge --> Web["HTTP + WebSocket adapter"]
Tauri --> API["app-api command contract"]
Web --> API
API --> Core["app-core"]
Core --> Sources["Folder / Plex / Jellyfin / Navidrome"]
Core --> Storage["SQLite library + cache"]
Core --> Analyzer["Local Python analyzer"]
分析器作为一个持久的本地进程运行,通过令牌认证的回环 IPC 避免每首歌曲启动模型的开销。分析产物按 BLAKE3 源哈希缓存,因此未更改的曲目可以重用音轨、转录、歌词和移位播放变体。
仓库布局
| 路径 | 责任 |
|---|---|
app-core/ |
共享的应用程序行为、源适配器、持久化、媒体服务、分析器编排和分析器脚本 |
app-api/ |
共享的命令契约、调度、状态、事件和错误分类 |
client/src/ |
React 界面、功能模块、类型化运行时桥接、播放和麦克风处理 |
client/src-tauri/ |
Tauri 桌面适配器和本地功能 |
client/src-server/ |
Axum HTTP/WebSocket 适配器和嵌入式网页包 |
site/ |
Astro 网站和 mdBook 用户指南 |
docker/, scripts/ |
容器和裸机自托管分发 |
开发
先决条件
| 工具 | 版本 |
|---|---|
| Rust | 1.94.1,由 rust-toolchain.toml 固定 |
| Node.js | 22.12 或更新版本 |
| pnpm | 11.2.2 |
平台构建包,包括 Windows ASIO 和 Linux WebKit 要求,列在 构建指南 中。
运行桌面应用程序
git clone https://github.com/rzru/nightingale.git
cd nightingale
pnpm --dir client install --frozen-lockfile
cargo desktop dev
为当前平台创建一个生产包,包含:
cargo desktop build
在提交应用更改之前,运行仓库检查:
pnpm --dir client format
pnpm --dir client quality
网站和指南工具与 site/ 分开运行;使用 pnpm --dir site build 来验证这些更改。
贡献
Nightingale 遵循以讨论为先的工作流程。在实现功能或行为更改之前,请先打开一个 GitHub 讨论 并等待批准。小的文档更正和明显的错误修复可以直接提交拉取请求。开始之前请阅读 CONTRIBUTING.md。
发布
匹配 v* 的标签会触发发布工作流。它会将标签与桌面清单进行验证,从CHANGELOG.md中提取发布说明,并创建包含桌面安装程序、更新程序工件和自托管服务器归档的草稿。对草稿工件进行冒烟测试,然后通过 GitHub 发布该版本。
git tag v<version>
git push origin v<version>
工作流程及其辅助脚本是工件和签名详情的规范来源。
支持项目
Nightingale 是免费、开源的,并在业余时间维护。通过 Patreon 或 Ko-fi 支持持续开发。
许可
GPL-3.0 或更高版本 — 请参阅 LICENSE。
- 本文标题:nightingale - 机器学习驱动的卡拉OK应用(带评分
- 本文链接:https://cn121.com/desktop/rzru-nightingale.html
- 原项目:rzru/nightingale 版权归原作者 rzru 及贡献者所有
- 收录信息:本站于 2026-10-18 收录本项目,本页所列协议与仓库指标均为收录当时的状态;该日期之后原项目的版本更新与协议变更,本页不作同步。
- 开源协议:收录时本项目采用 GPL-3.0(查看 LICENSE 原文),本站转载其原始文档(未改动文字,仅剔除图片与无关章节);使用、修改、分发请以该仓库 LICENSE 原文为准。基于本页内容形成的衍生作品, 须同样以该协议发布。
- 站点出处:本文首发于 OneTwoOne,收录自 GitHub 开源项目 rzru/nightingale。
- 内容说明:本页正文为原项目 README 原文(英文),本站后续会翻译为中文(当前尚未译出,仅将二级标题译为中文,便于按栏目定位;标题原文可在下方原仓库中查看),仅剔除了图片与赞助等无关章节、并把相对链接改为绝对地址;页首简介为机器翻译自仓库描述。
- 引用声明:商业转载、第三方聚合或 AI 检索训练引用时,请务必保留以上来源出处、本文永久链接,以及原项目的版权声明与许可信息。
- 下架通道:若原项目此后变更或收紧了许可协议、或作者/权利人认为本站的收录方式(译文、排版适配、简介翻译等)超出其授权范围,请通过 xyd3302001@163.com 发送下架通知,并附上项目地址与本页链接。本站核实后将第一时间删除本页内容,或改为不复制原文的目录性收录;署名更正等其他要求可一并提出。