whisper 合入 ffmpeg,8.0 开始可能使用语音转文字的 AI 智能。
1. whisper 简介
Whisper 是 OpenAI 开发的一款自动语音识别(ASR)模型,同时支持多语言语音转文字、语音翻译(如将其他语言语音直接转为英文文本)等功能。
适用于语音助手、会议记录、字幕生成、多语言沟通等场景,因其开源特性和易用性,被广泛用于开发者和企业的语音处理项目中。
准确的说,这次 ffmpeg8.0 合入的是 whisper.cpp 开源库:
https://github.com/ggml-org/whisper.cpp.git
Whisper.cpp 是一个基于 C/C++ 实现的开源项目,旨在将 OpenAI 的 Whisper 语音识别模型以轻量级、高性能的方式部署到各种平台,包括嵌入式设备、PC 和服务器等。
- 跨平台兼容:支持 Windows、Linux、macOS 等主流系统,甚至能在树莓派、iOS、Android 等嵌入式或移动设备上运行。
- 轻量高效:无需依赖 Python 环境或大型深度学习框架(如 PyTorch),通过纯 C/C++ 实现推理,内存占用低,运行速度快。
- 功能完整:保留了 Whisper 模型的核心能力,包括多语言语音识别、语音转文字、时间戳标记等,同时支持命令行调用和二次开发。
- 易于集成:提供简洁的 API 接口,方便开发者将语音识别功能嵌入到自己的 C/C++ 项目中,也支持通过其他语言(如 Python、Go 等)调用。
适合需要本地部署语音识别功能、对资源占用敏感,或需要在嵌入式设备上实现语音处理的场景,比如智能家居设备、离线语音助手、本地录音转文字工具等。
2. ffmpeg8.0 的 whisper
ffmpeg8.0 是把 whisper.cpp 合入到 ffmpeg 的 avfilter 模块中,作为 avfilter 的一个子功能来使用。
2.1 如何编译
第一步,下载 whisper.cpp 并用 cmake 进行构造和编译:
git clone https://github.com/ggml-org/whisper.cpp.git
cd whisper.cpp
mkdir objs
cd objs
cmake ..
make -j 2
make install
第二步,下载 ffmpeg,当前采用的是 master 分支 (后面肯定会生成 release8.0):
git clone https://git.ffmpeg.org/ffmpeg.git
cd ffmpeg
git checkout master
第三步,编译 ffmpeg,给大家参考的./configure 命令行,主要加入使能 whisper 编译的部分,供参考:
./configure --enable-cross-compile \
--disable-avdevice \
--disable-doc \
--disable-devices \
--enable-filters \
--enable-libx264 \
--enable-nonfree \
--disable-asm \
--enable-gpl \
--enable-whisper \
--extra-ldflags="-Wl,-rpath,/usr/local/lib" \
make -j 2
make install
--enable-whisper就是使能 whisper.cpp 模块,该模块合入到 avfilter 模块中。
2.2 命令行如何使用
给个简单的例子,把一个视频中的音频进行语音转文字,并输出成.srt 的字幕文件。
ffmpeg -i ./movie.mp4 \
-vn -af "whisper=model=/home/runner365/whisper.cpp/models/ggml-medium.bin:language=en:queue=3:destination=movie.srt:format=srt" \
-f null -
如上,whisper 作为 avfilter 的一个模块,需要设置"whisper=xx:xx"的属性,主要信息为:


