|
40 | 40 |
|
41 | 41 | Note that the computation is quite heavy and may take a few seconds to complete.<br> |
42 | 42 | The transcription results will be displayed in the text area below.<br><br> |
43 | | - <b>Important: your browser must support WASM SIMD instructions for this to work.</b> |
| 43 | + <b>Important:</b> |
| 44 | + <ul> |
| 45 | + <li>your browser must support WASM SIMD instructions for this to work</li> |
| 46 | + <li>quantized models are still in experimental stage</li> |
| 47 | + <li>Firefox cannot load files larger than 256 MB - use Chrome instead</li> |
| 48 | + </ul> |
44 | 49 |
|
45 | | - <br><br><hr> |
| 50 | + <hr> |
46 | 51 |
|
47 | 52 | <div id="model"> |
48 | | - Whisper model: <span id="model-whisper-status"></span> |
| 53 | + Whisper models: <span id="model-whisper-status"></span><br><br> |
49 | 54 | <button id="fetch-whisper-tiny-en" onclick="loadWhisper('tiny.en')">tiny.en (75 MB)</button> |
50 | 55 | <button id="fetch-whisper-tiny" onclick="loadWhisper('tiny')">tiny (75 MB)</button> |
51 | 56 | <button id="fetch-whisper-base-en" onclick="loadWhisper('base.en')">base.en (142 MB)</button> |
52 | 57 | <button id="fetch-whisper-base" onclick="loadWhisper('base')">base (142 MB)</button> |
53 | 58 | <button id="fetch-whisper-small-en" onclick="loadWhisper('small.en')">small.en (466 MB)</button> |
54 | 59 | <button id="fetch-whisper-small" onclick="loadWhisper('small')">small (466 MB)</button> |
55 | | - <span id="fetch-whisper-progress"></span> |
56 | | - |
57 | 60 | <input type="file" id="whisper-file" name="file" onchange="loadFile(event, 'whisper.bin')" /> |
| 61 | + <br><br> |
| 62 | + Quantized models:<br><br> |
| 63 | + <button id="fetch-whisper-base-en-q4_0" onclick="loadWhisper('base-en-q4_0')">base.en (4bit, 49 MB)</button> |
| 64 | + <button id="fetch-whisper-base-q4_0" onclick="loadWhisper('base-q4_0')">base (4bit, 49 MB)</button> |
| 65 | + <button id="fetch-whisper-small-en-q4_0" onclick="loadWhisper('small-en-q4_0')">small.en (4bit, 152 MB)</button> |
| 66 | + <button id="fetch-whisper-small-q4_0" onclick="loadWhisper('small-q4_0')">small (4bit, 152 MB)</button><br> |
| 67 | + <button id="fetch-whisper-medium-en-q4_0" onclick="loadWhisper('medium-en-q4_0')">medium.en (4bit, 469 MB)</button> |
| 68 | + <button id="fetch-whisper-medium-q4_0" onclick="loadWhisper('medium-q4_0')">medium (4bit, 469 MB)</button> |
| 69 | + <button id="fetch-whisper-large-q4_0" onclick="loadWhisper('large-q4_0')">large (4bit, 985 MB)</button> |
| 70 | + <span id="fetch-whisper-progress"></span> |
58 | 71 | </div> |
59 | 72 |
|
60 | 73 | <br> |
|
263 | 276 |
|
264 | 277 | Module.FS_createDataFile("/", fname, buf, true, true); |
265 | 278 |
|
266 | | - model_whisper = fname; |
| 279 | + //model_whisper = fname; |
267 | 280 |
|
268 | 281 | document.getElementById('model-whisper-status').innerHTML = 'loaded "' + model_whisper + '"!'; |
269 | 282 |
|
|
292 | 305 | document.getElementById('fetch-whisper-tiny' ).style.display = 'none'; |
293 | 306 | document.getElementById('fetch-whisper-base' ).style.display = 'none'; |
294 | 307 | document.getElementById('fetch-whisper-small' ).style.display = 'none'; |
| 308 | + |
| 309 | + document.getElementById('fetch-whisper-base-en-q4_0' ).style.display = 'none'; |
| 310 | + document.getElementById('fetch-whisper-base-q4_0' ).style.display = 'none'; |
| 311 | + document.getElementById('fetch-whisper-small-en-q4_0' ).style.display = 'none'; |
| 312 | + document.getElementById('fetch-whisper-small-q4_0' ).style.display = 'none'; |
| 313 | + document.getElementById('fetch-whisper-medium-en-q4_0').style.display = 'none'; |
| 314 | + document.getElementById('fetch-whisper-medium-q4_0' ).style.display = 'none'; |
| 315 | + document.getElementById('fetch-whisper-large-q4_0' ).style.display = 'none'; |
| 316 | + |
295 | 317 | document.getElementById('whisper-file' ).style.display = 'none'; |
296 | 318 | document.getElementById('model-whisper-status' ).innerHTML = 'loaded model: ' + file.name; |
297 | 319 | } |
|
304 | 326 | 'base': 'https://whisper.ggerganov.com/ggml-model-whisper-base.bin', |
305 | 327 | 'small.en': 'https://whisper.ggerganov.com/ggml-model-whisper-small.en.bin', |
306 | 328 | 'small': 'https://whisper.ggerganov.com/ggml-model-whisper-small.bin', |
| 329 | + |
| 330 | + 'base-en-q4_0': 'https://whisper.ggerganov.com/ggml-model-whisper-base.en-q4_0.bin', |
| 331 | + 'base-q4_0': 'https://whisper.ggerganov.com/ggml-model-whisper-base-q4_0.bin', |
| 332 | + 'small-en-q4_0': 'https://whisper.ggerganov.com/ggml-model-whisper-small.en-q4_0.bin', |
| 333 | + 'small-q4_0': 'https://whisper.ggerganov.com/ggml-model-whisper-small-q4_0.bin', |
| 334 | + 'medium-en-q4_0':'https://whisper.ggerganov.com/ggml-model-whisper-medium.en-q4_0.bin', |
| 335 | + 'medium-q4_0': 'https://whisper.ggerganov.com/ggml-model-whisper-medium-q4_0.bin', |
| 336 | + 'large-q4_0': 'https://whisper.ggerganov.com/ggml-model-whisper-large-q4_0.bin', |
307 | 337 | }; |
308 | 338 |
|
309 | 339 | let sizes = { |
|
313 | 343 | 'base': 142, |
314 | 344 | 'small.en': 466, |
315 | 345 | 'small': 466, |
| 346 | + |
| 347 | + 'base-en-q4_0': 49, |
| 348 | + 'base-q4_0': 49, |
| 349 | + 'small-en-q4_0': 152, |
| 350 | + 'small-q4_0': 152, |
| 351 | + 'medium-en-q4_0': 469, |
| 352 | + 'medium-q4_0': 469, |
| 353 | + 'large-q4_0': 985, |
316 | 354 | }; |
317 | 355 |
|
318 | 356 | let url = urls[model]; |
|
327 | 365 | document.getElementById('fetch-whisper-tiny' ).style.display = 'none'; |
328 | 366 | document.getElementById('fetch-whisper-base' ).style.display = 'none'; |
329 | 367 | document.getElementById('fetch-whisper-small' ).style.display = 'none'; |
| 368 | + |
| 369 | + document.getElementById('fetch-whisper-base-en-q4_0' ).style.display = 'none'; |
| 370 | + document.getElementById('fetch-whisper-base-q4_0' ).style.display = 'none'; |
| 371 | + document.getElementById('fetch-whisper-small-en-q4_0' ).style.display = 'none'; |
| 372 | + document.getElementById('fetch-whisper-small-q4_0' ).style.display = 'none'; |
| 373 | + document.getElementById('fetch-whisper-medium-en-q4_0').style.display = 'none'; |
| 374 | + document.getElementById('fetch-whisper-medium-q4_0' ).style.display = 'none'; |
| 375 | + document.getElementById('fetch-whisper-large-q4_0' ).style.display = 'none'; |
| 376 | + |
330 | 377 | document.getElementById('whisper-file' ).style.display = 'none'; |
331 | 378 | document.getElementById('model-whisper-status' ).innerHTML = 'loading model: ' + model; |
332 | 379 |
|
|
343 | 390 | el = document.getElementById('fetch-whisper-tiny' ); if (el) el.style.display = 'inline-block'; |
344 | 391 | el = document.getElementById('fetch-whisper-base' ); if (el) el.style.display = 'inline-block'; |
345 | 392 | el = document.getElementById('fetch-whisper-small' ); if (el) el.style.display = 'inline-block'; |
| 393 | + |
| 394 | + el = document.getElementById('fetch-whisper-large-q4_0'); if (el) el.style.display = 'inline-block'; |
| 395 | + |
346 | 396 | el = document.getElementById('whisper-file' ); if (el) el.style.display = 'inline-block'; |
347 | 397 | el = document.getElementById('model-whisper-status' ); if (el) el.innerHTML = ''; |
348 | 398 | }; |
|
354 | 404 | // audio file |
355 | 405 | // |
356 | 406 |
|
357 | | - const kMaxAudio_s = 120; |
| 407 | + const kMaxAudio_s = 30*60; |
358 | 408 | const kSampleRate = 16000; |
359 | 409 |
|
360 | 410 | window.AudioContext = window.AudioContext || window.webkitAudioContext; |
|
0 commit comments