- 音频/视频转双语(英/中)SRT 字幕,Docker 容器化,CPU 开发/GPU 生产同一份代码 - faster-whisper ASR(词级时间戳) + 断句时间戳重算 + NLLB 翻译(模型不共驻) - 分片上传(断点续传) + SQLite 持久化 + 主页/历史/日志页面 - 历史页文件名搜索;缓存定时清理(默认保留7天,可配置) - 双 Dockerfile(cpu/gpu) + setup/start/stop 脚本
42 lines
1.4 KiB
Bash
Executable File
42 lines
1.4 KiB
Bash
Executable File
#!/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)"
|