nageyqma·git
HTTPS https://git.nageyqma.icu/nageyqma/audio_to_text.git SSH git@git.nageyqma.icu:nageyqma/audio_to_text.git

HTTPS 链接可直接 git clone;推送代码请使用 SSH。

2.2 KB · 58 行raw
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
#!/usr/bin/env bash
# 首次一键配置(幂等,可重复运行):
#   装 uv(用户级)→ 项目内 venv(Python 3.12)→ CPU 版 torch → 其余依赖 → 预下载模型
# 全程无需 sudo,不动系统 Python。
#
# 用法:
#   ./setup.sh            完整配置(依赖 + 约 3GB 模型)
#   ./setup.sh --check    只校验是否已配置(供 run.sh 自动引导),就绪退出码 0,否则 1
set -euo pipefail
cd "$(dirname "$0")"

MARKER=".venv/.a2t-ready"

# 配置指纹:依赖清单或本安装脚本内容变化 → 指纹不匹配 → 视为未配置,自动重装
stamp() { sha256sum requirements.txt setup.sh 2>/dev/null | sha256sum | cut -d' ' -f1; }

if [ "${1:-}" = "--check" ]; then
  if [ -x .venv/bin/python ] && [ -f "$MARKER" ] && [ "$(cat "$MARKER")" = "$(stamp)" ]; then
    exit 0
  fi
  exit 1
fi

# 1) uv:没有则装(用户级,装到 ~/.local/bin,无需 sudo)
if ! command -v uv >/dev/null 2>&1; then
  echo "==> 安装 uv(用户级,~/.local/bin)…"
  curl -LsSf https://astral.sh/uv/install.sh | sh
fi
export PATH="$HOME/.local/bin:$PATH"
if ! command -v uv >/dev/null 2>&1; then
  echo "uv 安装失败。可从 https://github.com/astral-sh/uv/releases 手动下载" >&2
  echo "x86_64-unknown-linux-gnu tar 包,解压出 uv 放入 ~/.local/bin 后重跑本脚本。" >&2
  exit 1
fi

# 2) 项目内 venv(Python 3.12;uv 自动下载托管版 CPython,不动系统 Python)
if [ ! -x .venv/bin/python ]; then
  echo "==> 创建项目内 venv(Python 3.12)…"
  uv venv --python 3.12 .venv
fi
source .venv/bin/activate

# 3) 先装 CPU 版 torch(必须用 CPU 源,否则会拉 2GB+ 的 CUDA 包;本机无 GPU)
echo "==> 安装 CPU 版 torch / torchaudio(download.pytorch.org 的 cpu 源)…"
uv pip install torch torchaudio --index-url https://download.pytorch.org/whl/cpu

# 4) 其余依赖
echo "==> 安装其余依赖(faster-whisper / funasr / modelscope …)…"
uv pip install -r requirements.txt

# 5) 建目录 + 预下载全部模型(联网一次,之后可离线转写)
mkdir -p input_audio output_text models
python transcribe.py --download-only

printf '%s\n' "$(stamp)" > "$MARKER"
echo
echo "配置完成。以后:把音频放进 input_audio/ 然后运行 ./run.sh"