一間桌面練唱室,為想練習唱歌、聽見自己聲音的你打造,每次練習都聽得見進步。
VocalSync Studio 是一款桌面應用程式,結合伴奏播放、即時錄音、AI 音高偵測與歌詞同步顯示,幫助歌唱練習者視覺化自己的演唱表現。
📖 使用說明:USER_GUIDE.md|English|日本語(portable zip 內另附離線 HTML 版)
- YouTube 下載 — 直接輸入 URL 下載伴奏(自動安裝 yt-dlp + FFmpeg)
- 即時錄音 — 邊聽伴奏邊錄音,支援延遲校準
- AI 音高偵測 — 使用 CREPE 神經網路模型分析演唱音高(離線運作,不需網路)
- 音高曲線對比 — 將你的演唱與目標旋律並排顯示
- 導唱監聽 — 匯入人聲軌後可低音量跟唱參考,匯出時不混入成品
- 歌詞同步 — 支援 LRC / SRT / VTT / TXT,錄音頁可調整整體延遲並用每句
起/終快速對時 - 歌單管理 — 保存每首歌的伴奏、歌詞、旋律、導唱、同步、混音、loop、速度與升降 key;歌單頁可直接載入、修改、保存目前歌曲
- A-B 循環 — 重複練習特定段落
- 變速播放 — WSOLA 時間拉伸,不改變音高
| 層級 | 技術 |
|---|---|
| 前端 | Svelte 5 + TypeScript + Vite |
| 後端 | Rust + Tauri v2 |
| 音訊 | cpal (錄放音) + symphonia (解碼) + biquad (濾波) |
| 音高偵測 | CREPE tiny (ONNX Runtime) + PYIN (傳統演算法) |
| 訊號處理 | rustfft (FFT) + WSOLA (時間拉伸) |
| 下載 | yt-dlp CLI wrapper + SHA-256 供應鏈驗證 |
- 前往可信的 release 頁面,下載最新的
VocalSync.Studio.Portable.x.y.z.zip - 解壓縮到任意位置(例如桌面或
D:\Tools\) - 進入資料夾,雙擊
vocalsync-studio.exe即可啟動
⚠️ 資料夾結構請勿變動DirectML.dll、models/是vocalsync-studio.exe執行期會載入的依賴,不可單獨搬移到其他位置。yt-dlp / FFmpeg 透過自動安裝後會放在同一個 portable root;若要換目錄,請整個資料夾一起搬。
| 檔案 | 說明 |
|---|---|
vocalsync-studio.exe |
主程式 ← 點這個啟動 |
DirectML.dll |
ONNX Runtime 的 DirectX ML 加速 DLL(CREPE 音高偵測需要) |
models/crepe-tiny.onnx |
CREPE 音高偵測模型 |
yt-dlp.exe / ffmpeg.exe / ffprobe.exe |
使用自動安裝工具後才會出現 |
| 項目 | 版本 |
|---|---|
| OS | Windows 11 Pro 23H2 / 24H2 |
| 架構 | x86_64 |
| WebView2 | 120+(Windows 10/11 預裝) |
macOS / Linux 的 Tauri build 理論上可行(原始碼多平台),但尚未實測,也未提供 portable release。若你想在這些平台建置,請走「從原始碼建置」流程,並歡迎回報成果到 Issues。
第一次執行的 Windows SmartScreen 警告 因為目前還沒有做 code-signing 數位簽章,Windows SmartScreen 可能會跳出「已防止 Windows 保護您的電腦」的警告。 點警告視窗左上的 「其他資訊」,再按下方出現的 「仍要執行」 按鈕即可啟動。 之後同一個 exe 不會再跳此警告。 若對來源仍有疑慮,可以在 release 頁下載 zip 後用
certutil -hashfile "檔名.zip" SHA256比對同頁公布的 digest。
前置需求:
# 1. 安裝前端依賴
npm install
# 2. 開發模式
npm run tauri dev
# 3. 建置 Release
npm run tauri:build:release
# 4. 產生離線 USER_GUIDE HTML 並打包 portable zip
npm run pack:portable建置產物在 src-tauri/target/release/bundle/ 中。
npm run tauri:build:release 會輸出主程式:src-tauri/target/release/vocalsync-studio.exe。
npm run pack:portable 會輸出唯一發行包:src-tauri/target/release/bundle/portable/VocalSync.Studio.Portable.x.y.z.zip。
vocalsync-studio/
├── src/ # Svelte 前端
│ ├── components/ # UI 元件(音高曲線、歌詞面板、校準器...)
│ ├── stores/ # 狀態管理(播放、錄音、歌詞、設定...)
│ └── tabs/ # 頁面(準備、歌單、錄音、音高、關於)
├── src-tauri/
│ └── src/
│ ├── commands/ # Tauri IPC 指令
│ ├── core/ # 核心引擎
│ │ ├── audio_engine.rs # 錄放音引擎
│ │ ├── crepe_engine.rs # CREPE AI 音高偵測
│ │ ├── pyin_engine.rs # PYIN 傳統音高偵測
│ │ ├── lyrics_parser.rs # LRC/SRT/VTT 解析
│ │ ├── wsola.rs # 時間拉伸
│ │ ├── ytdlp_engine.rs # YouTube 下載
│ │ └── ...
│ └── lib.rs # Tauri 入口
└── package.json
| 按鍵 | 功能 |
|---|---|
Space |
播放 / 暫停 |
R |
開始錄音 |
Esc |
停止 |
A |
設定循環 A 點 |
B |
設定循環 B 點 |
+ |
升半音 |
- |
降半音 |
使用遇到問題、想回報 bug 或有功能建議都很歡迎,可以透過以下兩種方式聯絡:
- GitHub Issues:vocalsync-studio/issues
- 電子信箱:
himawaril2dev@gmail.com
回報時若能附上:作業系統版本、VocalSync Studio 版本、操作步驟與錯誤訊息截圖,會更容易定位問題。
About 頁的「檢查更新」是手動觸發;只有按下按鈕時才會向 GitHub Releases 查詢最新版本。
本專案以 MIT License 開源發佈,可自由使用、修改與散佈,無任何擔保。
| 元件 | 授權 | 在本專案中的用途 |
|---|---|---|
| CREPE / onnxcrepe v1.1.0 | MIT | AI 音高偵測模型(NYU MARL 開發;ONNX 轉換版本來自 onnxcrepe v1.1.0;BibTeX 引用) |
| ONNX Runtime | MIT | 執行 CREPE 模型的推論引擎 |
| DirectML | MIT | Windows 下的 ML 加速層(DirectML.dll) |
| Tauri | MIT / Apache-2.0 | 桌面應用框架 |
| Svelte | MIT | 前端 UI 框架 |
| Symphonia / cpal / rustfft / biquad 等 Rust crate | MIT / Apache-2.0 | 音訊解碼、錄放音、訊號處理 |
yt-dlp 是 youtube-dl 的社群維護 fork,以 The Unlicense 釋出(等同公有領域,CC0-like)。
- 使用方式:本專案以 subprocess / CLI 方式呼叫
yt-dlp.exe,不做靜態連結、不修改其原始碼 - 來源:
yt-dlp.exe為從 yt-dlp 官方 Releases 下載的未修改二進位檔 - 使用者責任:透過 yt-dlp 下載的內容是否合乎當地法律(著作權、YouTube 服務條款等),由使用者自行負責
- 官方完整授權文字:https://github.com/yt-dlp/yt-dlp/blob/master/LICENSE
FFmpeg 預設以 LGPL-2.1-or-later 授權釋出;若啟用特定編碼器(如 libx264、libx265)則需改為 GPL-2.0-or-later。
- 使用方式:本專案以 subprocess / CLI 方式呼叫
ffmpeg/ffprobe執行檔,不靜態連結 libavcodec / libavformat 等函式庫;因此本專案本體不受 LGPL / GPL 傳染 - 來源:預設從 gyan.dev FFmpeg Windows builds 或系統既有安裝載入。請使用者自行留意所下載 build 的具體授權版本(essentials build 通常為 LGPL;full build 含 GPL 組件)
- 修改 / 再散佈:若你要把 FFmpeg binaries 連同本專案一起散佈,需遵守 FFmpeg 的授權條款(附上授權文字、提供原始碼取得方式等)。本倉庫內未附 ffmpeg binaries,避免授權衝突
- 官方完整授權文字:https://ffmpeg.org/legal.html
本專案使用的 CREPE 音高偵測模型源自以下論文:
@inproceedings{kim2018crepe,
title={{CREPE}: A Convolutional Representation for Pitch Estimation},
author={Kim, Jong Wook and Salamon, Justin and Li, Peter and Bello, Juan Pablo},
booktitle={2018 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP)},
pages={161--165},
year={2018},
organization={IEEE}
}如果你在學術或商業研究中使用了 VocalSync 的音高偵測成果,請一併引用上述論文與 onnxcrepe 的 ONNX 轉換工作。
VocalSync Studio 僅為本地練唱輔助工具。使用者透過本工具下載、處理、轉錄的任何音訊內容,其著作權與合法使用責任均歸使用者本人。開發者不對使用者的任何不當使用負責。
如果這個工具對你的練唱有幫助,歡迎請我喝杯咖啡,讓開發可以持續下去: