mcpField
S
sound-engineer

sound-engineer

github.com/curiositech创意与媒体257349 次安装2 天前更新
代码仓库

关于 sound-engineer

sound-engineer 面向为游戏、VR/AR 和移动应用制作声音的音频工程师,涵盖空间音频、程序化声音、中间件工作流与应用音效设计,并关注性能和平台音频会话。

主要功能

  1. 01空间音频方法
  2. 02程序化声音生成
  3. 03Wwise 与 FMOD 工作流
  4. 04交互式音乐与 UX 音效设计
  5. 05移动端音频会话指导
  6. 06实时 DSP 技术

适用场景

  1. 01为 VR 场景设计空间音频
  2. 02制作多变且匹配表面的脚步声
  3. 03使用中间件构建自适应游戏音频
  4. 04为应用添加无障碍反馈音效

MCP 相关

该技能列出用于生成音效的 ElevenLabs MCP、用于检索音频文档的 Firecrawl,以及用于获取平台音频指南的 WebFetch。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/curiositech/some_claude_skills --skill sound-engineer

安装后在 Claude Code 中输入/sound-engineer确认已加载。

附带文件.claude-plugin/plugin.jsonreferences/implementations.md

详细介绍

音效工程师:空间音频、程序化声音与应用 UX 音频

面向游戏、VR/AR 和移动应用的交互媒体音频专家。专长包括空间音频、程序化声音生成、中间件集成和 UX 音效设计。

何时使用此技能

✅ 适用于:

  • 空间音频(HRTF、双耳、Ambisonics)
  • 程序化声音(脚步声、风声、环境音)
  • 游戏音频中间件(Wwise、FMOD)
  • 自适应/交互式音乐系统
  • UI/UX 音效设计(点击声、通知声、反馈声)
  • 声音品牌塑造(音频标识、品牌音效)
  • iOS/Android 音频会话管理
  • 触觉与音频协调
  • 实时 DSP(混响、均衡、压缩)

❌ 不适用于:

  • 音乐创作/制作 → DAW 工具(Logic、Ableton)
  • 语音合成/克隆 → voice-audio-engineer
  • 电影音频后期制作 → 线性编辑工作流
  • 播客剪辑 → 标准音频编辑器
  • 硬件麦克风设置 → 专门领域

MCP 集成

MCP用途
ElevenLabstext_to_sound_effects - 生成 UI 音效、通知声、撞击声
Firecrawl查询 Wwise/FMOD 文档、DSP 算法和平台指南
WebFetch获取 Apple/Android 音频会话文档

专家与新手的辨别要点

主题新手专家
空间音频“只要左右声像移动就行”使用 HRTF 卷积实现真正的 3D 音效;了解 VR 头部跟踪所需的 Ambisonics
脚步声“用 10-20 个采样”程序化合成:变化无限、占用内存极少、由参数驱动
中间件“只要播放声音就行”使用 RTPC 控制连续参数、使用 Switches 控制材质、使用 States 控制音乐
自适应音乐“对曲目做交叉淡化”水平重新编配(分层)+垂直混音(分轨)
UI 音效“随便什么点击声都行”兼顾品牌一致性、无障碍体验和触觉协调
iOS 音频“AVAudioPlayer 就够用”熟悉 AVAudioSession 类别、中断处理和音频路由变更
距离衰减线性衰减使用带参考距离的平方反比衰减;使用对数衰减提升真实感
CPU 预算“音频开销很小”了解 5-10% 的预算;HRTF 卷积开销很大(每个声源 2ms)

常见反模式

反模式:大规模使用基于采样的脚步声

表现:20 个脚步声采样 × 6 种表面 × 3 种力度 = 360 个文件(180MB) 问题:内存膨胀,游戏进行 20 分钟后就能听出重复 替代方案:程序化合成——将冲击层与质感层结合,通过参数实现无限变化 适合使用采样的情况:小型游戏、非常特殊的角色音效

反模式:对所有声音使用 HRTF

表现:对 50 个同时发声的声源进行完整的 HRTF 卷积 问题:50 × 2ms = 100ms CPU 时间;耗尽帧预算 替代方案:对 3-5 个重要声源使用 HRTF;对环境底音使用 Ambisonics;对远处或不重要的声音使用简单声像

反模式:忽略音频会话(移动端)

表现:用户接到电话后应用音频停止,且无法恢复 问题:iOS/Android 要求显式管理会话 替代方案:实现 AVAudioSession(iOS)或 AudioFocus(Android);处理音频中断和路由变更

反模式:硬编码声音

表现:PlaySound("footstep_concrete_01.wav") 问题:没有变化,无法控制参数,也无法根据情境调整 替代方案:使用带有 Switches/RTPCs 的中间件事件;对环境音使用程序化生成

反模式:UI 音效过响

表现:每次按钮点击都设为 -3dB,音量与游戏音频相同 问题:UI 音效应当轻柔,避免造成听觉疲劳;否则会违反平台指南 替代方案:将 UI 音效设为 -18 至 -24dB;使用短促的高频瞬态音;遵循系统音量设置

演进时间线

2010 年前:固定音频
  • 仅播放采样音频
  • 基础立体声声像
  • 实时处理能力有限
2010–2015 年:中间件时代
  • Wwise/FMOD 成为标准
  • RTPC 和 State 系统趋于成熟
  • 基础 HRTF 支持
2016–2020 年:VR 音频革命
  • 使用 Ambisonics 实现 VR 头部追踪
  • 空间音频 API(Resonance、Steam Audio)
  • 程序化音频逐渐普及
2021–2024 年:AI 与移动设备
  • ElevenLabs/AI 音效生成
  • AirPods 的 Apple Spatial Audio
  • 程序化音频成为 AAA 标准
  • 触觉与音频设计成为一门专业
2025 年及以后:当前最佳实践
  • AI 辅助音效设计
  • 神经音频编解码器
  • 实时语音变换
  • 根据照片定制 HRTF

核心概念

空间音频方案
方案CPU 开销质量使用场景
立体声声像~0.01ms基础远处的声音、多个声源
HRTF 卷积~2ms/声源出色近处或重要的 3D 声音
Ambisonics~1ms 总计良好VR、多个声源、头部追踪
双耳声(简单)~0.1ms/声源尚可低成本/移动设备空间音频

HRTF:将音频与测得的耳部脉冲响应(512-1024 个抽头)进行卷积。可营造逼真的 3D 定位效果,包括高度感。

Ambisonics:将声场编码为球谐函数(1 阶为 W、X、Y、Z)。具备旋转不变性,适用于多个声源,且效率高。

// Key insight: encode once, rotate cheaply
AmbisonicSignal encode(mono_input, direction) {
    return {
        mono * 0.707f,      // W (omnidirectional)
        mono * direction.x, // X (front-back)
        mono * direction.y, // Y (left-right)
        mono * direction.z  // Z (up-down)
    };
}
程序化脚步声

程序化音频优于采样音频的原因:

  • ✅ 无限变化(不会重复)
  • ✅ 占用极少内存(约 50KB,而非 5-10MB)
  • ✅ 由参数驱动(速度 → 冲击力)
  • ✅ 根据物理材质适配表面

核心合成步骤:

  1. 冲击声爆发(20ms 噪声 + 共鸣音调)
  2. 表面质感(碎石 = 颗粒感,草地 = 滤波噪声)
  3. 碎屑声(分散的微小冲击声)
  4. 表面均衡(金属 = 明亮,草地 = 沉闷)
// Surface resonance frequencies (expert knowledge)
float get_resonance(Surface s) {
    switch(s) {
        case Concrete: return 150.0f;  // Low, dull
        case Wood:     return 250.0f;  // Mid, warm
        case Metal:    return 500.0f;  // High, ringing
        case Gravel:   return 300.0f;  // Crunchy mid
        default:       return 200.0f;
    }
}
Wwise/FMOD 集成

关键抽象:

  • 事件:触发声音(脚步声、爆炸声、环境循环音)
  • RTPC:连续参数(速度 0-100、生命值 0-1)
  • 切换项:离散选项(表面类型、武器类型)
  • 状态:全局情境(音乐强度、水下)
// Material-aware footsteps via Wwise
void OnFootDown(FHitResult& hit) {
    FString surface = DetectSurface(hit.PhysMaterial);
    float speed = GetVelocity().Size();

    SetSwitch("Surface", surface, this);        // Concrete/Wood/Metal
    SetRTPCValue("Impact_Force", speed/600.0f); // 0-1 normalized
    PostEvent(FootstepEvent, this);
}
UI/UX 音效设计

应用音效设计原则:

  1. 轻柔 - UI 音效音量为 -18 至 -24dB
  2. 短促 - 大多数交互持续 50-200ms
  3. 一致 - 整个应用保持相同的音色系列
  4. 无障碍 - 不要只依赖音频提供反馈
  5. 与触觉配合 - iOS 触觉反馈应与音频特征相匹配

音效类型:

类别示例时长特征
点击反馈按钮、切换开关30-80ms轻柔、高频点击声
成功保存、发送、完成150-300ms上扬、积极的音调
错误无效、失败200-400ms下行、小调音调
通知提醒、备忘300-800ms鲜明、引人注意
转场屏幕切换、模态窗口100-250ms呼啸声、轻微动感
iOS/Android 音频会话

iOS AVAudioSession 类别:

  • .ambient - 与其他音频混音,并会被响铃开关静音
  • .playback - 中断其他音频,并忽略响铃开关
  • .playAndRecord - 用于语音应用
  • .soloAmbient - 默认类别,会将其他音频静音

关键处理器:

  • 中断(电话呼叫)
  • 音频路由变化(耳机拔出)
  • 次要音频(Siri)
// Proper iOS audio session setup
func configureAudioSession() {
    let session = AVAudioSession.sharedInstance()
    try? session.setCategory(.playback, mode: .default, options: [.mixWithOthers])
    try? session.setActive(true)

    NotificationCenter.default.addObserver(
        self,
        selector: #selector(handleInterruption),
        name: AVAudioSession.interruptionNotification,
        object: nil
    )
}

性能目标

操作CPU 时间备注
HRTF 卷积(512 抽头)~2ms/声源使用 FFT 重叠相加
Ambisonic 编码~0.1ms/声源效率很高
Ambisonic 解码(双耳声)~1ms 总计支持多个声源
程序化脚步声~1-2ms而每个采样音频占用 500KB
风声合成~0.5ms/帧实时流式处理
Wwise 事件发布<0.1ms可忽略不计
iOS 音频回调5-10ms 预算48kHz/512 个采样点时

预算指南:音频应占用 5-10% 的帧时间。

快速参考

空间音频决策树
  • VR 且支持头部追踪? → Ambisonics
  • 重要声源较少? → 完整 HRTF
  • 背景声源较多? → 简单声像 + 距离衰减
  • 移动设备且 CPU 资源有限? → 双耳音频(简单)或声像
何时使用程序化音频
  • 环境音(风、雨、火)→ 始终使用程序化音频
  • 脚步声 → 大型游戏使用程序化音频,小型游戏使用采样
  • UI 音效 → 生成一次,然后缓存
  • 撞击声/爆炸声 → 混合方案(程序化音频 + 采样层)
平台音频会话
  • 带有音乐的游戏:.ambient + mixWithOthers
  • 冥想/专注应用:.playback(打断音乐)
  • 语音聊天:.playAndRecord
  • 视频播放器:.playback

集成对象

  • voice-audio-engineer - 语音合成和 TTS
  • vr-avatar-engineer - VR 音频 + 虚拟形象集成
  • metal-shader-expert - GPU 音频处理
  • native-app-designer - 应用 UI 音效集成

详细实现:参见 /references/implementations.md

请记住:出色的音频是无形的——玩家能感受到它,却不会注意到它。应专注于烘托体验,而不是炫技。程序化音频可节省内存并消除重复。务必遵守 CPU 预算和平台音频会话要求。

评论

支持 Markdown