#!/usr/bin/env bash # 一次性安装:构建 Docker 镜像 + 生成 config.yaml。可重复执行。 # CPU:AUDIO2TEXT_VARIANT=cpu(默认)→ 用 config.cpu.yaml # GPU:AUDIO2TEXT_VARIANT=gpu → 用 config.gpu.yaml set -euo pipefail cd "$(dirname "$0")" ROOT="$(pwd)" VARIANT="${AUDIO2TEXT_VARIANT:-cpu}" case "$VARIANT" in cpu|gpu) ;; *) echo "VARIANT 只能是 cpu 或 gpu,当前:$VARIANT" >&2; exit 1 ;; esac echo "==> [1/3] 检查 Docker" if ! command -v docker >/dev/null 2>&1; then echo "未找到 docker,请先安装 Docker。" >&2 exit 1 fi echo " docker: $(docker --version)" echo "==> [2/3] 构建 ${VARIANT} 镜像" docker build --build-arg VARIANT="${VARIANT}" -t "audio2text:${VARIANT}" "$ROOT" echo " 镜像:audio2text:${VARIANT}" echo "==> [3/3] config.yaml(来自 config.${VARIANT}.yaml)" cp "$ROOT/config.${VARIANT}.yaml" "$ROOT/config.yaml" case "$VARIANT" in cpu) echo " CPU 模式:ASR=tiny/int8(~75MB),翻译=opus-mt-en-zh(~300MB)" ;; gpu) echo " GPU 模式:ASR=large-v3-turbo/float16,翻译=NLLB-1.3B/float16" ;; esac echo echo "安装完成。" echo " - 镜像:audio2text:${VARIANT}" echo " - 配置:config.yaml(源自 config.${VARIANT}.yaml)" echo echo "下一步:./start.sh" echo "切换环境:AUDIO2TEXT_VARIANT=gpu ./setup.sh(自动换用 config.gpu.yaml)"