Setzt den in #84 skizzierten Workflow um: record.html nimmt im Handy-Browser eine Sprachnotiz per MediaRecorder auf und laedt sie unauthentifiziert zu POST /api/v1/agents/{id}/recordings hoch. Ein Klick auf die Personen-Figur jedes registrierten Agenten in der Buero-Visualisierung verlinkt dorthin, ein Zaehler am Schreibtisch zeigt offene Aufnahmen. Der Agent selbst holt seine Warteschlange ueber die bestehenden Api-Key-authentifizierten Endpunkte ab (GET .../recordings, GET /recordings/{id}/audio) und markiert eine Aufnahme nach der Transkription per PATCH als erledigt - die eigentliche Transkription (whisper.cpp/faster-whisper) bleibt agent-seitig, siehe fds2610/Agent#17. Schliesst #85
38 lines
1.6 KiB
HTML
38 lines
1.6 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="de">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<link rel="icon" type="image/png" href="/favicon.png">
|
|
<title>Sprachaufnahme</title>
|
|
<link rel="stylesheet" href="css/record.css">
|
|
</head>
|
|
<body>
|
|
<header class="record-header">
|
|
<h1>Sprachaufnahme</h1>
|
|
<p>Für: <strong id="agent-name">…</strong></p>
|
|
</header>
|
|
|
|
<main class="record-main">
|
|
<p id="status" class="record-status" role="status"></p>
|
|
|
|
<div class="record-controls">
|
|
<button id="start-button" type="button" class="record-button record-button-start">Aufnahme starten</button>
|
|
<button id="stop-button" type="button" class="record-button record-button-stop" hidden>Aufnahme beenden</button>
|
|
</div>
|
|
|
|
<audio id="audio-preview" class="record-preview" controls hidden></audio>
|
|
|
|
<div class="record-controls">
|
|
<button id="upload-button" type="button" class="record-button record-button-upload" hidden>Hochladen</button>
|
|
<button id="discard-button" type="button" class="record-button record-button-discard" hidden>Verwerfen</button>
|
|
</div>
|
|
</main>
|
|
|
|
<!-- Laufzeit-Konfiguration (API-Basis-URL): wird vom Webserver aus MONITOR_API_BASE
|
|
erzeugt, siehe docker/nginx/default.conf.template - dieselbe Datei wie office.html
|
|
nutzt, damit record.js ueber office-api.js dieselbe API erreicht. -->
|
|
<script src="/config.js"></script>
|
|
<script type="module" src="js/record.js"></script>
|
|
</body>
|
|
</html>
|