#!/bin/bash
# LiveKit Voice AI - 模型下载脚本
# 适配 CPU 部署环境

set -e

echo "=== LiveKit Voice AI 模型下载 ==="
echo ""

# 设置 HuggingFace 镜像（国内加速）
export HF_ENDPOINT="https://hf-mirror.com"

# 创建目录结构
echo "[1/4] 创建目录结构..."
mkdir -p models/funasr models/pyannote checkpoints config monitoring/grafana/dashboards monitoring/grafana/datasources

# 下载 FunASR 模型
echo ""
echo "[2/4] 下载 FunASR SenseVoice 模型..."
if [ ! -d "models/funasr/SenseVoiceSmall" ]; then
    echo "  -> 下载 SenseVoiceSmall..."
    modelscope download \
        --model iic/SenseVoiceSmall \
        --local_dir models/funasr/SenseVoiceSmall
    echo "  ✅ SenseVoiceSmall 下载完成"
else
    echo "  ⏭ SenseVoiceSmall 已存在，跳过"
fi

# 下载 pyannote 模型
echo ""
echo "[3/4] 下载 pyannote 说话人分离模型..."
if [ ! -d "models/pyannote/segmentation" ]; then
    echo "  -> 下载 pyannote/Segmentation..."
    huggingface-cli download pyannote/Segmentation --local-dir models/pyannote/segmentation
    echo "  ✅ Segmentation 下载完成"
else
    echo "  ⏭ Segmentation 已存在，跳过"
fi

if [ ! -d "models/pyannote/embedding" ]; then
    echo "  -> 下载 pyannote/embedding..."
    huggingface-cli download pyannote/embedding --local-dir models/pyannote/embedding
    echo "  ✅ Embedding 下载完成"
else
    echo "  ⏭ Embedding 已存在，跳过"
fi

# 下载 IndexTTS 模型
echo ""
echo "[4/4] 下载 IndexTTS 2.5 模型..."
if [ ! -d "checkpoints/IndexTTS-2.5" ]; then
    echo "  -> 下载 IndexTTS-2.5..."
    huggingface-cli download IndexTeam/IndexTTS-2.5 --local-dir checkpoints/IndexTTS-2.5
    echo "  ✅ IndexTTS-2.5 下载完成"
else
    echo "  ⏭ IndexTTS-2.5 已存在，跳过"
fi

echo ""
echo "=== 模型下载完成 ==="
echo ""
echo "模型存储位置:"
echo "  - FunASR:   ./models/funasr/"
echo "  - pyannote: ./models/pyannote/"
echo "  - IndexTTS: ./checkpoints/"
echo ""
echo "下一步: 复制 .env.example 为 .env 并填写配置"
echo "  cp .env.example .env"
echo ""
