DGX LLM Chat Gateway

Speech-to-Text

Transcription via /v1/audio/transcriptions (Whisper-large-v3-turbo via speaches on station). Datei-Upload + Live-Mikro mit chunked-Recording. Echte sub-300ms-Realtime via WebRTC ist BACKLOG (Phase 3.8).

no token
1 · Transcribe Uploaded File
2 · Record & Full Transcribe
3 · Chunked Transcription
4 · Streaming Transcription

Upload

🎙️
Drop a WAV / MP3 / FLAC / M4A / OGG file here, or click to choose.
no file selected

Parameters

Static Catalog der akzeptierten STT-Modelle: GET /v1/audio/models?type=stt (B.6 fix 2026-05-02). Allowlist erzwungen serverseitig — unbekannte Slugs → HTTP 400 statt silent-default.
Explizite Sprache verbessert Erkennungsqualität deutlich gegenüber auto-detect.
0 = greedy (deterministic). Höher = mehr Sampling-Varianz. Standard: 0.
Whisper nutzt das als Kontext-Hint für Vokabular-Bias.
idle

Result

No result yet — upload a file and click Transcribe.

Raw response (debug)

Mic capture — full mode

Audio wird bis Stop gesammelt, dann komplett zu POST /v1/audio/transcriptions hochgeladen. Server-seitige long-form-Transkription mit eigenem VAD-Filter (faster-whisper). Beste Qualität, aber Wartezeit nach Stop ≈ Audio-Länge × 0.3.
Auto-Stop nach dieser Zeit damit eine vergessene Aufnahme nicht endlos wächst.
idle silence

Live waveform (10 s history)

Result

Mikro starten → nach Stop erscheint hier das vollständige Transkript.

Mic capture — chunked mode

Browser-Mikro → Chunks → POST /v1/audio/transcriptions pro Chunk. VAD-Modus schneidet bei Sprech-Pause >600 ms (adaptiv). Niedrige Latenz, Transkripte erscheinen fortlaufend. Für sub-300 ms-Realtime → Tab 4 · Streaming.
Hard-Cap. Bei VAD wird bei 75 % der Länge der Silence-Trigger auf 250 ms reduziert.
idle silence

Live waveform — 10 s Historie + Phasen

Phasen-Hintergründe: silence, pre-speech, speech, post-speech. Rote vertikale Linien = Chunk-Boundaries. Rechts: VU-Meter mit Pegel + VAD-Schwelle + Noise-Floor.

Live transcript

Mikro starten → hier erscheinen Transkripte fortlaufend.

Chunks (debug)

Realtime-Stream (sub-300ms)

Browser-Mikro → MediaRecorder (WebM/Opus, 250 ms timeslice) → WebSocket /ws/audio/stream → rust-api proxy → WhisperLiveKit (AlignAtt-Policy, large-v3-turbo). Auth via Sec-WebSocket-Protocol: bearer.<TOKEN>. Server-side ffmpeg dekodiert WebM in Echtzeit; Antworten als JSON mit committed lines (stabil) und buffer_transcription (tentativ, kann sich noch ändern).
Pro Verbindung an den Server durchgereicht (?language=<code>). auto lässt Whisper aus dem ersten Audio-Chunk die Sprache selbst erkennen — kostet ~300 ms beim Start, sonst bei festem Code direkt los. Whisper-large-v3-turbo unterstützt ~99 Sprachen; die Liste hier ist eine pragmatische Top-Auswahl.
disconnected silence

Live waveform — 10 s Historie + Phasen (browser-seitig, rein optisch)

Rein visuelle Threshold — die Server-VAD ist im Stream-Pfad authoritativ (WhisperLiveKit AlignAtt). Adaptiv-Mode passt die Browser-Visualisierung an die Mikro-Umgebung an.
Rolling-Buffer der letzten 10 s. Farb-Phasen wie im Live-Record-Tab. Im Stream-Pfad ist die Server-VAD authoritativ (WhisperLiveKit AlignAtt) — diese Browser-Anzeige ist rein optisch, sie steuert keine Chunk-Boundaries (es gibt keine Browser-side Chunks im Stream-Pfad, nur ein kontinuierlicher WebM-Stream).

Live transcript

Stream starten → committed lines (volle Farbe) und tentatives Buffer (gedimmt) erscheinen hier.

Server messages (debug)

Audio history — items, — MB

Alle Audio-Files + Transkripte werden lokal in IndexedDB gespeichert (browser-only — never leaves your device unless you click 'Upload debug trace'). Tab 1 (upload), Tab 2 (full), Tab 3 (chunked) und Tab 4 (streaming) hängen jeweils ihre Items hier an. Pro Item: Download audio · Download trace.json · Copy trace JSON · Re-transcribe · Upload debug trace (zu unserem Server) · Delete. Quota-Warnung ab 500 MB — kein Auto-Delete (Q3-a).
no items yet — use a tab above to record/upload audio