TranscriberApp is een lokale webapplicatie waarmee je audio kunt transcriberen en analyseren. Alle AI-modellen draaien lokaal (Whisper, Pyannote, Ollama) zodat je opnames privé blijven. De applicatie is geoptimaliseerd voor Apple Silicon maar werkt ook op Linux.
ffmpeg
, cmake
, pkg-config
, protobuf
.git clone https://github.com/GPTSam/TranscriberApp.git
cd TranscriberApp
python3.11 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
brew install ffmpeg cmake pkg-config protobuf
Debian/Ubuntu:sudo apt update && sudo apt install -y ffmpeg cmake pkg-config libprotobuf-dev protobuf-compiler
make PYTHON_INTERPRETER=python3.11 install-dev
make PYTHON_INTERPRETER=python3.11 install
.env
aanmaken met je Hugging Face token:echo "HUGGING_FACE_TOKEN=hf_jouw_token" > .env
config.yaml
):ollama pull llama3:8b
ollama pull mistral:7b
python -m src.utils.generate_config_from_schema
Pas daarna config.yaml
aan en zet input_audio
naar een bestand in audio/
.Ctrl+`
) en activeer de virtuele omgeving:source venv/bin/activate
make up # gebruikt .venv/bin/python en start services
make up
het frontend automatisch over en draait alleen de backend.make up-macos
npm run dev
; backend draait in je huidige terminal.make dev-tmux
(zie hieronder) of handmatig twee terminals.make up-iterm
.make run-backend # alleen backend
make run-frontend # alleen frontend (vereist npm)
make smoke
brew install tmux # indien nog niet aanwezig
make dev-tmux # opent 2 panelen: backend links, frontend rechts
make check-python
make install-homebrew # interactieve bevestiging; opent het officiële installatie-script
make install-python-macos
# daarna:
make PYTHON_INTERPRETER=$(brew --prefix)/bin/python3.11 install-full
make PYTHON_INTERPRETER=/pad/naar/python3.11 install-full
brew install node # snelste manier
# of via nvm:
brew install nvm && mkdir -p ~/.nvm
export NVM_DIR="$HOME/.nvm" && . /opt/homebrew/opt/nvm/nvm.sh
nvm install --lts
./scripts/up_windows.ps1
Dit opent twee PowerShell‑vensters: backend (venv) en frontend (npm run dev) als npm beschikbaar is.
5. Ga naar http://localhost:5173
in je browser en gebruik de webinterface om de pipeline te starten.
De pipeline is ook via de command line te draaien:
make PYTHON_INTERPRETER=python3.11 run-cli ARGS="--input-audio audio/sample.mp3 --mode advanced"
logs/
– logbestanden per dag.transcripts/
– tussenresultaten en final_transcript.json
.results/
– transcript.html
, summary.txt
en advanced_analysis.json
.llm_training_data.db
– opgeslagen jobdata..env
en geaccepteerde modelvoorwaarden.int8
voor snellere verwerking.MIT – zie LICENSE
.
Samuel Willems – willems.samuel@gmail.com
Health:
GET /
→ { status: "ok" }
Upload audio:
POST /api/v1/upload_audio
(multipart: [email protected]
)Pipeline starten:
POST /api/v1/start_pipeline
(form: relative_audio_path=audio/<bestand>
+ optionele overrides volgens schema)Status polling:
GET /api/v1/status/<job_id>
Review data ophalen (wanneer status WAITING_FOR_REVIEW
):
GET /api/v1/get_review_data/<job_id>
Review data opslaan (samengevoegd endpoint):
POST /api/v1/update_review_data/<job_id>
{ "final_speaker_map": { ... } }
{ "speaker_map": { ... } }
werkt ookTranscript bijwerken (intermediate):
POST /api/v1/update_transcript_data/<job_id>
met { "transcript": [...] }
Losse adjust endpoint (snelle export):
POST /api/v1/transcriptions/<id>/adjust
{ "text": "..." }
→ results/<id>.txt
(append met {"append": true}
){ "transcript": [ ... ] }
→ transcripts/<id>.json
en results/<id>.html
Statische bestanden:
GET /results/<bestand>
→ resultaten (HTML/TXT)GET /audio/<bestand>
→ geuploade audioGET /transcripts/<bestand>.json
→ transcript JSON (read‑only)