faster-whisper (small.en, GPU+CPU fallback) on CT 102 → POST /api/voice/transcribe (multer→whisper client) → mic in the bubble records (MediaRecorder), uploads, drops the transcript into the input to review-and-send. Infra scripts in deploy/whisper/. Retention (P2b) next. NOTE: mic needs a secure context (the https domain), not the LAN IP. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
27 lines
938 B
Bash
27 lines
938 B
Bash
#!/usr/bin/env bash
|
|
set -e
|
|
export DEBIAN_FRONTEND=noninteractive
|
|
apt-get update -qq
|
|
apt-get install -y -qq python3-pip python3-venv ffmpeg >/dev/null
|
|
mkdir -p /opt/whisper
|
|
python3 -m venv /opt/whisper/venv
|
|
/opt/whisper/venv/bin/pip install -q --upgrade pip
|
|
/opt/whisper/venv/bin/pip install -q faster-whisper fastapi "uvicorn[standard]" python-multipart nvidia-cublas-cu12 nvidia-cudnn-cu12
|
|
SITE=/opt/whisper/venv/lib/python3.12/site-packages
|
|
cat > /etc/systemd/system/whisper.service <<UNIT
|
|
[Unit]
|
|
Description=faster-whisper transcription server (Dross voice)
|
|
After=network.target
|
|
[Service]
|
|
Type=simple
|
|
WorkingDirectory=/opt/whisper
|
|
Environment=WHISPER_MODEL=small.en
|
|
Environment=LD_LIBRARY_PATH=${SITE}/nvidia/cublas/lib:${SITE}/nvidia/cudnn/lib
|
|
ExecStart=/opt/whisper/venv/bin/uvicorn server:app --host 0.0.0.0 --port 8001
|
|
Restart=on-failure
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
UNIT
|
|
systemctl daemon-reload
|
|
echo "deps+unit installed"
|