#!/usr/bin/env bash # 在本机把「原仓库」里的 models(及可选 GGUF 缓存)拷进本子工程,便于整包 scp/rsync 到另一台香橙派。 # # 用法(在 voice_drone_assistant 根目录): # bash scripts/bundle_for_device.sh # bash scripts/bundle_for_device.sh /path/to/rocket_drone_audio # # 默认上一级目录为原仓库(即 voice_drone_assistant 仍放在 rocket_drone_audio 子目录时的布局)。 set -euo pipefail ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" SRC="${1:-$ROOT/..}" M="$ROOT/models" if [[ ! -d "$SRC/src/models" ]]; then echo "未找到 $SRC/src/models ,请传入正确的原仓库根路径:" >&2 echo " bash scripts/bundle_for_device.sh /path/to/rocket_drone_audio" >&2 exit 1 fi mkdir -p "$M" echo "源目录: $SRC" echo "目标 models: $M" copy_dir() { local name="$1" if [[ -d "$SRC/src/models/$name" ]]; then echo " 复制 models/$name ..." rm -rf "$M/$name" cp -a "$SRC/src/models/$name" "$M/" else echo " 跳过(不存在): src/models/$name" fi } copy_dir "SenseVoiceSmall" copy_dir "Kokoro-82M-v1.1-zh-ONNX" copy_dir "SileroVad" # 可选:大模型 GGUF(体积大,按需) if [[ -d "$SRC/cache/qwen25-1.5b-gguf" ]]; then read -r -p "是否复制 Qwen GGUF 到 cache/?(可能数百 MB~数 GB)[y/N] " ans if [[ "${ans:-}" =~ ^[yY] ]]; then mkdir -p "$ROOT/cache/qwen25-1.5b-gguf" cp -a "$SRC/cache/qwen25-1.5b-gguf/"* "$ROOT/cache/qwen25-1.5b-gguf/" 2>/dev/null || true echo " 已复制 cache/qwen25-1.5b-gguf" fi else echo " 未找到 $SRC/cache/qwen25-1.5b-gguf ,大模型请在新机器上再下载或单独拷贝" fi echo echo "完成。可将整个目录打包拷贝到另一台设备:" echo " $ROOT" echo "新设备上请执行: pip install -r requirements.txt(或使用相同 conda 环境)"