让 Agent 编曲配音混音并合成完整音频作品
30.6/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/30 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add cloudoyx/any-audio该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
dsh 原生插件 · tool
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 6 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件写入剪贴板(不计风险)读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 69 处,展示前 68 条)
- 读取本地文件src/index.js:43
const content = await readFile(new URL('./skills/anyaudio-scoring.md', import.meta.url), 'utf8') - 发起网络请求lib/client.js:229
const response = await fetch(`${API}${path}`, { - 写入剪贴板lib/client.js:723
h(Btn, { onClick: async () => { try { await navigator.clipboard.writeText(state.configPath); notify(t('路径已复制')) } catch { notify(t('复制失败,请手动选择'), 'err - 读取本地文件src/host/routes.js:33
return JSON.parse(readFileSync(new URL('../../package.json', import.meta.url), 'utf8')).version - 读取密钥环境变量src/host/routes.js:202
if (!mimoConfigured && process.env.MIMO_API_KEY) mimoConfigured = true - 读取本地文件src/host/routes.js:273
if (!existsSync(path)) throw new Error(`font not found: ${path}`) - 读取本地文件src/host/routes.js:294
const doomed = await realpath(resolve(path)).catch(() => null) - 读取本地文件src/host/routes.js:295
const target = resolved && !resolved.stale ? await realpath(resolved.path).catch(() => null) : null - 读取本地文件src/host/routes.js:326
if (!target || !existsSync(target)) throw new Error(`font not found: ${target || '(empty path)'}`) - 读取本地文件src/host/routes.js:349
if (!existsSync(path)) throw new Error(`font not found: ${path}`) - 读取密钥环境变量src/host/routes.js:392
apiKey = process.env.MIMO_API_KEY ?? null - 读取密钥环境变量src/host/routes.js:431
const result = { ok: true, service: Boolean(credentials), ref: 'MIMO_API_KEY', configured: Boolean(process.env.MIMO_API_KEY) } - 读取密钥环境变量src/host/routes.js:475
MIMO_API_KEY: process.env.MIMO_API_KEY ? '(set)' : null, - 读取密钥环境变量src/tools/tts.js:16
const env = process.env.MIMO_API_KEY - 写入本地文件src/tools/tts.js:128
await mkdir(dirname(target), { recursive: true }) - 写入本地文件src/tools/shared.js:89
await mkdir(dirname(path), { recursive: true }) - 写入本地文件src/tools/shared.js:91
await writeFile(path, buffer) - 读取本地文件src/tools/shared.js:92
const info = await stat(path) - 读取本地文件src/tools/shared.js:110
text = await readFile(file, 'utf8') - 执行外部命令来自配置/变量src/tools/shared.js:139
const result = spawnSync(command, ['-hide_banner', '-version'], { encoding: 'utf8', timeout: 15000, windowsHide: true }) - 执行外部命令来自配置/变量src/tools/shared.js:154
const result = spawnSync(python, ['-c', 'import imageio_ffmpeg;print(imageio_ffmpeg.get_ffmpeg_exe())'], { encoding: 'utf8', timeout: 15000, windowsHi - 读取本地文件src/tools/shared.js:157
if (candidate && existsSync(candidate)) { - 执行外部命令来自配置/变量src/tools/shared.js:184
const child = spawn(command, args, { windowsHide: true }) - 读取本地文件src/audio/fonts.js:103
entries = await readdir(dir, { withFileTypes: true }) - 读取本地文件src/audio/fonts.js:111
const info = await stat(path) - 读取本地文件src/audio/fonts.js:132
const info = await stat(explicit) - 读取本地文件src/audio/fonts.js:159
const info = await stat(candidate).catch(() => null) - 读取本地文件src/audio/fonts.js:165
const info = await stat(candidate).catch(() => null) - 发起网络请求src/audio/fonts.js:187
response = await fetch(url, { redirect: 'follow', signal: signal ?? AbortSignal.timeout(180000) }) - 删除本地文件src/audio/fonts.js:210
await unlink(temporary).catch(() => {}) - 写入本地文件src/audio/fonts.js:213
await writeFile(temporary, Buffer.concat(chunks)) - 写入本地文件src/audio/fonts.js:214
await rename(temporary, target).catch(async (error) => { - 删除本地文件src/audio/fonts.js:215
await unlink(temporary).catch(() => {}) - 写入本地文件src/audio/fonts.js:233
await mkdir(directory, { recursive: true }) - 写入本地文件src/audio/fonts.js:236
const bytes = fromPath ? (await copyFile(resolve(workspaceRoot ?? process.cwd(), fromPath), path), (await stat(path)).size) : await download(targetUrl - 读取本地文件src/audio/fonts.js:236
const bytes = fromPath ? (await copyFile(resolve(workspaceRoot ?? process.cwd(), fromPath), path), (await stat(path)).size) : await download(targetUrl - 写入本地文件src/audio/fonts.js:241
await mkdir(directory, { recursive: true }) - 删除本地文件src/audio/fonts.js:260
await unlink(path).catch(() => {}) - 读取本地文件src/audio/font-state.js:33
const parsed = JSON.parse(await readFile(statePath(), 'utf8')) - 写入本地文件src/audio/font-state.js:43
await mkdir(dirname(path), { recursive: true }) - 写入本地文件src/audio/font-state.js:45
await writeFile(temporary, `${JSON.stringify(state, null, 2)}\n`, { mode: 0o600 }) - 写入本地文件src/audio/font-state.js:46
await rename(temporary, path) - 读取本地文件src/audio/font-state.js:113
const resolvedTarget = await realpath(declared).catch(() => null) - 读取本地文件src/audio/font-state.js:118
const parent = await realpath(dirname(declared)).catch(() => dirname(declared)) - 读取本地文件src/audio/font-state.js:123
roots.push(await realpath(dir).catch(() => resolve(dir))) - 读取本地文件src/audio/font-state.js:131
const info = await stat(resolvedTarget) - 删除本地文件src/audio/font-state.js:133
await unlink(declared) - 读取本地文件src/audio/synth.js:10
const info = await stat(path) - 读取本地文件src/audio/synth.js:14
const raw = await readFile(path) - 执行外部命令来自配置/变量src/audio/tts-providers.js:88
const result = spawnSync(command, ['-e', 'process.stdout.write(process.version)'], { - 执行外部命令来自配置/变量src/audio/tts-providers.js:122
const child = spawn(runtime, [EDGE_WORKER], { stdio: ['pipe', 'pipe', 'pipe'], windowsHide: true }) - 写入本地文件src/audio/tts-providers.js:203
await mkdir(temporaryDir, { recursive: true }) - 读取本地文件src/audio/tts-providers.js:240
const parsed = parseWav(await readFile(wav)) - 删除本地文件src/audio/tts-providers.js:248
await unlink(mp3).catch(() => {}) - 删除本地文件src/audio/tts-providers.js:249
await unlink(wav).catch(() => {}) - 发起网络请求src/audio/tts-providers.js:279
const request = transport.request( - 读取本地文件src/config.js:241
info = await stat(path) - 读取本地文件src/config.js:252
parsed = JSON.parse(await readFile(path, 'utf8')) - 写入本地文件src/config.js:264
await mkdir(dirname(path), { recursive: true }) - 写入本地文件src/config.js:266
await writeFile(temporary, `${JSON.stringify(config, null, 2)}\n`, { mode: 0o600 }) - 写入本地文件src/config.js:267
await rename(temporary, path) - 读取本地文件src/tools/mix.js:35
const buffer = await readFile(path) - 写入本地文件src/tools/mix.js:66
await mkdir(dirname(target), { recursive: true }) - 执行外部命令来自配置/变量src/tools/mix.js:76
child = spawn(command, ['-hide_banner', '-i', file], { windowsHide: true, stdio: ['ignore', 'ignore', 'pipe'], signal: AbortSignal.timeout(15000) }) - 写入本地文件src/tools/mix.js:98
await mkdir(dirname(outputPath), { recursive: true }) - 读取本地文件src/tools/sfx.js:55
const info = await stat(fontPath) - 读取本地文件src/tools/sources.js:37
const names = await readdir(dir).catch(() => []) - 读取本地文件src/tools/sources.js:41
const info = await stat(join(dir, name)).catch(() => null)
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
智能体主导的音频制作工具包:采样乐器、基于时间线的编曲、音效、TTS、多轨混音和视频封装。
README
由 DeepSeek 最新模型翻译生成AnyAudio
让 Agent 做出真正的声音。
An agent-driven audio production toolkit for music, sound effects, narration, and mixing.
一套由 Agent 驱动的音频制作工具,涵盖音乐、音效、配音与混音,让 Agent 具备音频制作能力。
先听为快 · 安装 · 音源 · 语音-tts · English
AnyAudio 是面向 AI Agent 的音频制作工具。它把"声音创意"翻译成可执行的音频工程:写音符并渲染真实乐器、写台词并生成高质量语音、注入音效并编排结构、完成多轨混音。视频配乐、场景音效、独立音乐、有声书、播客、游戏音效,全部都可以用它做出来。
Agent 负责创意与编排,AnyAudio 提供将声音创意转化为实际音频作品所需的工具与执行能力。
它解决什么问题
模型已经能写代码合成声音,但很难让它听起来像乐器、像录音、像成品。AnyAudio 补的是这一段:
- 真实乐器音色:用本地音源采样渲染,而不是手写振荡器。
- 音符直接落在时间轴上:精确到毫秒,音乐、旁白、音效共用同一个时钟。
- 混音自动平衡:按顺序放置多轨,支持每轨增益、声像与淡入淡出;把某轨标为 narration 时,插件会在人声出现时自动下压其它总线;母带做峰值归一,整体不会削波。
展开完整文档(README 剩余 1 节)
AnyAudio 让 Agent 做出真正的声音。 An agent-driven audio production toolkit for music, sound effects, narration, and mixing. 一套由 Agent 驱动的音频制作工具,涵盖音乐、音效、配音与混音,让 Agent 具备音频制作能力。 先听为快 · 安装 · 音源 · 语音-tts · English AnyAudio 是面向 AI Agent 的音频制作工具。它把"声音创意"翻译成可执行的音频工程:写音符并渲染真实乐器、写台词并生成高质量语音、注入音效并编排结构、完成多轨混音。视频配乐、场景音效、独立音乐、有声书、播客、游戏音效,全部都可以用它做出来。 Agent 负责创意与编排,AnyAudio 提供将声音创意转化为实际音频作品所需的工具与执行能力。 它解决什么问题 模型已经能写代码合成声音,但很难让它听起来像乐器、像录音、像成品。AnyAudio 补的是这一段: - 真实乐器音色:用本地音源采样渲染,而不是手写振荡器。 - 音符直接落在时间轴上:精确到毫秒,音乐、旁白、音效共用同一个时钟。 - 混音自动平衡:按顺序放置多轨,支持每轨增益、声像与淡入淡出;把某轨标为 narration 时,插件会在人声出现时自动下压其它总线;母带做峰值归一,整体不会削波。 - 音效与配音:音效既可取自已安装音源的采样,也可程序化合成;语音支持 Edge TTS 与 MiMo-V2.5-TTS(官方免费中)。 先听为快 两组素材内容完全相同,一组不用插件、一组用插件。建议先听,再看数字。 GitHub 默认静音播放内嵌视频,请点一下播放器右下角的喇叭图标开启声音。 《Fly Me to the Moon》bossa nova 版:Agent 自行编曲改编 同一段 57 秒的 bossa nova。A 版不使用 AnyAudio,由模型直接写 NumPy 合成;B 版由 AnyAudio 用本地音源渲染。编曲相同,只换声音来源。 | | A 版 — 不用 AnyAudio | B 版 — 用 AnyAudio | | 峰值 / 平均电平 | -1.5 dBFS / -19.9 dB | -1.5 dBFS / -20.8 dB | | 波峰因数 | 18.4 dB | 19.3 dB | | 频谱质心 | 1,356 Hz | 1,890 Hz | | 4 kHz 以上能量 | 6.8% | 11.6% | 音乐 A 版 — 波形与频谱图音乐 B 版 — 波形与频谱图https://github.com/user-attachments/assets/9f496f67-0bd7-496e-96d9-4c2ccb4a28ebhttps://github.com/user-attachments/assets/86ac18e0-f530-452b-9711-7f7471855b80 B 版使用音源素材,声音更真实,高频细节更多、动态余量更大。 五句对白的雨夜场景:语音与音效 同一个 24 秒场景,五句对白,加上雨声、脚步声、开门声,做两遍。台词和时间完全一样。 | | A 版 — 不用 AnyAudio | B 版 — 用 AnyAudio | | 峰值 / 平均电平 | -1.5 dBFS / -27.5 dB | -1.5 dBFS / -26.1 dB | | 波峰因数 | 26.0 dB | 24.6 dB | | 频谱质心 | 5,629 Hz | 4,401 Hz | | 4 kHz 以上能量 | 55.3% | 44.0% | 语音与音效 A 版 — 波形与频谱图语音与音效 B 版 — 波形与频谱图https://github.com/user-attachments/assets/c4ae1a17-d7bc-4db1-b96a-be244fd75358https://github.com/user-attachments/assets/4fca1c9e-b373-4ab7-b18b-afe3e81ad102 B 版人声情绪和节奏更贴合场景,音效更真实,细节更多。 安装 需要 Node.js 22.19+(22.x)或 24+(DSH 运行时自带);ffmpeg 只在生成语音和封装视频时需要。 dsh plugin --profile desktop add dsh-any-audio 如果 DSH 启动的不是 desktop profile,把 desktop 换成实际使用的 profile 名。装完重启一次 DSH,它才会加载这个插件。 之后在 DSH 设置里打开 AnyAudio 页面,安装音源(默认推荐 GeneralUser GS)、切换语音引擎、调整混音默认值。安装包本身不带任何 SoundFont。 从源码安装 本地开发时用克隆仓库的方式,而不是从 npm 安装: git clone https://github.com/cloudoyx/any-audio.git cd any-audio npm install && npm run font dsh plugin --profile desktop add "<克隆目录的绝对路径>" 路径要写绝对路径(Windows 上形如 D:/any-audio),添加后同样要重启一次 DSH。npm run font 会把两套建议音源(约 72 MB)下载进共享音源库,适合想在打开设置页之前就把音源准备好的情况。 克隆下来的仓库还带一个免 DSH 的离线渲染器,适合先单独把谱子调好: node scripts/anyaudio-cli.mjs render score.json out.wav 快速开始 生成视频时像平时一样提需求,Agent 会自己调用插件进行音频渲染: 做一个 30 秒的水墨动画:石缝里的一粒种子长成树苗。配一点中国风音乐和风声,不要旁白。 可以随着调整音乐细节和混音逻辑: 古筝主旋律,弦乐铺底,大提琴走低音;人声出现时把音乐压下去。 想写歌时说清楚需求,直接调用: 帮我写一首日式 RPG 的战斗曲目,可无限循环,30 秒到 60 秒。乐器用鼓组 + 电吉他 + 弦乐。 你甚至可以从零开始制作有声小说: 帮我把《三国演义》第一章做成有声小说,旁白低沉浑厚,角色音色要有所区分,配一些简单的配乐和音效即可。 音源 仓库不打包 SoundFont。插件提供两套建议安装的音源——GeneralUser GS 作为默认基础音源,MuseScore General 作为额外的通用管弦乐音源——也支持加载放入 ~/.dsh/anyaudio/fonts 的兼容 SoundFont 音源(.sf2、.sf3、.dls)。该目录是整台机器共用的音源库,所有项目与 Agent 会话共用同一份,装过一次即可处处可用。 | 音源 | 体积 | 许可证 | 获取方式 | 说明 | | GeneralUser GS | 32 MB | GeneralUser GS License v2.0 | 一键 | 建议安装 — 默认基础音源与兜底;唯一保证带鼓组的音源 | | MuseScore General | 40 MB | MIT | 一键 | 建议安装 — 额外的通用管弦乐音源;309 个预设,弦乐与合奏更完整 | | Upright Piano KW | 27 MB(7z) | CC0 1.0 | 手动 | 单乐器钢琴库,只用于钢琴轨 | | Electric Guitar Clean | 446 MB(解压后) | CC0 1.0 | 手动 | 单乐器电吉他库 | 两套都装覆盖最广:GeneralUser GS 仍是默认音源,MuseScore General 参与管弦乐族的自动选择。后两套的下载地址与解压说明在设置页和 THIRD_PARTY_NOTICES.md;解压后保持文件名不变,插件才能识别。 语音 TTS 两个引擎,一个接口: | 引擎 | Key | 说明 | | Edge TTS(默认) | 不需要 | 免费,走 Microsoft 公共接口;需要 ffmpeg 把 MP3 转成 WAV;可能被限流,插件会重试并给出明确错误。 | | MiMo-V2.5-TTS(可选) | 普通 Open Platform API Key | 音色与风格更多;Key 存在 DSH 凭据里,只在宿主侧读取。官方免费中,可自行注册 API Key。 | MiMo 是手动选项:保存 Key 不会自动切换默认引擎,要显式选择。默认音色 mimo_default 由服务端集群决定,不同区域可能不同。本版本只支持普通 Open Platform Key。 已知限制 - 只支持 SoundFont:不支持 SFZ、Kontakt、VST;转换其它音源格式不在本版范围。 - 没有逐音符包络控制:发音与释放由预设决定;断奏用短音符加缝隙,强弱用力度与表情控制。 - 中国乐器是 GM 近似:guzheng 映射 Koto、dizi 映射 Flute、erhu 映射 Fiddle;专用音源会更好。 支持项目 AnyAudio 是一个独立开源项目。如果它对你的工作或创作有所帮助,欢迎请我喝杯咖啡,支持后续开发。 无论金额多少,都感谢你的支持。 微信支付 许可证 代码采用 MIT,见 LICENSE。 SoundFont 与第三方组件沿用各自许可证,见 THIRD_PARTY_NOTICES.md。本仓库不分发任何音源库。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
cloudoyx/any-audio
让 Agent 编曲配音混音并合成完整音频作品
相关插件 · 工具 / 效率
破甲管控台kingcharleslzy-ai/dsh-purge
dsh-purge Community · DeepSeek Harness 社区维护版:宿主兼容、状态诊断、提示词管理、更新与本机备份回滚。基于小杨 / YuJunZhiXue 的 dsh-purge。
★ 4,330已汉化DeepSeek 客户端
74.5
网文长卷lingfengQAQ/webnovel-writer
基于 Claude Code 的长篇网文辅助创作系统,解决 AI 写作中的「遗忘」和「幻觉」问题,支持 200…
★ 7,636已汉化DSH
72.2
多智能体协作HKUDS/AutoSwarm
AutoSwarm: Unify Your Agents. Unify Your Context (Codex · Claude Code · DeepSeek Harness · Muse · Grok · WorkBuddy· nanobot · and more)
★ 2,349已汉化DSH
71.6
Vox 拼贴视频生成Alisa0808/vox-director
🎬 Vox Director拼贴动效导演
★ 2,129已汉化DSH
71.4
Agent 演化引擎Q00/ouroboros
智能体 OS:智能体自己变聪明,我们只守住底线:面试准入、分阶段评估、带预算的进化循环。MCP 服务器,14 种运行时:Claude Code、Codex CLI、Gemini CLI、OpenCode、Copilot、Kiro 等。
★ 6,311已汉化DSH
71.4
智能体运行框架路由HarnessRouter/harnessrouter
智能体 harness 的统一接口。
★ 3,984已汉化DSH
71.3
这是你的仓库?认领条目