whisper.cpp安装
1. 背景
whisper是OpenAI官方发布的一款开源语音识别大模型,使用python实现。可以将语音信息转化为文本信息。其实也叫做ASR"自动语音识别”(Automatic Speech Recognition)。本文主要做的工作如下:
- 搭建whisper服务,和dify进行语音转写配合
- 针对MacOS进行优化编写
本文主要是用whisper.cpp,两者的区别是因为whipser官方默认功能比较重,whisper.cpp是社区将该模型移植到了C/C++版本,针对CPU和性能做了大量优化,区别如下:
| 对比项目 | whisper.cpp | whisper(官方实现) |
|---|---|---|
| 语言与依赖 | - 纯 C/C++ 实现 - 几乎不依赖第三方深度学习库,安装轻量 | - Python + PyTorch(或其他深度学习框架) - 依赖完整的深度学习环境(GPU 驱动、Python 环境等) |
| 运行平台/环境 | - 可在 Linux、macOS、Windows、移动端等多平台编译运行 - 针对 CPU 优化,依赖 SIMD 指令集 | - 一般在有 GPU(NVIDIA CUDA)的服务器/工作站或本地带 GPU 的环境中运行 - 也可在 CPU 上跑,但速度相对较慢 |
| 性能特点 | - 专门针对 CPU 进行优化(AVX/AVX2/NEON 等) - 在较低端硬件上也有不错的推理速度 | - 在 GPU 上推理速度快 - 在 CPU 上速度相对更慢,除非硬件配置较高或者模型规模小 |
| 使用方式 | - 提供命令行工具和 C/C++ API - 无需安装 Python,即可离线编译使用 | - 通过 Python 脚本或 CLI 使用 - 需要安装 PyTorch、依赖 Python 生态 |
| 模型兼容性 | - 支持官方的 Whisper 模型权重(需转换为 ggml 格式) - 部分模型可进行量化(如 int8、int4) | - 直接使用官方发布的 .pt 或 .bin 模型权重 |
| 部署场景 | - 适用于资源受限或不便部署 Python/PyTorch 的场景 - 可跨平台、嵌入式、本地离线语音转录等 | - 适用于有 GPU 环境的服务器或工作站,处理大批量音频数据 - 与 Python 生态(如深度学习工具、pipeline 等)配合度更高 |
| 社区与生态 | - 由社区维护,活跃度较高 - 不断出现新的优化分支、量化方案等 | - 由 OpenAI 发布,社区广泛使用 - 生态成熟,有众多第三方封装库、扩展 |
| 适用人群 | - C++/系统开发者或需要轻量级部署的用户 - 不想依赖 Python 环境、希望本地 CPU 直接推理 | - Python/深度学习开发者 - 需要与 PyTorch 兼容或直接在研究、生产环境中使用可扩展的深度学习框架 |
github的官方网址:
https://github.com/ggerganov/whisper.cpp
2. 安装
2.1 基础环境搭建
首先进行github文件下载并进入文件夹:
git clone https://github.com/ggerganov/whisper.cpp.git
cd whisper.cpp
根据需要下载whisper的模型:
sh ./models/download-ggml-model.sh base
其注意,不同的模型,需要的内存和大小不同,占用的存储和内存如下,一般来说使用small和base基本上也足够了。
| Model | Disk | Mem |
|---|---|---|
| tiny | 75 MiB | ~273 MB |
| base | 142 MiB | ~388 MB |
| small | 466 MiB | ~852 MB |
| medium | 1.5 GiB | ~2.1 GB |
| large | 2.9 GiB | ~3.9 GB |
注意,本下载需要从huggingface.co下载,如果无法下载,可以从官网下载
从官网下载,官网地址:https://ggml.ggerganov.com/
cd models
wget https://ggml.ggerganov.com/ggml-model-whisper-base.bin
下载下来的文件进行MD5校验,可以看到和huggingface上的md5一致。
shasum -a 1 ggml-model-whisper-base.bin
>>465707469ff3a37a2b9b8d8f89f2f99de7299dac ggml-model-whisper-base.bin
2.2 MacOS环境优化
针对苹果的M系列芯片,whisper.cpp进行了单独的优化,可以比单纯CPU速度更快。在安装之前保证:
- xcode正确安装,如果没有安装,在appstore上安装,并使用
xcode-select --install进行工具安装 - 使用python3.10
- MacOS的版本大于14.0
开始进行虚拟环境搭建:
安装homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
安装miniconda
brew install --cask miniconda
创建虚拟环境
conda create -n py310-whisper python=3.10 -y
激活虚拟环境
conda activate py310-whisper
如果报错`CondaError: Run 'conda init' before 'conda activate'`,是因为`.bashrc`中没有初始化,执行:
执行看是否有激活环境
cat ~/.zshrc | grep conda
cat ~/.bash_profile | grep conda
如果出现如下内容,则说明有添加,需要重新执行一下,如果没有,需要手动添加到bash_profile下,然后再激活虚拟环境
>>> conda initialize >>> conda_setup="$('/opt/homebrew/Caskroom/miniforge/base/bin/conda' 'shell.zsh' 'hook' 2> /dev/null)" eval "$__conda_setup" unset conda_setup # <<< conda initialize <<<
如果有,需要执行一下
source ~/.bash_profile
如果没有,手动添加执行
echo 'eval "$(/opt/homebrew/Caskroom/miniforge/base/bin/conda shell.zsh hook)"' >> ~/.zshrc
source ~/.zshrc
激活虚拟环境后进行环境安装:
```bash
pip install ane_transformers
pip install openai-whisper
pip install coremltools
开始针对Core ML进行模型优化,比如刚刚下载的是base,那么执行:
./models/generate-coreml-model.sh base
执行后会生成models/ggml-base-encoder.mlmodelc文件夹,然后开始进行针对mac优化的编译:
# using CMake,其中DWHISPER_COREML=1表示对macos的优化
cmake -B build -DWHISPER_COREML=1
cmake --build build -j --config Release
编译完毕后,可以运行sample:
$ ./build/bin/whisper-cli -m models/ggml-base.bin -f samples/jfk.wav
...
whisper_init_state: loading Core ML model from 'models/ggml-base-encoder.mlmodelc'
whisper_init_state: first run on a device may take a while ...
whisper_init_state: Core ML model loaded
system_info: n_threads = 4 / 10 | AVX = 0 | AVX2 = 0 | AVX512 = 0 | FMA = 0 | NEON = 1 | ARM_FMA = 1 | F16C = 0 | FP16_VA = 1 | WASM_SIMD = 0 | BLAS = 1 | SSE3 = 0 | VSX = 0 | COREML = 1 |
...
如果运行成功则表示运行成功了。
其中以目前whisper-cli仅支持16-bit wav格式的音频文件,如果不是此类文件比如是mp3文件,则需要使用ffmpeg进行转化。比如:
ffmpeg -i test.mp3 -ar 16000 -ac 1 -c:a pcm_s16le output.wav本文发布于2025年03月02日16:21,已经过了301天,若内容或图片失效,请留言反馈 -
github大模型软件评测
1. 背景 互联网上有许多开源的大模型软件,每种软件都有其独特的功能和优缺点。我曾试用过许多大模型软件,但最终效果和具体内容都未能完全记住。因此,本文将主要记录我所了解和使用过的大模型软件。此外,文中...
2025/02/19
-
whisper.cpp安装
1. 背景 whisper是OpenAI官方发布的一款开源语音识别大模型,使用python实现。可以将语音信息转化为文本信息。其实也叫做ASR"自动语音识别”(Automatic Speech Rec...
2025/03/02
-
【1】COGVIDEO生成视频
1. 背景 cogvideoX是清华和清影同源的开源视频生成大模型,详情可以查看:CogvideoXhttps://modelscope.cn/models/ZhipuAI/CogVideoX-5b-...
2024/11/19
-
whisper.cpp测试与使用
whipser.cpp安装完毕后,加载了多个大模型,分别进行测试。 测试项目 下载模型命令: bash sh ./models/download-ggml-model.sh base 测试命令: 转化...
2025/04/21
求索空间
apostle9891
360视觉云
360智慧生活
gitea
导航
hoppscotch
暂无评论