ggerganov commited on
Commit
28d29de
·
unverified ·
1 Parent(s): 0d5a5d8

whisper.wasm : add small and small.en models

Browse files
bindings/javascript/whisper.js CHANGED
The diff for this file is too large to render. See raw diff
 
examples/whisper.wasm/CMakeLists.txt CHANGED
@@ -32,8 +32,8 @@ set_target_properties(${TARGET} PROPERTIES LINK_FLAGS " \
32
  --bind \
33
  -s USE_PTHREADS=1 \
34
  -s PTHREAD_POOL_SIZE=8 \
35
- -s INITIAL_MEMORY=1024MB \
36
- -s TOTAL_MEMORY=1024MB \
37
  -s FORCE_FILESYSTEM=1 \
38
  -s EXPORTED_RUNTIME_METHODS=\"['print', 'printErr', 'ccall', 'cwrap']\" \
39
  ${EXTRA_FLAGS} \
 
32
  --bind \
33
  -s USE_PTHREADS=1 \
34
  -s PTHREAD_POOL_SIZE=8 \
35
+ -s INITIAL_MEMORY=1500MB \
36
+ -s TOTAL_MEMORY=1500MB \
37
  -s FORCE_FILESYSTEM=1 \
38
  -s EXPORTED_RUNTIME_METHODS=\"['print', 'printErr', 'ccall', 'cwrap']\" \
39
  ${EXTRA_FLAGS} \
examples/whisper.wasm/index-tmpl.html CHANGED
@@ -46,10 +46,12 @@
46
 
47
  <div id="model">
48
  Whisper model: <span id="model-whisper-status"></span>
49
- <button id="fetch-whisper-tiny-en" onclick="loadWhisper('tiny.en')">tiny.en (75 MB)</button>
50
- <button id="fetch-whisper-tiny" onclick="loadWhisper('tiny')">tiny (75 MB)</button>
51
- <button id="fetch-whisper-base-en" onclick="loadWhisper('base.en')">base.en (142 MB)</button>
52
- <button id="fetch-whisper-base" onclick="loadWhisper('base')">base (142 MB)</button>
 
 
53
  <span id="fetch-whisper-progress"></span>
54
 
55
  <input type="file" id="whisper-file" name="file" onchange="loadFile(event, 'whisper.bin')" />
@@ -284,27 +286,33 @@
284
  }
285
  reader.readAsArrayBuffer(file);
286
 
287
- document.getElementById('fetch-whisper-tiny-en').style.display = 'none';
288
- document.getElementById('fetch-whisper-base-en').style.display = 'none';
289
- document.getElementById('fetch-whisper-tiny' ).style.display = 'none';
290
- document.getElementById('fetch-whisper-base' ).style.display = 'none';
291
- document.getElementById('whisper-file' ).style.display = 'none';
292
- document.getElementById('model-whisper-status' ).innerHTML = 'loaded model: ' + file.name;
 
 
293
  }
294
 
295
  function loadWhisper(model) {
296
  let urls = {
297
- 'tiny.en': 'https://whisper.ggerganov.com/ggml-model-whisper-tiny.en.bin',
298
- 'tiny': 'https://whisper.ggerganov.com/ggml-model-whisper-tiny.bin',
299
- 'base.en': 'https://whisper.ggerganov.com/ggml-model-whisper-base.en.bin',
300
- 'base': 'https://whisper.ggerganov.com/ggml-model-whisper-base.bin',
 
 
301
  };
302
 
303
  let sizes = {
304
- 'tiny.en': 75,
305
- 'tiny': 75,
306
- 'base.en': 142,
307
- 'base': 142,
 
 
308
  };
309
 
310
  let url = urls[model];
@@ -313,12 +321,14 @@
313
 
314
  model_whisper = model;
315
 
316
- document.getElementById('fetch-whisper-tiny-en').style.display = 'none';
317
- document.getElementById('fetch-whisper-base-en').style.display = 'none';
318
- document.getElementById('fetch-whisper-tiny' ).style.display = 'none';
319
- document.getElementById('fetch-whisper-base' ).style.display = 'none';
320
- document.getElementById('whisper-file' ).style.display = 'none';
321
- document.getElementById('model-whisper-status' ).innerHTML = 'loading model: ' + model;
 
 
322
 
323
  cbProgress = function(p) {
324
  let el = document.getElementById('fetch-whisper-progress');
@@ -327,12 +337,14 @@
327
 
328
  cbCancel = function() {
329
  var el;
330
- el = document.getElementById('fetch-whisper-tiny-en'); if (el) el.style.display = 'inline-block';
331
- el = document.getElementById('fetch-whisper-base-en'); if (el) el.style.display = 'inline-block';
332
- el = document.getElementById('fetch-whisper-tiny' ); if (el) el.style.display = 'inline-block';
333
- el = document.getElementById('fetch-whisper-base' ); if (el) el.style.display = 'inline-block';
334
- el = document.getElementById('whisper-file' ); if (el) el.style.display = 'inline-block';
335
- el = document.getElementById('model-whisper-status' ); if (el) el.innerHTML = '';
 
 
336
  };
337
 
338
  loadRemote(url, dst, size_mb, cbProgress, storeFS, cbCancel, printTextarea);
 
46
 
47
  <div id="model">
48
  Whisper model: <span id="model-whisper-status"></span>
49
+ <button id="fetch-whisper-tiny-en" onclick="loadWhisper('tiny.en')">tiny.en (75 MB)</button>
50
+ <button id="fetch-whisper-tiny" onclick="loadWhisper('tiny')">tiny (75 MB)</button>
51
+ <button id="fetch-whisper-base-en" onclick="loadWhisper('base.en')">base.en (142 MB)</button>
52
+ <button id="fetch-whisper-base" onclick="loadWhisper('base')">base (142 MB)</button>
53
+ <button id="fetch-whisper-small-en" onclick="loadWhisper('small.en')">small.en (466 MB)</button>
54
+ <button id="fetch-whisper-small" onclick="loadWhisper('small')">small (466 MB)</button>
55
  <span id="fetch-whisper-progress"></span>
56
 
57
  <input type="file" id="whisper-file" name="file" onchange="loadFile(event, 'whisper.bin')" />
 
286
  }
287
  reader.readAsArrayBuffer(file);
288
 
289
+ document.getElementById('fetch-whisper-tiny-en' ).style.display = 'none';
290
+ document.getElementById('fetch-whisper-base-en' ).style.display = 'none';
291
+ document.getElementById('fetch-whisper-small-en').style.display = 'none';
292
+ document.getElementById('fetch-whisper-tiny' ).style.display = 'none';
293
+ document.getElementById('fetch-whisper-base' ).style.display = 'none';
294
+ document.getElementById('fetch-whisper-small' ).style.display = 'none';
295
+ document.getElementById('whisper-file' ).style.display = 'none';
296
+ document.getElementById('model-whisper-status' ).innerHTML = 'loaded model: ' + file.name;
297
  }
298
 
299
  function loadWhisper(model) {
300
  let urls = {
301
+ 'tiny.en': 'https://whisper.ggerganov.com/ggml-model-whisper-tiny.en.bin',
302
+ 'tiny': 'https://whisper.ggerganov.com/ggml-model-whisper-tiny.bin',
303
+ 'base.en': 'https://whisper.ggerganov.com/ggml-model-whisper-base.en.bin',
304
+ 'base': 'https://whisper.ggerganov.com/ggml-model-whisper-base.bin',
305
+ 'small.en': 'https://whisper.ggerganov.com/ggml-model-whisper-small.en.bin',
306
+ 'small': 'https://whisper.ggerganov.com/ggml-model-whisper-small.bin',
307
  };
308
 
309
  let sizes = {
310
+ 'tiny.en': 75,
311
+ 'tiny': 75,
312
+ 'base.en': 142,
313
+ 'base': 142,
314
+ 'small.en': 466,
315
+ 'small': 466,
316
  };
317
 
318
  let url = urls[model];
 
321
 
322
  model_whisper = model;
323
 
324
+ document.getElementById('fetch-whisper-tiny-en' ).style.display = 'none';
325
+ document.getElementById('fetch-whisper-base-en' ).style.display = 'none';
326
+ document.getElementById('fetch-whisper-small-en').style.display = 'none';
327
+ document.getElementById('fetch-whisper-tiny' ).style.display = 'none';
328
+ document.getElementById('fetch-whisper-base' ).style.display = 'none';
329
+ document.getElementById('fetch-whisper-small' ).style.display = 'none';
330
+ document.getElementById('whisper-file' ).style.display = 'none';
331
+ document.getElementById('model-whisper-status' ).innerHTML = 'loading model: ' + model;
332
 
333
  cbProgress = function(p) {
334
  let el = document.getElementById('fetch-whisper-progress');
 
337
 
338
  cbCancel = function() {
339
  var el;
340
+ el = document.getElementById('fetch-whisper-tiny-en' ); if (el) el.style.display = 'inline-block';
341
+ el = document.getElementById('fetch-whisper-base-en' ); if (el) el.style.display = 'inline-block';
342
+ el = document.getElementById('fetch-whisper-small-en'); if (el) el.style.display = 'inline-block';
343
+ el = document.getElementById('fetch-whisper-tiny' ); if (el) el.style.display = 'inline-block';
344
+ el = document.getElementById('fetch-whisper-base' ); if (el) el.style.display = 'inline-block';
345
+ el = document.getElementById('fetch-whisper-small' ); if (el) el.style.display = 'inline-block';
346
+ el = document.getElementById('whisper-file' ); if (el) el.style.display = 'inline-block';
347
+ el = document.getElementById('model-whisper-status' ); if (el) el.innerHTML = '';
348
  };
349
 
350
  loadRemote(url, dst, size_mb, cbProgress, storeFS, cbCancel, printTextarea);