Spaces:
Sleeping
Sleeping
| <html lang="en"> | |
| <head> | |
| <meta charset="utf-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1"> | |
| <title>Voice Latency Lab</title> | |
| <link rel="stylesheet" href="/static/styles.css?v=20260503c"> | |
| </head> | |
| <body> | |
| <main class="shell"> | |
| <section class="panel"> | |
| <p class="eyebrow">Speech Loop Test</p> | |
| <h1>Voice Latency Lab</h1> | |
| <p class="lede"> | |
| Stream mic audio from your phone, let local <code>faster-whisper</code> transcribe it, | |
| then play a Chatterbox Turbo reply back over the same socket. | |
| </p> | |
| <div class="controls"> | |
| <label class="field"> | |
| <span>Voice prompt path</span> | |
| <input id="voicePromptPath" type="text" placeholder="/home/rapheal/sample-voice.wav"> | |
| </label> | |
| <button id="connectButton">Start Session</button> | |
| </div> | |
| <div class="stats"> | |
| <div class="card"> | |
| <span>Socket</span> | |
| <strong id="socketState">idle</strong> | |
| </div> | |
| <div class="card"> | |
| <span>Mic level</span> | |
| <strong id="micLevel">0.00000</strong> | |
| </div> | |
| <div class="card"> | |
| <span>Detected speech</span> | |
| <strong id="speechState">no</strong> | |
| </div> | |
| </div> | |
| <div class="logWrap"> | |
| <p class="sectionTitle">Transcript</p> | |
| <pre id="transcriptLog" class="log"></pre> | |
| </div> | |
| <div class="logWrap"> | |
| <p class="sectionTitle">Assistant</p> | |
| <pre id="assistantLog" class="log activityPane"></pre> | |
| </div> | |
| <div class="logWrap"> | |
| <p class="sectionTitle">Agent Activity</p> | |
| <pre id="activityLog" class="log activityPane" aria-live="polite"></pre> | |
| </div> | |
| </section> | |
| </main> | |
| <script type="module" src="/static/app.js?v=20260503c"></script> | |
| </body> | |
| </html> | |