67 рядки
1.7 KiB
Bash
67 рядки
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[@]}" "$@"
|