whisper.cpp/examples/bench.wasm
jinweihan fc674574ca
bench : sync submit-results URL to ggml-org (#3769)
The project moved from ggerganov/ to ggml-org/ and the README already
references the new URL in both places it mentions issue #89 (README.md
and examples/bench/README.md). Syncing the two remaining hardcoded URLs
in examples/bench/bench.cpp and examples/bench.wasm/emscripten.cpp.

The old URL still redirects, so this is cosmetic.
2026-04-20 07:12:57 +02:00
..
CMakeLists.txt examples : add HEAPU8 to all of the exported runtime methods (#3134) 2025-05-10 06:44:13 +02:00
README.md examples : add note about WHISPER_WASM_SINGLE_FILE [no ci] (#3332) 2025-07-24 16:06:48 +02:00
emscripten.cpp bench : sync submit-results URL to ggml-org (#3769) 2026-04-20 07:12:57 +02:00
index-tmpl.html examples : add wchess.wasm to wasm examples build (#3443) 2025-09-30 16:23:01 +02:00

README.md

bench.wasm

Benchmark the performance of whisper.cpp in the browser using WebAssembly

Link: https://ggml.ai/whisper.cpp/bench.wasm/

Terminal version: examples/bench

Build instructions

# build using Emscripten (v3.1.2)
git clone https://github.com/ggerganov/whisper.cpp
cd whisper.cpp
mkdir build-em && cd build-em
emcmake cmake ..
make -j

The example can then be started by running a local HTTP server:

python3 examples/server.py

And then opening a browser to the following URL: http://localhost:8000/bench.wasm

To run the example in a different server, you need to copy the following files to the server's HTTP path:

# copy the produced page to your HTTP path
cp bin/bench.wasm/*       /path/to/html/
cp bin/libbench.js        /path/to/html/
cp bin/libbench.worker.js /path/to/html/

📝 Note: By default this example is built with WHISPER_WASM_SINGLE_FILE=ON which means that that a separate .wasm file will not be generated. Instead, the WASM module is embedded in the main JS file as a base64 encoded string. To generate a separate .wasm file, you need to disable this option by passing -DWHISPER_WASM_SINGLE_FILE=OFF:

emcmake cmake .. -DWHISPER_WASM_SINGLE_FILE=OFF

This will generate a libbench.wasm file in the build/bin directory.

📝 Note: As of Emscripten 3.1.58 (April 2024), separate worker.js files are no longer generated and the worker is embedded in the main JS file. So the worker file will not be geneated for versions later than 3.1.58.