File size: 2,880 Bytes
98e1028
009fd18
 
 
 
 
 
 
 
 
 
 
 
b480fb1
 
009fd18
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
98e1028
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <meta
      name="viewport"
      content="width=device-width, initial-scale=1, viewport-fit=cover"
    />
    <title>Personal Voice Agent</title>
    <meta
      name="description"
      content="Local browser voice assistant with on-device speech processing."
    />
    <script type="module" crossorigin src="/assets/index-oatRNbfa.js"></script>
    <link rel="stylesheet" crossorigin href="/assets/index-D37VpK1p.css">
  </head>
  <body>
    <main class="app-shell">
      <section class="view" id="calibration-view">
        <article class="card calibration-card">
          <p class="eyebrow">Microphone Calibration</p>
          <h1 class="card-title">Speech Calibration</h1>
          <p class="card-copy" id="calibration-copy">
            Read the following lines clearly at a comfortable speaking pace
            until calibration is complete. Repeat from the beginning if time
            remains.
          </p>
          <p class="prompt-block" id="calibration-prompt">
            The quick brown fox jumps over the lazy dog.
            I am speaking in my natural voice at a comfortable volume.
            The sound of my own voice has never bothered me.
            A recording is never quite the same as the original.
            I confirm this is a true representation of how I speak.
            My speech remains clear when I maintain a consistent distance from the microphone.
            I will continue speaking until the calibration timer reaches zero.
            This sample should capture my normal pronunciation and pacing.
          </p>
          <div class="meter" aria-hidden="true">
            <div class="meter-fill" id="calibration-fill"></div>
          </div>
          <p class="timer-text" id="calibration-timer">
            Calibration required before the first session.
          </p>
          <p class="summary-text" id="benchmark-summary" hidden></p>
          <div class="button-row">
            <button class="primary-button" id="calibration-button" type="button">
              Calibrate
            </button>
          </div>
          <div class="error-box" id="calibration-error" hidden></div>
        </article>
      </section>

      <section class="view" id="assistant-view" hidden>
        <article class="card assistant-card">
          <div class="transcript-log" id="transcript-log">
            <div class="transcript-empty" id="transcript-empty">
              Press Record and ask a question.
            </div>
          </div>

          <div class="button-row">
            <button class="primary-button" id="record-button" type="button">
              Record
            </button>
          </div>

          <div class="error-box" id="assistant-error" hidden></div>
        </article>
      </section>
    </main>
  </body>
</html>