Skip to content

Commit a4dfbee

Browse files
authored
talk.wasm : GPT-2 meets Whisper in WebAssembly (ggerganov#155)
* talk : initial real-time transcription in the browser * talk : polishing the UI * talk : ready for beta testing * talk.wasm : rename example
1 parent 2e311a2 commit a4dfbee

File tree

8 files changed

+2083
-3
lines changed

8 files changed

+2083
-3
lines changed

bindings/javascript/CMakeLists.txt

+2-1
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,13 @@ target_link_libraries(${TARGET} PRIVATE
99
)
1010

1111
unset(EXTRA_FLAGS)
12+
1213
if (WHISPER_WASM_SINGLE_FILE)
1314
set(EXTRA_FLAGS "-s SINGLE_FILE=1")
1415
message(STATUS "Embedding WASM inside whisper.js")
1516

1617
add_custom_command(
17-
TARGET libwhisper POST_BUILD
18+
TARGET ${TARGET} POST_BUILD
1819
COMMAND ${CMAKE_COMMAND} -E copy
1920
${CMAKE_BINARY_DIR}/bin/libwhisper.js
2021
${CMAKE_CURRENT_SOURCE_DIR}/whisper.js

bindings/javascript/whisper.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

examples/CMakeLists.txt

+1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR})
2020

2121
if (EMSCRIPTEN)
2222
add_subdirectory(whisper.wasm)
23+
add_subdirectory(talk.wasm)
2324
else()
2425
add_subdirectory(main)
2526
add_subdirectory(stream)

examples/talk.wasm/CMakeLists.txt

+46
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
#
2+
# libtalk
3+
#
4+
5+
set(TARGET libtalk)
6+
7+
add_executable(${TARGET}
8+
emscripten.cpp
9+
)
10+
11+
target_link_libraries(${TARGET} PRIVATE
12+
whisper
13+
)
14+
15+
unset(EXTRA_FLAGS)
16+
17+
if (WHISPER_WASM_SINGLE_FILE)
18+
set(EXTRA_FLAGS "-s SINGLE_FILE=1")
19+
message(STATUS "Embedding WASM inside talk.js")
20+
21+
add_custom_command(
22+
TARGET ${TARGET} POST_BUILD
23+
COMMAND ${CMAKE_COMMAND} -E copy
24+
${CMAKE_BINARY_DIR}/bin/libtalk.js
25+
${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/talk.wasm/talk.js
26+
)
27+
endif()
28+
29+
set_target_properties(${TARGET} PROPERTIES LINK_FLAGS " \
30+
--bind \
31+
-s USE_PTHREADS=1 \
32+
-s PTHREAD_POOL_SIZE=8 \
33+
-s INITIAL_MEMORY=1400MB \
34+
-s TOTAL_MEMORY=1400MB \
35+
-s FORCE_FILESYSTEM=1 \
36+
-s EXPORTED_RUNTIME_METHODS=\"['print', 'printErr', 'ccall', 'cwrap']\" \
37+
${EXTRA_FLAGS} \
38+
")
39+
40+
#
41+
# talk.wasm
42+
#
43+
44+
set(TARGET talk.wasm)
45+
46+
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/index-tmpl.html ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${TARGET}/index.html @ONLY)

examples/talk.wasm/README.md

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# talk
2+
3+
WIP IN PROGRESS
4+
5+
ref: https://github.com/ggerganov/whisper.cpp/issues/154
6+
7+
demo: https://talk.ggerganov.com

0 commit comments

Comments
 (0)