Spaces:
Running on Zero
Running on Zero
| # 一键:准备 venv → 安装依赖 → 生成 SVC 预生成示例 → 校验 | |
| # 用法(在任意目录执行均可): | |
| # ./scripts/automate_example_outputs.sh | |
| # ./scripts/automate_example_outputs.sh --skip-install | |
| # ./scripts/automate_example_outputs.sh --skip-install -- --device cpu --index 0 | |
| # 「--」之后参数会原样传给 generate_example_outputs.py | |
| set -euo pipefail | |
| SPACE_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" | |
| cd "$SPACE_ROOT" | |
| SKIP_INSTALL=0 | |
| PY_ARGS=() | |
| while [[ $# -gt 0 ]]; do | |
| case "$1" in | |
| --skip-install) | |
| SKIP_INSTALL=1 | |
| shift | |
| ;; | |
| --) | |
| shift | |
| PY_ARGS+=("$@") | |
| break | |
| ;; | |
| *) | |
| PY_ARGS+=("$1") | |
| shift | |
| ;; | |
| esac | |
| done | |
| export PYTHONUNBUFFERED=1 | |
| pick_python() { | |
| if [[ -n "${PYTHON:-}" ]] && [[ -x "${PYTHON}" ]]; then | |
| echo "$PYTHON" | |
| return | |
| fi | |
| if [[ -x "$SPACE_ROOT/.venv/bin/python" ]]; then | |
| echo "$SPACE_ROOT/.venv/bin/python" | |
| return | |
| fi | |
| if command -v python3.11 >/dev/null 2>&1; then | |
| command -v python3.11 | |
| return | |
| fi | |
| command -v python3 | |
| } | |
| if [[ ! -d "$SPACE_ROOT/.venv" ]]; then | |
| echo "[automate] 创建 .venv ..." | |
| if command -v python3.11 >/dev/null 2>&1; then | |
| python3.11 -m venv "$SPACE_ROOT/.venv" | |
| elif command -v python3 >/dev/null 2>&1; then | |
| python3 -m venv "$SPACE_ROOT/.venv" | |
| else | |
| echo "错误: 未找到 python3.11 或 python3" >&2 | |
| exit 1 | |
| fi | |
| fi | |
| # shellcheck source=/dev/null | |
| source "$SPACE_ROOT/.venv/bin/activate" | |
| if [[ "$SKIP_INSTALL" -eq 0 ]]; then | |
| echo "[automate] pip install -r requirements.txt (首次或依赖变更时较慢)..." | |
| pip install -U pip wheel setuptools | |
| pip install -r "$SPACE_ROOT/requirements.txt" | |
| else | |
| echo "[automate] 跳过 pip install(--skip-install)" | |
| fi | |
| echo "[automate] 生成 example/outputs/*.wav ..." | |
| if [[ ${#PY_ARGS[@]} -eq 0 ]]; then | |
| python -u "$SPACE_ROOT/scripts/generate_example_outputs.py" | |
| else | |
| python -u "$SPACE_ROOT/scripts/generate_example_outputs.py" "${PY_ARGS[@]}" | |
| fi | |
| echo "[automate] 校验 ..." | |
| python "$SPACE_ROOT/scripts/verify_example_outputs.py" | |
| echo "[automate] 全部完成。" | |