SuperAPI AI 工具集

hyperframes-audio

设计与创作

查看项目

更新于 10-28 21:26

技能介绍

HyperFrames Audio 是 HyperFrames 设计代理(design-agent)中的一项音频混音技能,用于在音频已经放入 HyperFrames 合成之后进行混音处理。它不负责素材的获取、生成与预处理(那属于 /media-use),也不负责剪辑时序本身(那属于 /hyperframes-core)。

用途 该技能面向已放置音轨的混音关系处理,包括:淡入/淡出、交叉淡化包络、音轨增益与音量、音量与效果自动化、闪避(ducking)与旁白挖空(voiceover carve),以及效果链的构建。其核心理念是:混音是一组关系,而不是处理器的堆叠;两个单独听起来都正确的音轨放在一起可能无法入耳,解决办法通常不是简单地把其中一个调低,而是找出它们争夺的频段并把它交给更需要的一方。

主要能力 效果以 data-fx-chain 属性写在音频/视频元素上,预览与渲染运行同一套 Web Audio 图——预览在实时上下文中运行,渲染在浏览器内的离线上下文中运行。每种效果只有一份实现,因此拖动试听时听到的就是最终写入的结果,无需二次调音。

三个属性承载全部配置,写在音频/视频元素本身,或(前两个)写在 <hf-audio-group> 总线上:

  • data-fx-chain:按信号顺序排列的效果。
  • data-automation:该音轨音量或其效果参数的包络。
  • data-fx-carve:挖空自身的设置,便于重新推导。

已提供的效果族包括:gain、EQ(highpass、lowpass、peaking、shelves)、compressor、limiter、truepeak(前瞻真峰值限制器)、gate、saturate、delay、reverb、chorus、phaser、bitcrush。

效果链是串行的:每个效果处理前一个效果的输出。因此校正性滤波应放在前面,音色处理放在中间,限制器放在最后以真正起到上限作用。

旁白挖空(Voiceover carve) 它解决的问题是:人声下方的音乐床会让人声难以听清。本能反应是把整个音乐床压低,这虽然有效,却让音乐在整个旁白期间失去存在感。挖空只取人声实际占据的几个频段,音乐床保留低频和高频,因此人声清晰的同时音乐仍然是音乐。

挖空是一种关系而非效果:设置写在音乐床(被处理的音轨)上,并指定要监听的人声,就像侧链压缩器一样——选择要变轻的音轨,再选择让它变轻的来源。绝不要把挖空放在人声轨上。

sources 是一个列表,因为音乐床通常位于整段序列之下(旁白、采访回答、第二位主持人)。它们会在测量前被汇总到音乐床自己的时钟上,因此一次分析覆盖全部人声。

针对多个剪辑 id 的挖空是错误的,应把剪辑分组后针对组进行挖空。这是一个不变量而非建议:逐个命名剪辑必须穷尽且正确,且只在下次编辑前保持正确——之后新增的旁白剪辑会在挖空感知之外播放,音乐床会静默地不再为其让路。命名组则在分析时解析成员,因此之后加入组的剪辑无需改动 sources 即可被覆盖。

保持挖空组为纯人声组:不要放音乐床、音效或音乐。组 id 在 sources 中会在每次分析时解析为当前所有成员,因此你命名的组就是之后得到的组,而不是写入时被测量的那些音轨。

多轨共用一条总线 仅靠成员关系就足以进行挖空,但若添加具有该 id 的 <hf-audio-group> 元素,组就变成真正的子混音总线:一条链、一个推子、一个自动化时钟服务于所有成员。

总线上的属性:

  • data-fx-chain:作用于汇总成员的一条链。
  • data-automation:总线上的包络,使用合成时间(composition time)。
  • data-volume:所有成员共用的一个推子(默认 1)。
  • data-label:显示名称,回退到 id。
  • data-hidden:将所有成员从混音中移除。

组自动化使用合成时间而非剪辑时间。总线没有 data-start——成员到达总线时已处于各自的合成位置——因此组通道中的 t: 0 是合成的开始,而不是任何剪辑的开始。剪辑上的通道是剪辑局部的;同样的数字在两者上代表不同时刻,这是把包络从剪辑移到其总线时需要弄对的一点。

挖空保留在剪辑上。data-fx-carve 不是组属性。被挖空的音乐床是单个音轨,由该音轨承载 data-fx-carve,并指向一个组。组与挖空在 sources 中相遇,而不是在同一个元素上。

使用方式 效果写在元素属性上,通过两个创作界面(Studio 的 Voiceover carve 控件、scripts/carve.mjs 脚本)写入属性,两个运行时(预览的实时 AudioContext、渲染的无头浏览器中的 OfflineAudioContext)通过同一套构建器读取它们。这种共享的中间层正是预览能预测渲染结果的原因。

诊断方法 当拿到一个文件并被要求“修复它”时,无法直接聆听,因此必须测量。一条规则贯穿始终:单个未知人声的绝对频谱无法被诊断。共振峰有 ±10 dB 波动,基频在 85–255 Hz 之间,句子结尾会下降 5–6 dB。这些单独看都像缺陷,但每一个都是说话者本身。

因此要比较,并与同一文件内的对象比较:如果存在干净原版就与之比较,否则与停顿处比较——间隙中可听到的是加性成分,间隙的频谱是通道而非人声。与已发布的平均频谱或合成对照人声比较是行不通的。

当既无原版也无可用静音时,静态音调缺陷确实是不确定的。应如实说明并提供符合的读数,而不是挑选一个并据此构建效果链。

从症状出发 大多数糟糕的音频是一两个问题,每个都有已提供的答案:

  • 下方有嗡嗡声或轰隆声:rumble-cut,或 80 Hz 高通。
  • 轰头、胸腔感:Tame Boominess 任务(200 Hz)。
  • 发闷、像在纸板后面:Reduce Mud 任务(250 Hz)。
  • 字词难以听清:Add Clarity 任务(3 kHz),或挖空音乐床。
  • 刺耳、令人疲劳:Soften Harshness 任务(3.2 kHz)。
  • 某些词明显更响:压缩器上的 Evenness,或 Even Out Levels。
  • 句子之间有房间底噪:room-gate。
  • 人声与音乐打架:Voiceover carve——而不是对任一方做 EQ。
  • 干涩、像没在空间里录的:room-tight 或 room-natural。
  • 只是“业余感”:voice-clean,即上述四项按顺序组合。

处理顺序原则:先减后加,滤波后调电平,电平后处理关系,音色与上限最后。每一步都会改变下一步听到的内容——在高通之前设置的压缩器会把时间花在追逐隆隆声上。

按问题而非名称选择效果族

  • 滤波器(highpass、lowpass、peaking、lowshelf、highshelf)决定音轨被允许占据哪些频率。这是处理两个来源碰撞的首选工具,因为碰撞发生在频段上。
  • 动态(gain、compressor、limiter、truepeak、gate)决定音轨电平随时间的行为。limiter 跟随电平且无前瞻,快速或采样间峰值可能越过其上限;用于交付上限时应使用 truepeak,它前瞻并测量采样间峰值。gate 移除阈值以下的内容,用于在乐句之间静音房间底噪。
  • 非线性(saturate、bitcrush)改变波形形状,增加原本不存在的谐波。用于需要音色或颗粒感而非校正时。
  • 时间类(delay、reverb、chorus、phaser)把音轨放入空间或赋予宽度。这些最容易破坏混音,因为尾音或失谐副本会占据人声需要的空间。

适用场景 适用于在 HyperFrames 合成中已放置音频的混音工作:旁白与音乐床的关系处理、多轨共用总线处理、音量与效果自动化、以及按症状选择预设或命名任务进行修复。

限制

  • 不负责素材的获取、生成与预处理(属于 /media-use)。
  • 不负责剪辑时序本身(属于 /hyperframes-core)。
  • 不提供自动波形同步或漂移校正。
  • 预设目录中明确不覆盖去齿音(de-essing)、降噪、音色匹配。
  • 当既无原版也无可用静音时,静态音调缺陷无法确定。
  • 关于具体收费、价格、平台支持范围等信息,资料中暂未提供。