Files
bdi_podman_serverconf/containers/whisper/entrypoint.sh
T
2026-07-04 14:41:42 +02:00

67 line
1.7 KiB
Bash

#!/bin/bash
# Whisper entrypoint script
# Downloads model if not present, then starts whisper-server
set -e
MODEL_PATH="/app/models/${WHISPER_MODEL_FILE:-ggml-small.bin}"
MODEL_NAME="${WHISPER_MODEL_NAME:-small}"
WHISPER_LANGUAGE="${WHISPER_LANGUAGE:-auto}"
WHISPER_TRANSLATE="${WHISPER_TRANSLATE:-false}"
WHISPER_DETECT_LANGUAGE="${WHISPER_DETECT_LANGUAGE:-false}"
WHISPER_DTW="${WHISPER_DTW:-}"
echo "=== Whisper Server ==="
echo "Model: $MODEL_NAME"
echo "Path: $MODEL_PATH"
echo "Language: $WHISPER_LANGUAGE"
echo "Translate: $WHISPER_TRANSLATE"
echo "Detect Language: $WHISPER_DETECT_LANGUAGE"
echo "DTW: ${WHISPER_DTW:-disabled}"
echo
# Check if model exists
if [ ! -f "$MODEL_PATH" ]; then
echo "Model not found. Downloading $MODEL_NAME..."
if ! /app/download-ggml-model.sh "$MODEL_NAME" /app/models; then
echo "ERROR: Failed to download model $MODEL_NAME"
exit 1
fi
if [ ! -f "$MODEL_PATH" ]; then
echo "ERROR: Model file not found after download"
ls -la /app/models/
exit 1
fi
echo "✓ Model downloaded"
else
echo "✓ Model found"
fi
echo "Starting whisper-server on port 8080..."
echo
# Build whisper-server arguments
WHISPER_ARGS=(
--host 0.0.0.0
--port 8080
-m "$MODEL_PATH"
-l "$WHISPER_LANGUAGE"
)
# Add optional flags
if [ "$WHISPER_TRANSLATE" = "true" ]; then
WHISPER_ARGS+=(--translate)
fi
if [ "$WHISPER_DETECT_LANGUAGE" = "true" ]; then
WHISPER_ARGS+=(--detect-language)
fi
if [ -n "$WHISPER_DTW" ]; then
WHISPER_ARGS+=(--dtw "$WHISPER_DTW")
WHISPER_ARGS+=(--no-flash-attn)
fi
# Start whisper-server with all arguments and any additional args passed to this script
exec /app/whisper-server "${WHISPER_ARGS[@]}" "$@"