Files
SoundGame Dev f0f0a9b50e 初始提交:3 款纯音频游戏 + 共享引擎 + 完整文档与资产管线
- 共享引擎(app/src/main):GestureEngine 6 手势识别、AudioEngine 三层音频
  (ExoPlayer BGM 交叉淡入 / 对白 ducking / SoundPool 低延迟)、Game/GameEngine
  状态机接口、MainActivity 全屏封面 + TalkBack
- 《声命线》storyline:末世互动广播剧,3 幕 8 抉择点 4 结局
- 《声东击西》reflex:听声辨位反应,12 波战斗 + BGM 三档 BPM 变速
- 《暗室》escape:3x3 网格密室逃脱,钥匙→铁柜→保险丝→电箱→大门谜题链
- 文档:setup(从零搭建)/ architecture(架构)/ engine-api(引擎 API)/
  asset-pipeline(资产流水线)/ games/*(三款游戏设计文档)
- 资产管线:Qwen3-TTS 对白 + 程序合成音效/BGM + Mureka BGM 的 gen 脚本与台账,
  全部 ogg 资产入库可复现
- env.d 环境脚本:android/tts 入库;sfx/mureka 含密钥不入库,仅提交 .example.sh 模板
2026-08-29 13:00:34 +08:00

79 lines
1.9 KiB
TOML

[project]
name = "stable-audio-3"
version = "0.1.0"
description = "Stable Audio 3: A state-of-the-art open platform for fast, high-quality generated audio and music"
readme = "README.md"
requires-python = ">=3.10"
dependencies = [
"einops>=0.8.2",
"einops-exts>=0.0.4",
"numpy>=2.2.6",
"packaging>=26.0",
"safetensors>=0.7.0",
"torch==2.7.1",
"torchaudio==2.7.1",
"tqdm>=4.67.3",
"huggingface-hub>=1.7.1",
"transformers>=5.8.0",
"soundfile>=0.13.1",
]
[project.optional-dependencies]
ui = [
"gradio==6.3.0",
"matplotlib>=3.10.8",
"accelerate>=1.13.0",
]
lora = [
"pytorch_lightning==2.5.5",
"dill>=0.4.1",
]
[[tool.uv.index]]
name = "pytorch-cu126"
url = "https://download.pytorch.org/whl/cu126"
explicit = true
[tool.uv.sources]
torch = [
{ index = "pytorch-cu126", marker = "sys_platform == 'linux' and platform_machine == 'x86_64'" }
]
torchaudio = [
{ index = "pytorch-cu126", marker = "sys_platform == 'linux' and platform_machine == 'x86_64'" }
]
[project.scripts]
stable-audio = "stable_audio_3.cli:main"
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[dependency-groups]
dev = [
"pytest>=9.0.3",
"ruff>=0.15.9",
]
[tool.pytest.ini_options]
testpaths = ["tests"]
[tool.ruff]
exclude = [
"stable_audio_3/models",
"stable_audio_3/inference",
"stable_audio_3/interface",
"stable_audio_3/data",
"stable_audio_3/training",
"optimized",
]
[tool.ruff.lint]
# Pin the ruleset to the classic essentials. Newer ruff's *default* select is broad
# (I/UP/B/SIM/PLR/RUF — import-sorting, type-annotation modernization, etc.), which is
# why CI (ruff >=0.15.9) flagged ~34 style issues across the codebase. This repo only
# wants real-bug checks, so select them explicitly for version-stable results:
# E4/E7/E9 (pycodestyle errors) + F (pyflakes: undefined names, unused imports/vars).
select = ["E4", "E7", "E9", "F"]