Zum Inhalt

Entwicklung

Voraussetzungen

  • Node.js (>= 22) inkl. npm
  • Python 3.12

Bauen

Python-Umgebung & Dependencies

pip install uv
uv sync --group dev

Frontend bauen

npm ci
npm run build

Hugging-Face Token setzen

export HF_TOKEN=<YOUR_HF_TOKEN>

Modelle herunterladen & Konfiguration erzeugen

cd packages/asr_service
python -m shared.model_download required-models.txt -gr
cd ../..

GPU (optional)

Wenn Transkriptionen per GPU beschleunigt werden sollen, müssen passende NVIDIA-Bibliotheken installiert sein.

# CUDA 12.8 (z. B. Ada/Lovelace)
uv pip install 'torch==2.8.0' 'torchaudio==2.8.0' 'torchvision==0.23.0' --index-url https://download.pytorch.org/whl/cu128

# Blackwell (mindestens Torch 2.10, CUDA 13.0)
uv pip install 'torch==2.10.0' 'torchaudio==2.10.0' 'torchvision==0.25.0' --index-url https://download.pytorch.org/whl/cu130

Falls es zu cudnn/Library-Fehlern kommt, prüfen Sie den LD_LIBRARY_PATH. Beispiel:

export LD_LIBRARY_PATH="$(pwd)/.venv/lib/python3.12/site-packages/nvidia/cublas/lib:$(pwd)/.venv/lib/python3.12/site-packages/nvidia/cudnn/lib:$LD_LIBRARY_PATH"

Dienste starten (lokal)

Virtuelle Python-Umgebung aktivieren:

source .venv/bin/activate

ASR Service

Start mit Default-Konfiguration packages/asr_service/asr-service.default.yml:

cd packages/asr_service
python -m asr_service

Eigene Konfiguration (z. B. packages/asr_service/asr-service.local.yml) verwenden:

cd packages/asr_service
python -m asr_service -c local

Die dazugehörige Oberfläche über npm starten:

cd packages/asr_service_ui
npm run dev

Web Service

cd packages/web_service
python -m web_service

Die dazugehörige Oberfläche über npm starten:

cd packages/web_service_ui
npm run dev

Kundenspezifische Anpassungen an der UI

Um kundenspezifische Anpassungen an der UI zu testen, kann die Config-Datei durch Setzen der Umgebungsvariable VITE_MODE übersteuert werden. Diese am besten direkt in der Datei packages/web_service_ui/.env setzen. Dadurch wird nach einer config Datei mit dem Namen packages/web_service_ui/public/config.${VITE_MODE}.json gesucht.

packages/web_service_ui/.env-Datei:

VITE_MODE=local

In der Konfiguration können auch kundenspezifische Werte für zusätzliche Seiten angegeben werden.

packages/web_service_ui/public/config.local.json-Datei:

{
  "label": "Mein Audiominer",
  "logo_url": "logo.svg",
  "copyright": "Meine Organisation",
  "transcribe_info": "Laden Sie hier Ihre Datei hoch. ",
  "mail_placeholder": "ihr-name@meine-org.de",
  "mail_domain_check": "meine-org.de",
  "mail_help_txt": "Falls Sie Ihre Transkription per E-Mail erhalten möchten, tragen Sie hier eine E-Mailadresse ein.",
  "pages": [
    {
      "label": "ANLEITUNG",
      "path": "anleitung",
      "file": "Anleitung.local"
    },
    {
      "label": "DATENSCHUTZ",
      "path": "datenschutz",
      "file": "Datenschutz.local"
    },
    {
      "label": "IMPRESSUM",
      "path": "impressum",
      "file": "Impressum.local"
    }
  ]
}

Entsprechend können die Seiten unter pages angelegt werden:

pages/
  Anleitung.local.html
  Datenschutz.local.html
  Impressum.local.html

Die hier beschriebenen Dateien .env, *.local.json und *.local.html sind per .gitignore vom Einbinden in das Repo ausgeschlossen, so können diese lokal modifiziert/getestet werden, ohne in die Codebase zu gelangen.

Siehe ebenfalls Dokumentation zum Thema Branding.

FS Watcher

cd packages/fs_watcher
python -m fs_watcher

Notify Service

cd packages/notify_service
python -m notify_service

Versionierung

uv run poe version (patch|minor|major)