全部技能 / 内容创作 / 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`.

风险提醒:蓝色 · 知晓即可AI 侦查报告
作者 heygen-comGitHub heygen-com/hyperframes ↗Stars 48297许可 Apache-2.0(仓库根 LICENSE;GitHub API spdx Apache-2.0)commit b8328f9573
agent 宿主通常会约束 skill 执行权限;风险提醒为 AI 侦查观点,不构成质量或安全保证。第三方 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外部依赖

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

4风险提醒 风险提醒:蓝色 · 知晓即可

风险提醒:蓝色 · 知晓即可
  • 可自动化参数面窄:compressor/limiter/gate/bitcrush 全无 AudioParam,挂 lane 静默无效 — fx-registry.md 逐参标注缓解;'a typo'd nodeId costs you the envelope silently'——链上不存在的节点被 prune 非报错。
  • 依赖项目内 @hyperframes/core + ffmpeg,缺一 carve 不可运行 — CLI 内联 core 无法借用(SKILL 明示),需 npm i -D;离线环境需预装。
  • carve 的自动识别(id/文件名判 bed/voice)在命名不明时会拒绝而不是乱猜 — 这是设计('It refuses when it cannot tell which track is the bed'),但要求 agent 提供 --bed/--voice 显式命名。
  • 带尾效果使渲染轨超出 data-duration——同步边界需按文档预期处理 — SKILL 声明 'that is expected, not a bug',但对不熟悉 Web Audio 尾长的作者易误判为 bug。
风险提醒:蓝色,知晓即可。无凭证读取、零网络外发(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(无放置轨可混)。
    安装 agent 直装可复制
    ① 本站镜像 更新 2026-09-09
    方式 A · 人下载镜像包下载 hyperframes-audio.tar.gz
    sha256: cf9e74173b75410e…
    方式 B · JSON 格式安装指南,复制给 agent
    安装指南
    agent 读 JSON 指南后会自动从本站下载安装,无需更多说明。
    ② 上游 GitHub · 原始来源
    能访问 GitHub?直接去上游安装(实时版,可能已更新)GitHub 原始 ↗
    本页镜像锁定 commit b8328f9573;上游为实时仓库。
    来源信息 GitHub 原始
    作者 / 仓库heygen-com / heygen-com/hyperframes
    Stars48297
    最近推送2026-09-09
    本 skill commitb8328f9573
    许可Apache-2.0(仓库根 LICENSE;GitHub API spdx Apache-2.0)
    本站信息
    收录日期2026-09-06
    分类内容创作
    侦查报告2026-09-06 · 2 遍
    本站镜像与 GitHub 原始是不同来源:本站锁定 commit 快照经 /r2 分发;GitHub 为实时上游,内容可能已更新。