logo 🤗

技术视野

聚焦科技前沿,分享技术解析,洞见未来趋势。在这里,与您一起探索人工智能的无限可能,共赴技术盛宴。

开发阶段

  1. 拉取容器,对于国内用户,可以换南京大学镜像。
docker pull ghcr.io/ggerganov/whisper.cpp:main
# 国内镜像
docker pull ghcr.nju.edu.cn/ggerganov/whisper.cpp:main
docker tag ghcr.nju.edu.cn/ggerganov/whisper.cpp:main ghcr.io/ggerganov/whisper.cpp:main
  1. 创建一个模型路径,用于后面将模型放到此处
mkdir model_files
  1. 创建一个开发容器
docker run -it -d \
    -p 9080:8080 \
    -v ./model_files:/app/model_files \
    --name whisper_cpp_dev \
    ghcr.io/ggerganov/whisper.cpp:main \
    /bin/bash
  1. 进入容器
docker exec -it whisper_cpp_dev /bin/bash
  1. 下载官方转换好的ggml模型,得给文件换个源
cd /app/models
sed -i 's#https://huggingface.co#https://hf-mirror.com#g' ./download-ggml-model.sh
./download-ggml-model.sh base
  • 关于支持的文件,可以从这里查看。huggingface链接
  • 下载好的文件在当前/app/models目录下,咱们可以将其放到我们刚刚映射的目录
mv /app/models/ggml-base.bin /app/model_files/ggml-base.bin
  1. 进入二进制执行目录
cd /app/build/bin
  1. 执行whisper-server
./whisper-server -m /app/model_files/ggml-base.bin --host 0.0.0.0 --language auto --convert
  • -m 选择模型路径
  • --language auto即自动选择语言
  • --convert 将所有音频都转成WAV格式,这样的话,你就可以将一些视频文件也传输上去了。
  • 打开你的http://[你的IP]:9080,然后上传文件,输出格式选择text,你就可以看到输出的内容了。不过默认输出结果是英文。
  • 拿CPU部署(服务默认是4线程),测试了一下哆啦A梦第一集(视频长度:429秒)
类型模型磁盘占用推理时间(秒)识别比大概准确率备注
base142 MiB29.621:1485%
small466 MiB841:586%
large-v3-turbo-q5_0547 MiB6361:0.6790%识别结果是繁体中文

GPU容器-开发阶段

  1. 拉取容器
docker pull ghcr.io/ggerganov/whisper.cpp:main-cuda
# 国内镜像
docker pull ghcr.nju.edu.cn/ggerganov/whisper.cpp:main-cuda
docker tag ghcr.nju.edu.cn/ggerganov/whisper.cpp:main-cuda ghcr.io/ggerganov/whisper.cpp:main-cuda
  1. 运行容器
docker run --gpus 'all' \
  -d \
  -it \
  -p 8080:8080 \
  --ipc=host \
  --ulimit memlock=-1 \
  --restart=always \
  --ulimit stack=67108864 \
  -e TZ=Asia/Shanghai \
  -e LD_LIBRARY_PATH="" \
  --restart=always \
  -v ./model_files:/app/model_files \
  --name whisper_cpp_dev  \
  ghcr.io/ggerganov/whisper.cpp:main-cuda /bin/bash
  1. 进入容器
docker exec -it whisper_cpp_dev /bin/bash
  1. 执行server
./server -m /app/model_files/ggml-large-v2-q5_0.bin --host 0.0.0.0 --language auto --convert
  1. 报错,提示:`ggml_cuda_init: failed to initialize CUDA: system has unsupported display driver / cuda driver combination
    `
  2. 查看issue,目测是dockerfile中LD_LIBRARY_PATH定义导致异常,回到第二步,我们加上一个-e LD_LIBRARY_PATH=""
  3. 测试结果(Nvidia RTX 4080),测试了一下哆啦A梦第一集(视频长度:429秒)
类型模型磁盘占用推理时间(秒)识别比大概准确率备注
large-v2-q5_01.1 GiB14.391: 3091%歌曲部分貌似被识别成了繁体
large-v2-q8_01.5 GiB13.181: 32.591%歌曲部分貌似被识别成了繁体
large-v22.9 GiB17.51: 24.591%歌曲部分貌似被识别成了繁体
large-v3-turbo-q5_0547 MiB6.691: 6485%歌曲部分貌似被识别成了繁体,小概率幻觉重复
large-v3-turbo-q8_0834 MiB7.561: 5785%歌曲部分貌似被识别成了繁体,小概率幻觉重复
large-v3-turbo1.5 GiB7.321: 58.691%全变成了繁体了,部分乱码
large-v3-q5_01.1 GiB/ 70%出现了幻觉,较多重复输出
large-v32.9 GiB/ 50%出现了幻觉,超多重复输出
  1. 综合来看,目前用large-v2-q8_0性价比更高一些。

版权属于:tlntin
作品采用:本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
更新于: 2025年03月29日 17:15


42 文章数
5 分类数
43 页面数
已在风雨中度过 1年320天14小时7分
目录
来自 《Whisper.cpp docker部署》
暗黑模式
暗黑模式
返回顶部
暗黑模式
暗黑模式
返回顶部