Setup Whisper
BASH Scripts
SH
setup_whisper.sh
#!/bin/bash
# Setup script for OpenAI Whisper - run this once to install
# 1. Clean up any broken installs
source "$HOME/.venvs/whisper-venv/bin/activate" 2>/dev/null || python3 -m venv "$HOME/.venvs/whisper-venv"
source "$HOME/.venvs/whisper-venv/bin/activate"
pip uninstall -y faster-whisper av torch torchaudio 2>/dev/null || true
# 2. Install openai-whisper
echo "Installing openai-whisper..."
pip install --no-cache-dir openai-whisper
# 3. Create the whisp CLI tool
mkdir -p "$HOME/.local/bin"
cat > "$HOME/.local/bin/whisp" << 'EOF'
#!/bin/bash
source "$HOME/.venvs/whisper-venv/bin/activate"
FILE="$1"
MODEL="${2:-medium}"
BASE="${FILE%.mp3}"
TXT="$BASE.txt"
SRT="$BASE.srt"
if [ -z "$FILE" ]; then
echo "Usage: whisp <audio-file> [model]"
echo " model: tiny, base, small, medium (default), large"
exit 1
fi
if [ ! -f "$FILE" ]; then
echo "Error: File '$FILE' not found"
exit 1
fi
echo "Transcribing '$FILE' with model '$MODEL'..."
python3 - "$FILE" "$MODEL" "$TXT" "$SRT" <<'PY'
import sys, os
import whisper
from datetime import timedelta
audio_file, model_name, txt_path, srt_path = sys.argv[1:]
model = whisper.load_model(model_name)
result = model.transcribe(audio_file, verbose=True, language=None)
print(f"\nDetected language: {result['language']}")
# Write plain text
with open(txt_path, "w", encoding="utf-8") as txt:
txt.write(result["text"])
# Write SRT
with open(srt_path, "w", encoding="utf-8") as srt:
for i, segment in enumerate(result["segments"], 1):
start = str(timedelta(seconds=int(segment['start']))).split('.')[0]
end = str(timedelta(seconds=int(segment['end']))).split('.')[0]
srt.write(f"{i}\n")
srt.write(f"{start} --> {end}\n")
srt.write(f"{segment['text'].strip()}\n\n")
print(f"\nDone → {os.path.basename(txt_path)} + {os.path.basename(srt_path)}")
PY
echo -e "\033[0;32mFinished:\033[0m $TXT $SRT"
EOF
chmod +x "$HOME/.local/bin/whisp"
deactivate
echo ""
echo "=========================================="
echo "Installation complete!"
echo "=========================================="
echo ""
echo "Usage: whisp <audio-file> [model]"
echo "Example: whisp \"Alex Newman.mp3\" medium"
echo ""
echo "Available models:"
echo " - tiny (fast, less accurate)"
echo " - base"
echo " - small"
echo " - medium (default, good balance)"
echo " - large (slow, most accurate)"
echo ""