Skip to content
Porter 的流水账
Go back

用 Whisper.cpp 做 ASR

最近有对英文 audio file 做 ASR 的需求,这里记录一下用 Whisper.cpp 在 macOS 平台上处理音频之后得到转录文本的过程。

Whisper.cpp 不提供 Mac 平台的预编译包,所以只能用 CMake 编译源代码来使用。编译之前可以用 Homebrew 安装 CMake:

brew install cmake

没有 Xcode 编译环境的话也可以先装一下:

xcode-select --install

接下来 clone 源码和编译:

git clone https://github.com/ggml-org/whisper.cpp.git
cd whisper.cpp

cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j --config Release

# 编译完成后会得到 ./build/bin/whisper-cli

在真正做 ASR 之前还要下载模型,这里下载的是 large-v3-turbo

sh ./models/download-ggml-model.sh large-v3-turbo

# 模型下载好之后会保存在 models/ggml-large-v3-turbo.bin

如果用自带的脚本下载模型失败,也可以用下载工具(比如 Folx)直接下载 https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-large-v3-turbo.bin,下载完之后放在 models 目录下就好了。

上面这些都准备好之后就可以做 audio 转录了:

./build/bin/whisper-cli \
  -m models/ggml-large-v3-turbo.bin \
  -f ~/input.wav \
  -otxt

Whisper.cpp 接受的输入格式是 16-bit WAV,所以如果输入格式是 m4a 的话,可以用 ffmpeg 先转换一下再做 ASR:

ffmpeg -i input.m4a -ar 16000 -ac 1 -c:a pcm_s16le input.wav

如果比较明确 audio 里使用的语言还可以用参数直接告诉 Whishper.cpp,这样比自动检测会更稳定些,比如 -l zh


Share this post on:

Previous Post
tmux 入门教程
Next Post
uv 笔记