#!/bin/bash # Batch conversion script for multiple CAM++ models # This script converts all preset models to MLX format set -e # Exit on error # Check if HF_TOKEN is set if [ -z "$HF_TOKEN" ]; then echo "ERROR: HF_TOKEN environment variable not set" echo "Usage: export HF_TOKEN=your_token_here && ./batch_convert.sh" exit 1 fi echo "======================================================================" echo "CAM++ MLX Converter - Batch Conversion" echo "======================================================================" echo "" # Array of models to convert # Format: "modelscope_repo|output_name|description" declare -a MODELS=( "iic/speech_campplus_sv_zh-cn_16k-common|campplus_chinese_16k_common|Chinese (Basic)" "iic/speech_campplus_sv_zh_en_16k-common_advanced|campplus_multilingual_16k_advanced|Chinese-English (Advanced)" ) TOTAL_MODELS=${#MODELS[@]} SUCCESS_COUNT=0 FAILED_COUNT=0 # Process each model for i in "${!MODELS[@]}"; do IFS='|' read -r INPUT_REPO OUTPUT_NAME DESCRIPTION <<< "${MODELS[$i]}" MODEL_NUM=$((i + 1)) echo "" echo "----------------------------------------------------------------------" echo "[$MODEL_NUM/$TOTAL_MODELS] Converting: $DESCRIPTION" echo "----------------------------------------------------------------------" echo " Input: $INPUT_REPO" echo " Output: mlx-community/$OUTPUT_NAME" echo "" # Run conversion with Q4 quantization by default if python convert_cli.py \ --input "$INPUT_REPO" \ --output "$OUTPUT_NAME" \ --q4; then echo "✅ Success: $DESCRIPTION" SUCCESS_COUNT=$((SUCCESS_COUNT + 1)) else echo "❌ Failed: $DESCRIPTION" FAILED_COUNT=$((FAILED_COUNT + 1)) fi done # Summary echo "" echo "======================================================================" echo "BATCH CONVERSION SUMMARY" echo "======================================================================" echo "Total models: $TOTAL_MODELS" echo "Successful: $SUCCESS_COUNT" echo "Failed: $FAILED_COUNT" echo "======================================================================" if [ $FAILED_COUNT -eq 0 ]; then echo "✅ All conversions completed successfully!" exit 0 else echo "⚠️ Some conversions failed. Check logs above for details." exit 1 fi