Whisper 可將語音直接輸出成文字,而 whisper.wasm 為其 Web 版本,可直接跑在 Browser 上,其編譯基於 Python、Emscripten 與 CMake,需裝好這三個才能 make 編譯。
Version
2020 13” MacBook Pro (Intel i5)
macOS Sonoma 14.1.2
Anaconda Navigator 2.5.1
Python 3.9
Emscripten 3.1.5
CMake 3.28.0
whisper.wasm
https://github.com/ggerganov/whisper.cpp/tree/master/examples/whisper.wasm
- Whisper 的 WebAssembly 版本
- 提供 index-tmp.html 整合範例
Anaconda
Python 版本管理工具,由於 whisper.wasm 目前只能在 Python 3.9 編譯,需使用 Anaconda 準備 Python 3.9 環境。
https://www.anaconda.com/download
- 下載 Graphical Installer 版本安裝 Anaconda (為 pkg)
Anaconda Navigator
- 按
Create
建立執行環境 - Name:建立環境名稱 (不能使用
.
,只能以-
代替) - Packages Python:指定 Python 版本為
3.9.18
- 選擇
環境名稱
,右鍵Open Terminal
開啟 Python 3.9.18 環境
Emscripten
$ brew install emscripten
- 在 Python 3.9 下使用 Homebrew 安裝 Emscripten
CMake
$ brew install cmake
- 在 Python 3.9 下使用 Homebrew 安裝 CMake
編譯 whisper.wasm
$ git clone https://github.com/ggerganov/whisper.cpp
$ cd whisper.cpp
- 使用 git 下載
whisper.cpp
CMakeList.txt
Line 9
set(CMAKE_THREAD_LIBS_INIT "-Ipthread")
set(CMAKE_HAVE_THREADS_LIBRARY 1)
set(CMAKE_USE_WIN32_THREADS_INIT 0)
set(CMAKE_USE_PTHREADS_INIT 1)
set(THREADS_PREFER_PTHREAD_FLAG ON)
- 開啟在
whisper.cpp
下的CMakeList.txt
- 在第 9 行加入以上
set
make
$ mkdir build-em && cd build-em
$ emcmake cmake ..
$ make -j
- 建立
build-em
目錄 - 並在
build-em
目錄下執行emcmake cmake ..
產生 makefile - 執行
make -j
編譯whisper.wasm