Communitygithub.com

SonuSV7719/real-sound

为代码生成的视频和动画构建专业级、真实的音轨,基于真实的许可录音——适用于使用 Remotion、HyperFrames、three.js、GSAP 或任何渲染工具制作的电影、产品演示、功能视频、UI 教程、Logo 片头、解说、预告片和动画短片。

real-sound 是什么?

该技能旨在充当视频/动画项目的“听觉主管”,确保所有声音都源自真实的、经过专业录制或许可的音频素材,而非合成或随机生成。它包含一套从剧照到最终混音的完整流水线,由多个专门的子代理(如声音设计师、音乐总监、质量保证审计员)协同工作,并由一个主代理(Lead)进行全局协调。整个工作流程是确定性的,通过代码来选择和排布声音,并根据预定义的规则和测量指标(如响度、同步、音色)进行质量把关,同时辅以基于耳听的感知评估。该技能基于一个名为“earshot”的 Python 软件包和一系列脚本实现,这些脚本在标准虚拟环境中运行,支持对音轨进行拆分、混合、母带处理、审核和最终复用。主要功能包括:从视频代码中提取提示点列表、撰写声音概要、根据许可协议从 Freesound 和 Mixkit 等来源获取素材、进行音乐节拍对齐与编辑、按照设计规则对各分类声音进行混音、进行主客观质量检查与修复,以及生成最终的合法的音轨和对应的致谢与描述文件。

兼容平台~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/SonuSV7719/ai-video-studio/tree/master/skills/real-sound

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

real-sound 是做什么的?

你是一部无法直接聆听的电影的音效总监。音轨完全由真实的、专业录制或制作的音频(一条授权音乐轨、真实的拟音和音效、真实的环境音)构成,通过确定性混音器放置在画面的提示帧上,通过测量而非聆听来评估,经过五个透镜的审视,由一个代理修复,再母带、添加鸣谢并复用。代码负责选择、修剪、放置、调整电平、声相、均衡、通过重采样变速、对音乐进行时间伸缩和母带处理;代码永远不会生成声音。

标准为专业发布级电影:屏幕上的每个动作都有对应的声音,使用单一材质调色板,音乐高潮落在主角揭示时刻,其他位置保持克制,Logo 最终呈现,尾部渐入静默。规则请参阅 references/sound-design.md(以及 earhot 仓库中的 docs/launch-video-sound.md,其中包含了捆绑的参考配置文件:7 部专业发布级电影)。

以下 <skill> 指此文件夹。Python:{{PY}}(及以下所有提示模板中)指一个安装了 numpy、scipy、soundfile 和 earhot 包的解析器:即 earhot 仓库的虚拟环境(Windows 上为 <earshot repo>/.venv/Scripts/python.exe,其他系统上为 <earshot repo>/.venv/bin/python),或任何可以通过 <python> -c "import earshot" 命令的 Python。在 Windows 上,裸 python 通常是 Microsoft Store 存根程序,会失败。在执行命令或向子代理传递提示时,请用完整路径替换 {{PY}}(其他占位符列在 references/process.md 中)。使用 -I 参数运行脚本(隔离模式:确保下载的文件不会遮蔽任何模块);除 scripts/licences.py(audit.py 和 credits.py 导入的许可证策略模块)外,每个脚本都支持 --help。

流程

步骤负责人输出关卡
0. 提示列表主管out/cues.json从画面代码计算出的同步帧
1. 概要主管audio/SOUND_BRIEF.md每个提示都有声音需求(或“无”)
2. 资源获取(按类别并行)资源获取代理audio/assets/<cat>/,清单清单每个文件都经过测量 + earhot realness “真实或专业制作”(在所用修剪片段上;不确定的结果需附带证据并在清单中写出修剪级的重新检查)
3. 许可证审计审计员audit.jsonaudit.py 对影片使用的所有资源返回退出码 0
4. 音乐剪辑音乐主管audio/design/music.json网格已验证,高潮落在揭示帧上,拼接点干净
5. 设计片段(按类别并行)设计师audio/design/<cat>.json单独渲染 + QA 通过
6. 整合主管音轨、分轨、报告、追踪记录母带关卡(±0.5 LU, <= -1.5 dBTP)
7. QA + 监听主管out/qa/qa.json,earshot 时间线/波形图/评价无 QA 失败
8. 评论(5 个透镜,并行,只读)评论员排名后的问题 + 经过测试的操作
9. 修复一位修复员设计文件QA:无回归
10. 母带、鸣谢、复用主管CREDITS.md、描述文本、最终影片鸣谢脚本退出码 0,音画同步无延迟

每一步的细节、角色以及每个评论员的衡量标准:references/process.md。每个子代理的提示都是 templates/prompts/ 中的待填写概要。

0. 从画面生成提示列表

每个声音都位于画面代码计算出的帧上:接触帧、弹出动画的 50% 帧、移动的速度峰值、上升音的冲击点、字标变得可读的帧。Cinetic 电影已有 out/cues.json(通过 export-cues.ts 生成);对于其他情况,请根据时间线常量编写相同格式(templates/cues.json)。稳定的 ID(act:thing:n)允许规则通过正则表达式匹配动作类别。

1. 概要

将 templates/SOUND_BRIEF.md 复制到 audio/SOUND_BRIEF.md:概念(调色板、音乐弧线、位置)、画面映射(每个提示:屏幕上是什么、声音需求)、环境音区域、允许的许可证、质量标准、文件布局。它是每个子代理都会逐字收到的合同。请选择品牌的个性行(references/sound-design.md §3)。

2. 资源获取,按类别(templates/prompts/sourcing.md)

典型的发布级影片类别:ui(点击、轻触、切换、弹出)、keyboard(键盘)、motion(嗖嗖声、上升音)、impacts(揭示冲击、Logo)、ambience(环境音)、music(音乐);角色电影会增加 foley(拟音)及其世界和物体。资源来自:Freesound(CC0 / CC BY;HQ 预览 cdn.freesound.org/previews/<id//1000>/<id>_<user>-hq.ogg)、Mixkit(WAV assets.mixkit.co/active_storage/sfx/<id>/<id>.wav)、音乐库;在每个项目自身的页面上阅读许可证(references/licences.md);礼貌地按顺序下载;每个文件都测量:

{{PY}} -I <skill>/scripts/analyze.py audio/assets/ui/* --png out/audio-review/ui --out out/audio-review/ui.json
{{PY}} -m earshot realness audio/assets/ui/                  # 关卡:“真实或专业制作”(重新检查修剪片段:--start --end)
{{PY}} -m earshot rank "a single crisp trackpad click" audio/assets/ui/ --top 5
{{PY}} -m earshot match <file> "a soft cork pop" --alts "a gunshot" "a balloon burst"
{{PY}} -m earshot find <long take> "a single mechanical key press" --top 8   # 修剪片段;跳过任何标记为头部剪切/尾部剪切的片段

3. 许可证审计(templates/prompts/licence_audit.md)

审计员记录每个页面上显示的内容(licence_seen、licence_confirmed)到 audio/assets/manifests/audit.json;脚本检查其余部分(分类、ID 与 URL 匹配、文件解码、时长、鸣谢行):

{{PY}} -I <skill>/scripts/audit.py --root . --report out/qa/mix_report.json [--fetch]

允许的许可证:CC0、公共领域、CC BY 2.0-4.0、Mixkit 免费许可证、Pixabay。禁止的许可证:NC、ND、SA、Sampling+、个人、自定义、有争议。未验证 = 阻止。

4. 音乐(templates/prompts/music_supervisor.md)

一条与影片结构匹配的授权音轨。根据影片标准(templates/arc.json)编写音乐弧线,然后:

{{PY}} -I <skill>/scripts/arrange.py audio/assets/music/<track> --film-bpm 120 --arc audio/arc.json --out out/audio-review/music/arrange.json

该脚本会调整节奏,将网格移动到测量到的起始点(节拍检测器延迟 20-50 毫秒),建议下拍相位,将影片的下拍锚定在最强的下拍候选上,并在小节线上起草分段(一个可直接粘贴的 music 块)。下拍是薄弱点:当脚本输出低置信度时(在其测试过的一个音轨上,它曾偏差了半小节),请根据第一个音符、段落入口和弦变化表(在 --phase N 参数帮助下)从两个打印的网格中做出决定,并使用 --phase N 重新运行。然后根据判断进行剪辑:每个拼接点处的和声连贯,下拍落在主角帧上,最终和弦落在 Logo 上,tail_fade 渐弱至结尾。

5. 设计片段,按类别(templates/prompts/designer.md)

audio/design/<category>.json 包含样本(修剪片段)、切片(将一个包含多次敲击的长录音切成单次敲击)、音色库、关于提示事件的规则、自由放置、环境音底垫、音乐块。请参考每个键的说明和真实示例:references/design-format.md;一个完整的发布级视频示例:templates/design_fragment.json(其文件名是占位符,如 mk-0000_mouse-click.wav:一旦每个占位符被您清单中的真实录音替换,它就会渲染;在此之前,mix.py 会停止运行并列出缺失的文件)。 单独验证:

{{PY}} -I <skill>/scripts/mix.py --only ui --dump out/audio-review/ui/dump        # 每个修剪片段输出为 WAV + 数值
{{PY}} -I <skill>/scripts/mix.py --only ui --trace out/audio-review/ui/adds.json --out out/audio-review/ui/solo.wav
{{PY}} -I <skill>/scripts/qa.py --only ui --report out/audio-review/ui/solo_report.json --stems out/audio-review/ui/solo_stems --trace out/audio-review/ui/adds.json --out out/audio-review/ui/qa.json
{{PY}} -m earshot timeline out/audio-review/ui/solo.wav --cues out/cues.json

6-7. 整合、QA、监听

{{PY}} -I <skill>/scripts/mix.py --root . --design audio/sounddesign.json --cues out/cues.json --trace out/qa/adds.json
{{PY}} -I <skill>/scripts/qa.py --layers                      # 点击、边缘、可听度、刺耳度、响度、覆盖率、同步、密度
{{PY}} -I <skill>/scripts/qa.py --listen --realness --video out/film.mp4   # + earshot 时间线、波形图、评价、realness
{{PY}} -m earshot critique out/audio/soundtrack.wav --video out/film.mp4    # 与专业发布级影片的评分卡
{{PY}} -m earshot sheet out/audio/soundtrack.wav -o out/qa/sheet.png --video out/film.mp4 --cues out/qa/cues_sounded.json

qa.py 将每个发现与导致该问题的规则和样本(追踪信息)联系起来。它可以在没有模型的情况下使用;--listen 添加了 earshot 的转录(out/qa/qa_timeline.txt)、注释波形图和评分卡。

8-9. 评论和修复

五个只读评论员并行工作,每个使用其自己的提示:critic_sync.md、critic_edges.md、critic_masking.md、critic_tonal.md、critic_director.md。每个都将自己的修复作为变体测试在其自己的文件夹中:

{{PY}} -I <skill>/scripts/variant.py --ops out/audio-review/critic_tonal/ops_v1.json --out out/audio-review/critic_tonal/v1 --render --qa

并返回带有确切操作和修复前后数值的排名后的问题。然后,一位修复员(fixer.md)合并操作,解决冲突,检查合并后的变体与之前的 qa.json,并应用它(variant.py --apply,原始文件备份)。请将确认的、有意为之的例外说明为 "qa_ok": "<reason>"。至少进行一轮;如果电平或音乐剪辑有更改,则进行第二轮。

10. 母带、鸣谢、复用

mix.py 使用 master.py 进行母带处理(-14 LUFS,真峰值限幅器,上限线性 0.77;门限 ±0.5 LU 且 <= -1.5 dBTP)。

{{PY}} -I <skill>/scripts/audit.py --root . --report out/qa/mix_report.json            # 退出码 0
{{PY}} -I <skill>/scripts/credits.py --root . --design audio/sounddesign.json --audit audio/assets/manifests/audit.json
node <skill>/scripts/mux.mjs --video out/film.mp4 --audio out/audio/soundtrack.wav --out out/film_sound.mp4
{{PY}} -m earshot timeline out/film_sound.mp4 --cues out/qa/cues_sounded.json          # 最终文件,已监听

CREDITS.md + out/CREDITS_description.txt(粘贴到视频描述中:CC BY 鸣谢是必须的)。mux.mjs 将画面流式复制,并将 AAC 音频裁剪至画面的时长。

发布级视频:声音映射

画面声音位于
光标移动、悬停、滚动、进度、流式文本无(音乐承载)
点击/轻触影片的一个真实点击音色,按下 + 释放大约 85 毫秒后,每个电平相同按下帧
打字一个真实的键盘,已切片;速度 <= ~12 键/秒,超过 ~25 字符/秒的词每个词一个音;音乐降低 6-10 dB每个发声的字符
卡片/芯片/徽章出现一个柔软的真实弹出或滴答声,在一系列中音高上升其移动的 50%
切换、锁定、计数器的最终值一个真实的锁存/点击/清脆的滴答声接触/锁定帧
相机缩放移动、鞭打、缩放(每影片约 2 个)一个真实的嗖嗖声,顶点在速度峰值速度峰值
硬切无
紧张到揭示音乐的铺垫,或一个真实的上升音,在冲击前 30-250 毫秒结束冲击点
主角揭示音乐的高潮(剪辑音轨使其下拍落在此处)+ 可选一个真实的冲击帧
Logo / 锁定音乐在小节线上停止或滤波,0.2-0.7 秒接近静默,一个在调性上的柔和音符,尾部渐入静默字标可读的帧

电平:-14 LUFS,AAC 编码后真峰值 <= -1 dBTP,LRA 5-9 LU,最响时刻在高潮(30-60% 位置),Logo 在其下 8-20 dB,每 10 秒约 5 个设计效果,效果干声且居中。测量后的规范以及常见的廉价迹象:references/sound-design.md。

工具

需求工具
测量录音(格式、底噪、带宽、起始点、峰值、节奏/调性)+ 频谱图 PNGscripts/analyze.py
收听录音:真实 vs 合成、听起来像什么、最佳匹配、长文件中的最佳片段{{PY}} -m earshot realness / describe / match / rank / find / compare / ab
一个文件或其中一段的电平/亮度/起始点(--start --end){{PY}} -m earshot measure(Python:from earshot import api; api.measure(...),api.find、api.realness 同理)
许可证 + 文件审计scripts/audit.py(策略在 scripts/licences.py 中)
音乐网格、下拍、小节线剪辑草案scripts/arrange.py
渲染设计(+ 单独的 --only、--dump 修剪片段、用于 QA 的 --trace)scripts/mix.py
母带处理和响度测量scripts/master.py(--measure)
客观 QA,与放置位置关联scripts/qa.py(--layers、--listen、--realness)
评论员变体、修复员的 applyscripts/variant.py
用于 CREDITS.md 和视频描述的鸣谢scripts/credits.py
将音轨放到画面上scripts/mux.mjs
收听整个混音/影片;带注释的画面;发布级影片评分卡{{PY}} -m earshot timeline / sheet / critique

文件

audio/SOUND_BRIEF.md                 合同                   (templates/SOUND_BRIEF.md)
audio/assets/<category>/             下载的录音             (<source>-<id>_<slug>.<ext>;切勿提交或发布它们)
audio/assets/manifests/<cat>.json    每个录音一条记录       (templates/manifest_entry.json)
audio/assets/manifests/audit.json    许可证审计             (templates/audit_entry.json)
audio/sounddesign.json               顶级:包含、总线、母带 (templates/sounddesign.json)
audio/design/<category>.json         每个设计师一个片段     (templates/design_fragment.json)
out/cues.json                        画面的提示事件         (templates/cues.json)
out/audio/soundtrack.wav, stems/     母带及其分轨
out/qa/                               mix_report.json, adds.json, cues_sounded.json, master.json, qa.json
out/audio-review/                     按类别和评论员分类的工作、变体、转储(审计跟踪)
CREDITS.md, out/CREDITS_description.txt

参考

  • references/process.md:角色、步骤、每个评论员衡量的内容、阈值及其来源

…[翻译截断]

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

相关技能