WebRTC VAD Demo

by juberti

HTML

<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>WebRTC VAD Demo</title>
  <style>
    :root {
      --bg: #020617;
      --panel: #0f172a;
      --panel2: #020617;
      --border: #1e293b;
      --text: #e2e8f0;
      --muted: #94a3b8;
      --blue: #2563eb;
      --green: #22c55e;
      --slate: #64748b;
      --red: #ef4444;
      --emerald: #10b981;
    }
    * { box-sizing: border-box; }
    body {
      margin: 0;
      font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
      background: var(--bg);
      color: var(--text);
      padding: 24px;
    }
    .container { max-width: 1100px; margin: 0 auto; }
    h1 { font-size: 32px; margin: 0 0 10px; }
    p { color: var(--muted); }
    .grid { display: grid; gap: 16px; }
    .grid-2 { grid-template-columns: 320px 1fr; }
    .card {
      background: var(--panel);
      border: 1px solid var(--border);
      border-radius: 20px;
      padding: 18px;
    }
    .subcard {
      background: var(--panel2);
      border: 1px solid var(--border);
      border-radius: 18px;
      padding: 14px;
    }
    .row { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
    .btn {
      border: 0;
      border-radius: 14px;
      padding: 10px 14px;
      font-size: 14px;
      color: white;
      cursor: pointer;
    }
    .btn-blue { background: var(--blue); }
    .btn-emerald { background: #047857; }
    .btn-slate { background: #1e293b; }
    .btn:disabled { opacity: 0.5; cursor: not-allowed; }
    label { display: block; margin-top: 14px; }
    label .label { font-size: 13px; color: var(--muted); margin-bottom: 6px; }
    select {
      width: 100%;
      border-radius: 12px;
      border: 1px solid var(--border);
      background: #1e293b;
      color: var(--text);
      padding: 10px...