40 lines
1.4 KiB
Bash
Executable File
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" |