一个免费、开源的多轨音频编辑器,AI 智能体可以通过 MCP 驱动它。

Audionaut demo: Claude cuts a song every 16 bars, splits the clips across two tracks and closes the gaps, then sets crossfades and a fade-out, while the user runs Auto Edit and stem separation in the app

audionaut.app·讨论·赞助

Audionaut 是一款免费、开源的桌面应用程序,用于轻松进行音频编辑和录制。无论你是在处理音乐、播客还是多轨录音,它都能为你提供精确的剪切、逐轨播放列表、灵活的多声道支持以及干净的导出——而没有完整 DAW 的沉重与复杂。Audionaut 使用现代 C++ 编写,基于JUCE框架,可在 Windows、macOS 和 Linux 上原生运行。

License: GPL v3 macOS tests Linux build Sponsor

配合 Claude 使用

Audionaut 支持MCP,因此 Claude 和其他智能体可以编辑你的会话。安装好该应用和Node.js18+ 后:

claude mcp add audionaut -- npx -y audionaut-mcp

让项目在 Audionaut 中保持打开,每次编辑都会作为一个撤销步骤到达。在 macOS 上,请将项目放在你的 Music 文件夹中。Claude Desktop 的设置和详细信息:手册,第 11 章。

检出

请务必带子模块克隆:

git clone --recursive https://github.com/kvoltmer/Audionaut.git

或者克隆后执行:

git submodule update --init --recursive

Essentia(音频分析)

分析功能(BIC 分割、起音检测、节拍跟踪)链接到Essentia子模块的静态构建。检出子模块后构建一次:

./Audionaut/Builds/build_essentia.sh

该脚本会静态构建 Essentia 的第三方依赖(较慢,重复运行时会跳过;可用FORCE_3RDPARTY=1强制),然后使用其 waf 构建系统配置并构建 Essentia 本身,输出到Submodules/essentia/build。它会按需在工作树中修补 Essentia 面向 Linux 的第三方构建脚本,以适配 macOS/Apple Silicon,因此之后 essentia 子模块会显示为 dirty——不要提交这些更改。

前置条件:

  • Python ≤ 3.11—— Essentia 自带的 waf 需要distutils,该模块在 Python 3.12 中已被移除。脚本会自动选择合适的解释器;可用PYTHON=... ./Audionaut/Builds/build_essentia.sh覆盖。
  • pkg-config(例如brew install pkg-config)
  • 推荐 CMake 3.x—— 一些第三方依赖附带的 CMakeLists 非常老旧,CMake 4.x 会拒绝(例如pip install "cmake~=3.31.0")。

构建 Essentia 是可选的:不构建它时,ESSENTIA_ENABLED会自动检测为关闭,应用和测试将在分析功能禁用的情况下编译。

demucs.cpp(音轨分离)

音轨分离运行demucs.cpp,这是 Meta 的 Demucs 的 C++ 移植版,直接从Submodules/demucs.cpp子模块编译——无需单独的构建步骤。它需要该子模块内置的 Eigen(Submodules/demucs.cpp/vendor/eigen,一个嵌套子模块,由--recursive获取);CMake 构建会检测到它并设置AUDIONAUT_ENABLE_DEMUCS相应地。模型权重不在仓库中:应用在首次使用时将它们下载到其Models文件夹中,或者用以下命令将 CLI 指向一份副本--model。

构建

Xcode— 打开位于此处的 Xcode 项目:

Audionaut/Builds/MacOSX/Audionaut.xcodeproj

Visual Studio 2026— 打开位于此处的 Visual Studio 解决方案:

Audionaut/Builds/VisualStudio2026/Audionaut.sln

Linux Makefile— 安装依赖:

sudo apt install libasound2-dev libjack-jackd2-dev ladspa-sdk libcurl4-openssl-dev libfreetype-dev libfontconfig1-dev libx11-dev libxcomposite-dev libxcursor-dev libxext-dev libxinerama-dev libxrandr-dev libxrender-dev libwebkit2gtk-4.1-dev libglu1-mesa-dev mesa-common-dev libxi-dev libegl-dev

然后编译:

cd Audionaut/Builds/LinuxMakefile/
make CONFIG=Release -j8

测试

参见Catch2 测试 README。

命令行工具(audionaut-cli)

audionaut-cli为脚本、CI 和 AI 智能体提供对.audium项目的无头访问 — 无 GUI,无音频设备。它与测试一起构建:

cmake -B build -S Audionaut/Catch2Tests
cmake --build build -j8 --target AudionautCli
./build/AudionautCli_artefacts/AudionautCli --help

每个命令都接受--json以在 stdout 上精确输出一个机器可读的结果信封({"ok": true, "result": ...}或{"ok": false, "error": ...}),所有日志输出到 stderr,外加--quiet。退出码:0成功,1操作失败,2用法错误,3此构建中功能不可用(例如analyze没有 Essentia)。选项值可以以--opt value或--opt=value的形式给出。

audionaut-cli create  song.audium --channels 2
audionaut-cli import  song.audium take1.wav take2.wav --position 4.5
audionaut-cli info    song.audium --json
audionaut-cli analyze song.audium --types sbic,beat_degara
audionaut-cli auto-edit song.audium --track 0 --measures 4
audionaut-cli assemble  song.audium --duration 60 --mode random
audionaut-cli split   song.audium --at 23              # bar 23; --unit beats|seconds|clocks
audionaut-cli create-region song.audium --name chorus --start 17 --end 25
audionaut-cli set-region  song.audium --region chorus --rename drop --length 8
audionaut-cli place-clip  song.audium --region drop --at 33
audionaut-cli move-clip   song.audium --region drop --to 41
audionaut-cli remove-clip song.audium --at 41 --track 0
audionaut-cli clip-gain   song.audium --region drop --gain -6 --db
audionaut-cli clip-fades  song.audium --region drop --fade-in 1 --fade-out 2 --unit beats
audionaut-cli separate  song.audium --track 1                  # Drums/Bass/Other/Vocals tracks; needs the Demucs model
audionaut-cli export  song.audium -o mix.wav --sample-rate 48000 --bit-depth 24

一个典型的智能体流程:create→import→analyze→auto-edit/assemble→export,检查每个ok信封中的--json。由 CLI 写入的项目可在 GUI 应用中打开,反之亦然。

最终用户文档位于用户手册。

CLI 调用在与应用相同的严格选择加入同意下报告匿名使用统计数据(一个cli_command事件:动词和退出码)— 除非在应用设置中授予了同意,否则不会发送任何内容。设置AUDIONAUT_DISABLE_ANALYTICS=1可无论如何关闭 CLI 的报告(CI 环境、脚本)。

The主 Audionaut 应用也接受相同的动词(Projucer 风格):用动词运行应用二进制文件,它会无头执行并以该命令的退出码退出,即使 GUI 实例已打开 — 文件参数或无参数则照常启动 GUI。

./Audionaut.app/Contents/MacOS/Audionaut export ~/Music/song.audium -o ~/Music/mix.wav

注意:macOS 应用是沙盒化的,因此其应用内 CLI 只能访问受权限覆盖的位置,例如~/Music;独立的audionaut-cli构建则没有此类限制。在 Windows 上,应用是 GUI 程序 — shell 提示符会立即返回,输出与其交错;在那里进行脚本编写时,优先使用audionaut-cli。

许可证

Audionaut 采用 GPL3(或更高版本)和商业许可证的双重许可 — 参见LICENSE.md了解详情。

贡献

欢迎贡献 — 参见CONTRIBUTING.md了解如何开始以及所需的贡献者许可协议(CLA.md)。

支持

如果 Audionaut 对你有用,请考虑赞助其开发— 赞助直接为开发时间提供资金,并保持项目的可持续性。