初始提交: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:
@@ -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