- 共享引擎(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 模板
28 lines
681 B
Python
28 lines
681 B
Python
import pytest
|
|
|
|
from stable_audio_3.interface.diffusion_cond import parse_inpaint_regions
|
|
|
|
|
|
def test_parse_single_inpaint_region():
|
|
assert parse_inpaint_regions("4", "8") == (4.0, 8.0)
|
|
|
|
|
|
def test_parse_multiple_inpaint_regions():
|
|
assert parse_inpaint_regions("4, 16", "8, 20") == (
|
|
[4.0, 16.0],
|
|
[8.0, 20.0],
|
|
)
|
|
|
|
|
|
def test_parse_empty_inpaint_regions():
|
|
assert parse_inpaint_regions("", "") == (None, None)
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
("starts", "ends"),
|
|
[("4", ""), ("4, 16", "8"), ("8", "4"), ("-1", "4")],
|
|
)
|
|
def test_parse_invalid_inpaint_regions(starts, ends):
|
|
with pytest.raises(Exception):
|
|
parse_inpaint_regions(starts, ends)
|