从音效到配音:threejs-audio-generator用ElevenLabs构建Three.js游戏音频管线
【免费下载链接】threejs-game-skillsAgent skills for building playable, polished Three.js browser games with gameplay, AAA-style graphics, UI, QA, and optional AI-generated 3D, image, and audio assets.项目地址: https://gitcode.com/gh_mirrors/th/threejs-game-skills
threejs-game-skills是一套面向 AI Agent 的 Three.js 游戏开发技能包,其中threejs-audio-generator负责游戏音频环节:它基于 ElevenLabs 提供了一条完整的Three.js 游戏音频管线——从音效(SFX)生成、环境音循环、TTS 配音、变声到音频降噪,全部通过一条 Python 命令完成,产物直接落入你的游戏项目目录。
上面这类竞速场景,正是环境音(风噪、引擎低鸣)和拾取音效的主战场。
为什么游戏需要一个音频管线
画面再精致的 Three.js 游戏,没有声音也显得"半成品"。threejs-audio-generator的技能定义明确要求:做精品级游戏时,音频不是点缀,主循环至少要有交互音效、环境音和 UI 反馈音。
它的工作方式很有条理:
- 先规划:按 audio-workflows.md 生成一张"音频矩阵",列出 UI、移动、交互、威胁、环境音、语音六类各需要多少条素材;
- 再生成:每条音效单独生成,避免混在一条长音频里不好触发;
- 后集成:生成的 mp3 文件通过 Web Audio / Three.js 的
AudioSystem按分组(master/sfx/ui/ambience/voice)加载播放。
五个命令,走完整条音频管线
核心工具是 threejs_audio_asset.py,它封装了 ElevenLabs 的五个能力,对应五个子命令。
一键检查密钥:probe
生成前先确认ELEVENLABS_API_KEY是否存在:
python3 threejs_audio_asset.py probe # 输出 ELEVENLABS_API_KEY=SET|MISSING加--validate还会实际调用 ElevenLabs 的/user接口验证密钥可用,避免"有密钥却生成失败"时一头雾水。
文本生成音效:sfx
一段提示词就能生成游戏音效,脚本默认输出mp3_44100_128格式:
python3 threejs_audio_asset.py sfx \ --prompt "tight futuristic boost pickup, bright transient, short sparkling tail, arcade racing game" \ --duration 1.2 --prompt-influence 0.65 \ --out assets/audio/sfx/boost-pickup.mp3提示词技巧(来自官方工作流文档):写明声源、瞬态、尾音、风格、用途,例如 "short shield absorb impact for sci-fi boss fight, glassy plasma hit";只写 "epic、cool" 这类情绪词效果很差。
无缝环境音循环:sfx --loop
背景音用--loop生成 8–30 秒的无缝循环,比如"雨夜城市底噪 + 远处车流",适合挂在关卡下持续播放。
文字配音:tts
python3 threejs_audio_asset.py tts \ --text "Perfect shot." \ --voice-id JBFqnCBsd6RMkjVDRZzb \ --out assets/audio/voice/perfect-shot.mp3适合旁白、菜单播报、战斗喊话这类"给文本就能出声音"的场景。
变声与降噪:voice-change / isolate
- voice-change:把你自己录的"试音稿"换成目标角色音色,同时保留原本的节奏、呼吸和情绪——Boss 台词、紧张语气比纯 TTS 更有戏;
- isolate:先把含噪声的录音做人声分离/降噪,再送去变声,成品更干净。
生成的音频如何在浏览器里播放
技能包自带的 Vite + TypeScript 游戏模板里就有现成的音频管理器 AudioSystem.ts,它解决了浏览器音频的两个经典坑:
- 自动播放限制:浏览器要求用户点击/按键后才能出声。
AudioSystem监听第一次pointerdown/keydown再resume()AudioContext; - 分组管理:按
sfx、ui、ambience等分组做音量与静音控制,暂停/恢复时不会叠出重复的循环音。
工作流文档 audio-workflows.md 还给出了一份验收清单:文件是否落盘、主事件是否触发对应声音、循环是否干净启停、移动端 Safari 解锁是否覆盖。
快速上手步骤
安装技能(Codex 或 Claude Code 均可):
npx skills add majidmanzarpour/threejs-game-skills --skill '*' -a claude-code -g -y也可以 clone 仓库 后执行
./install.sh --claude。在 shell 配置中设置
export ELEVENLABS_API_KEY="..."并重启终端(密钥只用于本地 Agent 工具,严禁写进浏览器代码)。对 Agent 说"用 threejs-audio-generator 为我的游戏生成音效集",或直接调用
threejs-game-director让它自动调度;技能入口定义见 openai.yaml 与 SKILL.md。拿到产物后按"音频矩阵"核对:1 条环境循环 + 3 条 UI 音 + 5 条玩法音效,即为合格的"第一轮精品音画"。
🎧 小结:threejs-audio-generator把 ElevenLabs 的音效生成、TTS 配音、变声、降噪四类能力压进了五个子命令,配合技能包的音频矩阵和 Web Audio 集成规范,让 Three.js 游戏从"能跑"走向"有声有色"。
【免费下载链接】threejs-game-skillsAgent skills for building playable, polished Three.js browser games with gameplay, AAA-style graphics, UI, QA, and optional AI-generated 3D, image, and audio assets.项目地址: https://gitcode.com/gh_mirrors/th/threejs-game-skills
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考