首页 / 全部技能 / 内容创作 / hyperframes-audio
内容创作 · heygen-com/hyperframes

hyperframes-audio

Use when audio already placed in a HyperFrames composition needs to be mixed: fade-in/fade-out, crossfade, track gain or volume, volume automation, ducking, a music bed that fights a voiceover (voiceover carve), effects on a track (EQ, compressor, limiter, gate, saturation, delay, reverb, chorus, phaser, bitcrush), automation envelopes drawn on a track's volume or any effect parameter, or one submix bus carrying a chain, a fader and an automation clock for several tracks at once (`<hf-audio-group>`). Don't use for sourcing or generating audio — finding BGM, SFX, or making a voiceover is `/media-use`. Don't use for clip timing or track layout, which is `/hyperframes-core`.

L4 高权限 · 分级授权与审计V1 已固定执行命令读写文件Dual-pass Audit
Author heygen-comGitHub heygen-com/hyperframes ↗Stars 48297License Apache-2.0(仓库根 LICENSE;GitHub API spdx Apache-2.0)Commit b8328f9573
管控等级描述 skill 的能力与建议配套的管控措施,不代表质量或安全认证,也不表示可用或不可用。是否使用由用户和管理者决定。不同 agent 宿主对权限的约束各不相同,请勿假定宿主一定会提供安全兜底。第三方 skill 版权归原作者,使用风险由使用者自行承担。

1实现原理 · 为什么它能做到

能力全部落在三个元素属性上:`data-fx-chain`(效果链)、`data-automation`(包络)、`data-fx-carve`(人声卡槽设置)——写属性即混音;preview 与 render 用同一 Web Audio 图(Studio 实时上下文、engine 离线上下文)执行这些属性。

skills/hyperframes-audio/SKILL.md
Effects live on the element as `data-fx-chain`, and preview and render run the same Web Audio graph — the studio in a live context, the engine in an offline one inside the browser it already drives. There is one implementation of each effect, so what you hear while scrubbing is what gets written. You never tune twice.
关键卖点『预览即所得』由 shared builders 保证:audioFxGraph.ts·buildFxChain + audioFxAutomation.ts·scheduleChainAutomation 同时喂 live AudioContext 与 OfflineAudioContext(SKILL.md 内嵌 mermaid 图表达该架构)。

效果家族 12 类:gain、EQ(highpass/lowpass/peaking/shelves)、compressor、limiter、gate、saturate、delay、reverb、chorus、phaser、bitcrush;serial 链纪律(校正滤波在前、character 中段、limiter 殿后);细节在 references/{attributes,fx-registry,presets,diagnosis}.md。

skills/hyperframes-audio/SKILL.md
The shipped effect families are gain, EQ (highpass, lowpass, peaking, shelves), compressor, limiter, gate, saturate, delay, reverb, chorus, phaser, and bitcrush.
自动化纪律:只有 Web Audio AudioParam 背书的旋钮可自动化;四个 worklet 效果(compressor/limiter/gate/bitcrush)无任何可自动参数,lane 挂上去会静默失效——fx-registry.md 逐参标注。

诊断方法论是『测量优先』:单一未知人声的绝对频谱不可诊断(formant ±10dB、基频 85-255Hz 都像缺陷),必须与同文件内参照(原声或间隙噪声)对比——并把这条写成了不可违背规则。

skills/hyperframes-audio/SKILL.md
> **The absolute spectrum of a single unknown voice cannot be diagnosed.** > Formants are ±10 dB, fundamentals run 85–255 Hz, and sentences decline 5–6 dB > as they end. Every one of those reads as a defect on its own, and every one of > them is the speaker.
SKILL 声称该结论有评测支撑:'both wrong answers in the evaluation behind this guidance came from exactly that'(对照公开平均频谱/合成对照声失败)。下钻命令/陷阱在 references/diagnosis.md。

voiceover carve(本技能核心概念)是『关系不是效果』:设置写在被处理的 bed 元素上、sources 指向 voice 组;单旋钮 strength(0..1) 派生全部(切多深/几 band/多宽/电平匹配/释放),carve.mjs 用与 Studio 面板相同的 core 分析函数(classifyAudioName/analyseCarveBands…)。

skills/hyperframes-audio/SKILL.md
The settings live on the _bed_ — the track that gets processed — and they name the voices to listen to, exactly as a sidechain compressor does: you select the track that gets quieter and pick what makes it quieter. **Never put a carve on a voice track.**
组语义是 invariant 不是建议:'A carve against more than one clip id is wrong. Group the clips and carve against the group.'——carve.mjs 见到 ungrouped 写法拒绝落盘并 stderr 说明;lint 规则 audio_carve_ungrouped_sources / audio_group_carve_attr 兜底。

headless 执行入口真实存在:`node <SKILL_DIR>/scripts/carve.mjs --comp index.html` 自动识别 bed/voice、动态默认强度 0.25、输出决定报告;需 ffmpeg 在 PATH + 项目内 @hyperframes/core(CLI 内联 core 借不到)。

skills/hyperframes-audio/scripts/carve.mjs
With no --bed/--voice it works out the tracks itself: the bed, and every voice playing over it. `--voice` may be repeated to name them instead.
carve.mjs 实测:execFileSync 调 ffmpeg(48kHz 解码)、import @hyperframes/core 的音频分析、writeFileSync 回写属性;'Same analysis functions as the panel, so the result is identical.'

渲染语义有明确边界:带尾效果(reverb/delay)使渲染轨长于源(chainTailSeconds 告知 mixer 放行尾音);无效链宁可让整个 mix 失败也不写干信号;预览相反——读不了的链放干声保 composition 可工作。

skills/hyperframes-audio/SKILL.md
What enforces those is the render: a chain it cannot parse fails the whole mix rather than quietly writing the dry signal, because a mix that sounds plausible and is wrong is worse than a refusal. Preview is the opposite by design: an unreadable chain plays dry so the composition stays workable.
验证哲学:'Almost no static gate covers the mix… a mix is verified by rendering and listening'——把音频质量验证定位在听感闭环而非静态检查。

2核心能力

01放置轨的 fade/crossfade/增益/音量包络(data-automation 断点 {t,v})
0212 类效果链(data-fx-chain,serial order)+ 预置/具名 job/一键画像(presets.md 症状表)
03语音人声卡槽 voiceover carve(band 级 sidechain、动态包络、fromCarve 标记可重跑)
04submix bus(<hf-audio-group>):一组轨共享一条链/一个 fader/一个 composition 时间自动化时钟
05headless 自动 carve(carve.mjs:--comp/--bed/--voice/--strength/--dry-run)
06lint 联动冲突检测(audio_volume_double_automation / audio_volume_tween_overrides_gain / carve 相关规则)

3外部依赖

KindDependency / Endpoint
cliffmpeg(carve.mjs 解码分析;需在 PATH)
package@hyperframes/core(音频分析函数 classifyAudioName/carveProfile/analyseCarve*;项目内 npm i -D)
network(间接)npm install @hyperframes/core 首次拉包;渲染/预览在浏览器 Web Audio 执行(无外发)

4管控建议与判定依据

建议配套管控措施
面向 Agent
分级或逐次授权,建议在沙箱运行
面向管理者
审批流程、可回滚、全程审计
判定依据(文件路径与关键语句摘要)
  • scripts/: 执行本地脚本或命令: node <SKILL_DIR>/scripts/carve.mjs --comp index.html(execFileSync 调本地 ffmpe
  • 本地工作目录: 文件读写与工件输出: carve.mjs 将 data-fx-carve/data-fx-chain/data-automation 属性写回 composition 的
审计说明: 。无凭证读取、零网络外发(URL/credential 扫描均零命中);运行的是本地 ffmpeg + 项目内 @hyperframes/core,写入仅限作者 composition HTML 与渲染产物;无删除/清盘类操作。唯一安装动作是 `npm i -D @hyperframes/core`(官方包,指引性)。按统一分档取 blue。

5第二遍独立确认

  • [ok] 『零网络』声称 — 对 skills/hyperframes-audio 全部 md/mjs 做 http(s) 扫描零命中;carve.mjs import 面仅 node:fs/path/child_process/url + 项目 @hyperframes/core,无 fetch/网络库。
  • [ok] ffmpeg 依赖与解码率声明 — carve.mjs 头注释 'Needs `ffmpeg` on PATH (to decode the audio)' + SAMPLE_RATE 48000 常量与 Studio decode rate 一致性声明复核一致。
  • [ok] fromCarve 重跑保留手工效果声称 — SKILL.md 原文 'a re-run replaces the previous carve and leaves every effect you built by hand — and every lane you drew by hand — exactly where it was' 复核一致(写链带 fromCarve tag 的机制描述)。
  • [discrepancy] 能力实现位置是否在 skill 目录内 — 首轮易误读为 skill 自带 DSP 实现;复核确认 buildFxChain/scheduleChainAutomation/carveProfile 等实现在 @hyperframes/core 与 engine(audioFxGraph.ts/audioFxAutomation.ts/audioCarve.ts 由 SKILL.md 图引用),skill 目录只含 SKILL.md + 4 references + carve.mjs(6 文件)——实现在下游包,本技能是契约+CLI 壳,已如实表述。
  • [ok] shell 注入面检查(ffmpeg 调用方式) — carve.mjs 使用 node:child_process execFileSync(argv 数组),未见 exec/shell 字符串拼接;ffmpeg 输入为本地文件路径。

6结论

  • 概念统一(关系 vs 处理器)+ 单旋钮 strength 派生整条 carve,把专业混音决策压缩成可教规则
  • 『预览即渲染』由单实现双上下文架构保证,不需二次调参
  • headless 入口与 Studio 面板共享同一分析函数,agent 路径与人工路径产出逐位一致
  • 反模式用 lint 规则固化(ungrouped carve/group 上 carve/双音量自动化),错误配置在写盘前被拦截
  • 对无法静态验证的部分诚实('a mix is verified by rendering and listening'),渲染失败优先于假装成功
  • 适合: 适合 HyperFrames composition 中已放置音轨的混音/自动化/人声卡槽(fade/crossfade/duck/carve/效果链/submix bus),尤其 narration + music bed 场景;agent 创作(headless carve.mjs)与 Studio 人工(面板)双路径。
    不适合: 不适合素材获取/生成(BGM、SFX、TTS → /media-use)与 clip 时序/轨道布局(→ /hyperframes-core);不适合无音频的纯视觉 composition(无放置轨可混)。
    Install Agent-Ready
    ① Verified Mirror 2026-09-09
    Option A · Direct DownloadDownload hyperframes-audio.tar.gz
    sha256: cf9e74173b75410e…
    Option B · Copy Guide for Agent
    install.json
    agent 读 JSON 指南后会自动从本站下载安装,无需更多说明。
    ② Upstream GitHub
    GitHub Repo ↗
    Pinned to commit b8328f9573.