Spaces:
Running
Running
| <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-0lmKKa3c.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> | |