# OpenTune
**Repository Path**: wslrj/OpenTune
## Basic Information
- **Project Name**: OpenTune
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: AGPL-3.0
- **Default Branch**: standalone
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-07-07
- **Last Updated**: 2026-07-07
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
## OpenTune – AI 智能修音软件

保留共振峰,移调不失真
OpenTune 是一款基于神经声码器的开源修音工具。与传统 DSP 算法直接移调不同,它使用 NSF-HiFiGAN 声码器在保留原始共振峰的前提下重新生成人声,即使进行极端音高调整,也能保持自然、扎实的音质。
## ✨ 亮点特性

共振峰不变:改变音高时不影响声音的底色,告别"鸭子叫"或"换人唱"的失真感
大范围移调:支持夸张的音高修正与转调,音质依然清晰稳定
AI 重合成:基于深度学习的声码器,而非传统移调
类Auto-Tune工作流:手绘、音符、锚点工具一应俱全,助你快速进入心流状态
内置类Auto-Key自动检测调式:上手即修,不修也准,修了更准
双格式输出:Standalone 独立运行 + VST3 插件(支持 ARA2 扩展)
GPU 加速推理:Windows DirectML / macOS CoreML
多语言界面:中 / 英 / 日 / 俄 / 西
开源免费:永久免费,社区驱动,持续迭代
## 🖥️ 当前状态
- 平台:Windows + macOS(Standalone 独立运行 + VST3 插件 + ARA2 扩展)
- GPU 加速:DirectML (Windows) / CoreML (macOS)
- 多音阶校正:Chromatic、Major、Minor、Pentatonic、Dorian、Mixolydian、Harmonic Minor
- AI 引擎:RMVPE 音高提取 + PC-NSF HifiGAN 声码器(ONNX Runtime 推理)
- 音频格式:WAV、FLAC、OGG、MP3 导入
- 界面语言:中文 / English / 日本語 / Русский / Español
## 🧪 测试版说明
这是早期测试版本,可能存在少量 bug,性能也尚未完全优化。欢迎下载试用,并通过 Issues 或 Discussion 提出宝贵意见、功能需求或使用中遇到的问题。我们会根据反馈积极改进。
已知限制:
- 首次加载模型时会有短暂延迟(GPU 初始化)
- 超长音频(>10 分钟)的处理时间较长
- VST3 ARA 模式需要宿主支持 ARA2(如 Studio One、Logic Pro)
## 🧠 项目理念
AI 的存在是为了帮助人,以人为本,带来更好的创作体验。
在 AI 已经深度介入音乐制作的今天,混音和音频编辑却仍常受限于录音质量,耗费大量时间。OpenTune 希望通过开放的技术,让每一位创作者都能更自由地处理人声,把精力放回音乐本身。
## 📥 下载与使用
请前往 [Releases](https://github.com/YuFeng926/OpenTune/releases) 页面下载最新安装包。
### Windows
解压 ZIP 包后直接运行 `OpenTune.exe`,需保持 `models/`、`D3D12/`、DLL 文件与 exe 同目录。
将 `OpenTune.vst3` 文件夹复制到 `C:\Program Files\Common Files\VST3\` 即可在 DAW 中加载插件。
### macOS
1. 下载 `OpenTune--macOS-arm64.dmg`,双击挂载。
2. 在挂载出的磁盘窗口中双击 **install.command**(如首次执行被 Gatekeeper 拦截,请到「系统设置 → 隐私与安全性」点击 *仍要打开*;或在 DMG 窗口右键脚本 → *打开*)。
3. 终端会自动执行:
- 把 `OpenTune.app` 拷贝到 `/Applications/` 并去除 quarantine 属性;
- 询问是否同时安装 VST3。同意后会请求管理员密码,把 `OpenTune.vst3` 安装到系统级 `/Library/Audio/Plug-Ins/VST3/`(DAW 全局可见);
- 询问是否立即启动 Standalone。
4. 安装完成后即可弹出并丢弃 DMG。如需更新,重新执行该脚本会覆盖旧版本。
> ⚠️ Release 包目前为 ad-hoc 签名(未做 Apple Notarization),首次启动可能弹出「无法验证开发者」提示。`install.command` 会自动剥离 quarantine 标志,若你绕过脚本手工拖拽 `.app`,则需要执行:
>
> ```bash
> xattr -rd com.apple.quarantine /Applications/OpenTune.app
> xattr -rd com.apple.quarantine "/Library/Audio/Plug-Ins/VST3/OpenTune.vst3"
> ```
### 运行时文件结构(Windows)
```
OpenTune/
├── OpenTune.exe
├── onnxruntime.dll ← ONNX Runtime (内置 DirectML)
├── DirectML.dll ← DirectML 运行时
├── D3D12/
│ ├── D3D12Core.dll ← DirectX Agility SDK
│ └── D3D12SDKLayers.dll
├── models/
│ ├── rmvpe.onnx ← 音高提取模型
│ └── hifigan.onnx ← 声码器模型
└── docs/
└── UserGuide.html
```
## 🔨 构建说明
### 环境要求
| 需求 | Windows | macOS |
|------|---------|-------|
| **系统** | Windows 10 1903+ | macOS 14.0+ (Sonoma) |
| **架构** | x64 | arm64 (Apple Silicon) |
| **编译器** | Visual Studio 2022 (MSVC 17+) | Xcode 14+ / Apple Clang |
| **CMake** | 3.22+ | 3.22+ |
| **C++ 标准** | C++17 | C++17 |
| **构建系统** | MSBuild (VS Generator) | Xcode |
> ⚠️ **Windows 构建必须使用 Visual Studio Generator + MSBuild**,不支持 Ninja 或其他生成器。
### 依赖准备
```bash
git clone -b standalone https://github.com/YuFeng926/OpenTune.git
cd OpenTune
```
> **重要:所有三方依赖均不在 Git 仓库中**(`JUCE-master/` 与 `ThirdParty/` 已加入 `.gitignore`,避免数百 MB 二进制 blob 进入历史)。请按下列步骤分别获取并放置到指定路径。
>
> **CMake 自动检测:** 依赖按下方规范放置后,配置时**无需任何 `-D` 覆盖**。CMakeLists.txt 在缓存路径失效时会自动 fallback 到 `ThirdParty//` 的 bundled 默认路径。
#### 1. JUCE Framework
克隆到项目根目录(**JUCE 例外,不在 `ThirdParty/`**),文件夹名必须为 `JUCE-master`:
```bash
git clone https://github.com/juce-framework/JUCE.git JUCE-master
```
#### 2. ARA SDK
```bash
cd ThirdParty
git clone --recursive --branch releases/2.2.0 https://github.com/Celemony/ARA_SDK.git ARA_SDK-releases-2.2.0
cd ..
```
#### 3. r8brain Resampler
```bash
cd ThirdParty
git clone https://github.com/avaneev/r8brain-free-src.git r8brain-free-src-master
cd ..
```
#### 4. ONNX Runtime (v1.24.4)
本项目需要 **两个** ONNX Runtime 包(Windows):CPU 版提供头文件和 `.lib`,DML 版提供运行时 `onnxruntime.dll`(内置 DirectML 支持)。
**Windows** — 下载并解压到 `ThirdParty/`:
| 包 | 链接 | 解压到 |
|----|------|--------|
| ONNX Runtime CPU | [onnxruntime-win-x64-1.24.4.zip](https://github.com/microsoft/onnxruntime/releases/download/v1.24.4/onnxruntime-win-x64-1.24.4.zip) | `ThirdParty/onnxruntime-win-x64-1.24.4/` |
| ONNX Runtime DirectML | [Microsoft.ML.OnnxRuntime.DirectML.1.24.4.nupkg](https://www.nuget.org/packages/Microsoft.ML.OnnxRuntime.DirectML/1.24.4) | `ThirdParty/onnxruntime-dml-1.24.4/` |
> **提示:** 将 `.nupkg` 改名为 `.zip` 后解压。
**目录结构说明(关键路径):**
```
ThirdParty/
├── onnxruntime-win-x64-1.24.4/ ← CPU 版(编译时链接用)
│ ├── include/
│ │ └── onnxruntime_cxx_api.h ← CMake 检测此文件是否存在
│ └── lib/
│ ├── onnxruntime.lib ← 链接用
│ └── onnxruntime_providers_shared.dll
│
└── onnxruntime-dml-1.24.4/ ← DML 版(运行时 DLL + DML provider 头文件)
├── build/native/include/
│ └── dml_provider_factory.h ← DirectML EP 注册头文件
└── runtimes/win-x64/native/
└── onnxruntime.dll ← 运行时使用的 DLL(内置 DML)
```
**为什么需要两个包?**
- **CPU 包** (`onnxruntime-win-x64-1.24.4`):提供 C++ API 头文件(`onnxruntime_cxx_api.h`)和 `.lib` 导入库用于编译链接。
- **DML 包** (`onnxruntime-dml-1.24.4`):提供编译了 DirectML Execution Provider 的 `onnxruntime.dll`,运行时通过 delay-load 加载。同时提供 `dml_provider_factory.h` 头文件用于注册 DML EP。
**macOS (Apple Silicon)**:
macOS 只需一个包,CoreML EP 已内置:
```bash
cd ThirdParty
curl -L https://github.com/microsoft/onnxruntime/releases/download/v1.24.4/onnxruntime-osx-arm64-1.24.4.tgz | tar xz
cd ..
```
解压后结构:
```
ThirdParty/onnxruntime-osx-arm64-1.24.4/
├── include/
│ └── onnxruntime_cxx_api.h
└── lib/
└── libonnxruntime.1.24.4.dylib
```
#### 5. DirectML & DirectX Agility SDK(仅 Windows)
这两个 NuGet 包提供 GPU 加速推理所需的 DirectML 运行时和最新版 D3D12 支持。
| 包 | 版本 | 下载 | 解压到 |
|----|------|------|--------|
| Microsoft.AI.DirectML | 1.15.4 | [NuGet](https://www.nuget.org/packages/Microsoft.AI.DirectML/1.15.4) | `ThirdParty/microsoft.ai.directml.1.15.4/` |
| Microsoft.Direct3D.D3D12 | 1.619.1 | [NuGet](https://www.nuget.org/packages/Microsoft.Direct3D.D3D12/1.619.1) | `ThirdParty/microsoft.direct3d.d3d12.1.619.1/` |
> 下载 `.nupkg` 后改名为 `.zip` 解压。
**CMake 会检测以下关键文件:**
```
ThirdParty/microsoft.ai.directml.1.15.4/
├── include/
│ └── DirectML.h
└── bin/x64-win/
├── DirectML.dll
└── DirectML.lib
ThirdParty/microsoft.direct3d.d3d12.1.619.1/
└── build/native/
├── include/
│ ├── d3d12.h
│ └── d3dx12/ ← 辅助头文件目录
└── bin/x64/
├── D3D12Core.dll
└── D3D12SDKLayers.dll
```
#### 6. AI 模型
模型文件需放在项目根目录下的指定位置,构建时会自动复制到输出目录:
| 模型 | 源路径 | 构建后位置 |
|------|--------|-----------|
| RMVPE (F0 提取) | `models/rmvpe.onnx` | `