#!/bin/sh # Usage: ./generate-coreml-model.sh if [ $# -eq 0 ]; then echo "No model name supplied" echo "Usage for Whisper models: ./generate-coreml-model.sh " echo "Usage for HuggingFace models: ./generate-coreml-model.sh -h5 " exit 1 elif [ "$1" = "-h5" ] && [ $# != 3 ]; then echo "No model name and model path supplied for a HuggingFace model" echo "Usage for HuggingFace models: ./generate-coreml-model.sh -h5 " exit 1 fi mname="$1" wd=$(dirname "$0") cd "$wd/../" || exit if [ "$mname" = "-h5" ]; then mname="$2" mpath="$3" echo "$mpath" python3 models/convert-h5-to-coreml.py --model-name "$mname" --model-path "$mpath" --encoder-only True else python3 models/convert-whisper-to-coreml.py --model "$mname" --encoder-only True --optimize-ane True fi xcrun coremlc compile models/coreml-encoder-"${mname}".mlpackage models/ rm -rf models/ggml-"${mname}"-encoder.mlmodelc mv -v models/coreml-encoder-"${mname}".mlmodelc models/ggml-"${mname}"-encoder.mlmodelc # TODO: decoder (sometime in the future maybe) #xcrun coremlc compile models/whisper-decoder-${mname}.mlpackage models/ #rm -rf models/ggml-${mname}-decoder.mlmodelc #mv -v models/coreml_decoder_${mname}.mlmodelc models/ggml-${mname}-decoder.mlmodelc