初始提交: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 模板
This commit is contained in:
+16
@@ -0,0 +1,16 @@
|
||||
name: Lint
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
ruff:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: astral-sh/ruff-action@v3
|
||||
with:
|
||||
args: check
|
||||
- uses: astral-sh/ruff-action@v3
|
||||
with:
|
||||
args: format --check
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
name: MLX (Apple Silicon)
|
||||
|
||||
# GitHub-hosted `macos-latest` runners are Apple Silicon (arm64), which the MLX
|
||||
# runtime requires. Scoped to optimized/mlx changes so it doesn't spend macOS
|
||||
# runner minutes on unrelated PRs.
|
||||
on:
|
||||
pull_request:
|
||||
paths:
|
||||
- "optimized/mlx/**"
|
||||
- ".github/workflows/mlx.yml"
|
||||
|
||||
jobs:
|
||||
test:
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: "3.11"
|
||||
- name: Install MLX deps
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install -r optimized/mlx/requirements.txt pytest
|
||||
- name: Adapter math — all 9 LoRA/DoRA/BoRA types (weight-free)
|
||||
run: pytest optimized/mlx/scripts/test_lora_merge.py -q
|
||||
- name: Import + CLI smoke (no weights downloaded)
|
||||
working-directory: optimized/mlx
|
||||
run: |
|
||||
python -c "import mlx.core; from models.defs import lora, training, demo_mlx, latent_dataset, lora_merge, sa3_pipeline; print('core imports OK')"
|
||||
python scripts/lora_train_mlx.py --help > /dev/null
|
||||
python scripts/pre_encode_mlx.py --help > /dev/null
|
||||
echo "CLI smoke OK"
|
||||
@@ -0,0 +1,81 @@
|
||||
name: TFLite cross-platform
|
||||
|
||||
# The optimized/tflite release must run identically on macOS, Linux, and
|
||||
# Windows. This checks, on every OS ai-edge-litert ships wheels for:
|
||||
# byte-compilation of the scripts, LiteRT importability, the weights
|
||||
# link-or-copy fallback (no symlink privilege needed on Windows), console
|
||||
# encoding under the runner's native code page, and --play dispatch.
|
||||
# NO model downloads happen in CI.
|
||||
|
||||
on:
|
||||
push:
|
||||
paths:
|
||||
- "optimized/tflite/**"
|
||||
- ".github/workflows/tflite-cross-platform.yml"
|
||||
pull_request:
|
||||
paths:
|
||||
- "optimized/tflite/**"
|
||||
- ".github/workflows/tflite-cross-platform.yml"
|
||||
|
||||
jobs:
|
||||
test:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
# Exactly the set ai-edge-litert has wheels for: manylinux x86_64 +
|
||||
# aarch64, macosx_12_0_arm64, win_amd64. No macOS-Intel (macos-13) and
|
||||
# no Windows-ARM runners — those combos have no wheel.
|
||||
matrix:
|
||||
os: [ubuntu-latest, ubuntu-24.04-arm, windows-latest, macos-latest]
|
||||
runs-on: ${{ matrix.os }}
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: "3.11"
|
||||
|
||||
- name: Install runtime requirements
|
||||
run: python -m pip install -r optimized/tflite/requirements.txt
|
||||
|
||||
- name: Byte-compile all scripts
|
||||
run: |
|
||||
python -m py_compile \
|
||||
optimized/tflite/scripts/sa3_tflite.py \
|
||||
optimized/tflite/scripts/weights.py \
|
||||
optimized/tflite/scripts/install.py \
|
||||
optimized/tflite/scripts/examples.py \
|
||||
optimized/tflite/scripts/test_windows_compat.py \
|
||||
optimized/tflite/models/defs/tflite_pipeline.py
|
||||
|
||||
- name: LiteRT interpreter imports
|
||||
run: python -c "from ai_edge_litert.interpreter import Interpreter"
|
||||
|
||||
- name: Windows-compat test suite
|
||||
run: python optimized/tflite/scripts/test_windows_compat.py
|
||||
|
||||
- name: bootstrap.ps1 parses (PowerShell syntax check)
|
||||
shell: pwsh
|
||||
run: |
|
||||
$errs = $null
|
||||
[void][System.Management.Automation.Language.Parser]::ParseFile(
|
||||
"optimized/tflite/bootstrap.ps1", [ref]$null, [ref]$errs)
|
||||
if ($errs) { $errs | ForEach-Object { Write-Error $_.Message }; exit 1 }
|
||||
[void][System.Management.Automation.Language.Parser]::ParseFile(
|
||||
"optimized/tflite/sa3.ps1", [ref]$null, [ref]$errs)
|
||||
if ($errs) { $errs | ForEach-Object { Write-Error $_.Message }; exit 1 }
|
||||
|
||||
- name: bootstrap.sh parses (bash syntax check)
|
||||
if: runner.os != 'Windows'
|
||||
run: bash -n optimized/tflite/bootstrap.sh
|
||||
|
||||
# Real install flow under the OS's bash (Git Bash on Windows — the
|
||||
# environment a Windows user following the Unix instructions lands in;
|
||||
# this exact path shipped broken once: .venv/Scripts vs .venv/bin).
|
||||
- name: install.sh end-to-end + sa3 wrapper (bash on every OS)
|
||||
run: |
|
||||
cd optimized/tflite
|
||||
./install.sh -y < /dev/null
|
||||
./sa3 --help
|
||||
Reference in New Issue
Block a user