| <!DOCTYPE html> |
| <html> |
| <head> |
| <meta charset="utf-8" /> |
| <meta name="viewport" content="width=device-width" /> |
| <title>Speech Recognition Vue - HuggingFace.js Live Examples</title> |
| <link rel="stylesheet" href="pico.classless.min.css" /> |
| <link rel="stylesheet" href="main.css" /> |
| <script src="https://unpkg.com/vue@3/dist/vue.global.js"></script> |
| </head> |
| <body> |
| <div id="app" class="container"> |
| <h1>Speech Recognition</h1> |
| <div class="grid grid-cols-2 gap-2"> |
| <div> |
| <label for="hf-token" |
| >Hugging Face Token (optional but limited if absent)</label |
| > |
| <input |
| id="hf-token" |
| v-model="token" |
| placeholder="HF-TOKEN" |
| type="password" |
| /> |
| </div> |
| <div> |
| <label for="model-select">Select a model</label> |
| <select id="model-select" v-model="selectedModel"> |
| <option v-for="model in models" :value="model">{{ model }}</option> |
| </select> |
| </div> |
| </div> |
| <div class="grid grid-cols-2 gap-2"> |
| <div> |
| <label for="audio-select">Select an audio (Dataset: MLCommons/peoples_speech)</label> |
| <select id="audio-select" v-model="selectedAudio"> |
| <option v-for="audioFile in audioFiles" :value="audioFile"> |
| {{ audioFile }} |
| </option> |
| </select> |
| </div> |
| <div> |
| <label id="audio-label">Audio Player</label> |
| <audio id="audio" controls :src="selectedAudio"></audio> |
| </div> |
| </div> |
| <button class="btn-success" @click="run">Transcribe</button> |
| <h3>{{statusMessage}}</h3> |
| <p>{{recognizedText}}</p> |
| </div> |
| <script type="module" src="./index.js"></script> |
| </body> |
| </html> |
|
|