Files
speech-to-text/start.sh

40 lines
1.4 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
DIR="$(cd "$(dirname "$0")" && pwd)"
ENV_FILE="$HOME/.local/share/speech-to-text/speech-to-text.env"
if [ -f "$ENV_FILE" ]; then
set -a; . "$ENV_FILE"; set +a
fi
if [ ! -d "$DIR/venv" ]; then
echo "Creating virtual environment..."
python3 -m venv "$DIR/venv"
fi
if ! "$DIR/venv/bin/python3" -c "import faster_whisper" 2>/dev/null; then
echo "Installing dependencies (GPU packages may take a while)..."
if ! "$DIR/venv/bin/pip" install -r "$DIR/requirements.txt"; then
echo "ERROR: Failed to install dependencies." >&2
exit 1
fi
fi
PY_VER=$("$DIR/venv/bin/python3" -c "import sys; print(f'python{sys.version_info.major}.{sys.version_info.minor}')")
NVIDIA_LIB="$DIR/venv/lib/$PY_VER/site-packages/nvidia"
if [ -d "$NVIDIA_LIB/cublas/lib" ]; then
export LD_LIBRARY_PATH="$NVIDIA_LIB/cublas/lib:$NVIDIA_LIB/cudnn/lib:$NVIDIA_LIB/cuda_nvrtc/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
fi
MODEL="${STT_MODEL:-whisper}"
if [ "$MODEL" = "parakeet" ]; then
echo "Starting parakeet backend..."
ONNXRUNTIME_LIB="${ONNXRUNTIME_LIB:-/usr/lib/libonnxruntime.so}" \
"${STT_PARAKEET_BIN:-$HOME/.local/share/speech-to-text/bin/parakeet}" \
-port "${STT_PARAKEET_PORT:-5092}" \
-models "${STT_PARAKEET_MODELS_DIR:-$HOME/.local/share/speech-to-text/models}" \
-workers "${STT_WORKERS:-2}" &
fi
exec "$DIR/venv/bin/python3" "$DIR/app.py"