Initial commit: audio2text 双语字幕生成服务

- 音频/视频转双语(英/中)SRT 字幕,Docker 容器化,CPU 开发/GPU 生产同一份代码
- faster-whisper ASR(词级时间戳) + 断句时间戳重算 + NLLB 翻译(模型不共驻)
- 分片上传(断点续传) + SQLite 持久化 + 主页/历史/日志页面
- 历史页文件名搜索;缓存定时清理(默认保留7天,可配置)
- 双 Dockerfile(cpu/gpu) + setup/start/stop 脚本
This commit is contained in:
2026-07-06 06:54:19 +00:00
commit 00e2a95fb7
44 changed files with 4110 additions and 0 deletions

41
setup.sh Executable file
View File

@@ -0,0 +1,41 @@
#!/usr/bin/env bash
# 一次性安装:构建 Docker 镜像 + 生成 config.yaml。可重复执行。
# CPUAUDIO2TEXT_VARIANT=cpu默认→ 用 config.cpu.yaml
# GPUAUDIO2TEXT_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"