Frontend statique pour GitHub Pages, backend WhisperX séparé, navigation vocale en francais.
- surface noire avec cadres 16:9 vides, traits blancs
1px, point central blanc plein - zoom recentre presque plein ecran sur un cadre
- numerotation
p.01visible seulement en vue d'ensemble - navigation vocale avec une seule gachette:
- toute conjugaison de
aller - toute conjugaison de
regarder - une fois la gachette entendue, un mot directeur doit arriver dans les
10secondes
- toute conjugaison de
- chaque page est pilotee par un concept temporel francais, avec synonymes
Exemples:
vais auberegarde zenithallez crepusculeregardons minuitensemble
- frontend statique: GitHub Pages
- backend transcription: service FastAPI + WhisperX heberge a part
- liaison frontend -> backend: variable
VITE_API_BASE_URL
Le frontend est maintenant compatible GitHub Pages:
- le
base pathVite est calcule automatiquement depuis le nom du repo en CI - les assets publics suivent
import.meta.env.BASE_URL - le backend peut etre local en dev ou distant en production
Frontend:
npm install
npm run devBackend WhisperX local:
uv venv --python /usr/local/bin/python3.11 .venv-whisperx
.venv-whisperx/bin/python -m ensurepip
.venv-whisperx/bin/pip3 install -r server/requirements.txt
.venv-whisperx/bin/python -m uvicorn server.main:app --host 127.0.0.1 --port 8000Optionnel pour utiliser une API distante en local:
cp .env.example .envPuis renseigner VITE_API_BASE_URL.
Le frontend est compatible avec GitHub Pages:
- soit en publiant un build statique sur une branche
gh-pages - soit plus tard via GitHub Actions si tu remets un workflow de deploiement
Variable frontend minimale:
VITE_API_BASE_URL=https://ton-backend-whisperx.example.com
Optionnel:
VITE_BASE_PATH=/si tu utilises un domaine custom ou une configuration speciale
Si VITE_BASE_PATH est vide, Vite utilise automatiquement /<nom-du-repo>/ pour un repo Pages standard.
Un conteneur backend est pret dans server/Dockerfile.
Exemple de build:
docker build -f server/Dockerfile -t spatial-whisperx .
docker run -p 8000:8000 \
-e WHISPERX_ALLOW_ORIGINS=https://ton-user.github.io \
spatial-whisperxVariables backend utiles:
WHISPERX_MODEL=baseWHISPERX_DEVICE=cpuWHISPERX_COMPUTE_TYPE=int8WHISPERX_ENABLE_ALIGNMENT=falseWHISPERX_ALLOW_ORIGINS=https://ton-user.github.io,https://ton-domaine.com
En prototype, tu peux laisser WHISPERX_ALLOW_ORIGINS=*. En production, mieux vaut declarer explicitement l'URL GitHub Pages ou ton domaine custom.
- src/App.tsx: scene + panneau cache + etat vocal
- src/hooks/useWhisperTriggerRouter.ts: capture micro, fenetre de 10 secondes, logique de gachette
- src/config/runtime.ts: URL backend et base assets
- src/data/scene.ts: concepts de pages et synonymes
- server/main.py: API WhisperX
- vite.config.ts: proxy local + base path GitHub Pages
- Le premier appel WhisperX charge le modele, donc il est plus lent.
- Le backend actuel tourne en Python
3.11parce que WhisperX ne supporte pas encore proprement Python3.13+. - Le healthcheck est expose sur
/api/health.