项目简介
本项目基于C++和Whisper框架构建,能实现对OpenAI的Whisper自动语音识别(ASR)模型的高性能推理。核心模型实现仅2个源文件,具有轻量级特性,便于集成到不同平台和应用中。
项目的主要特性和功能
- 高性能推理:采用纯C/C++实现,无需依赖其他库,利用多种架构特性优化,如Apple silicon的Arm Neon和Accelerate框架、x86的AVX intrinsics、POWER的VSX intrinsics。
- 低内存占用:运用混合F16 / F32精度、Flash Attention + Flash Forward技术,运行时零内存分配。
- 多平台支持:支持Mac OS(Intel和Arm)、iOS、Android、Linux、FreeBSD、WebAssembly、Windows(MSVC和MinGW)、Raspberry Pi等平台。
- 丰富功能:具备实时音频转录、语音活动检测(VAD)、音频处理(高通滤波器去噪)等功能,支持多种输出格式(文本、vtt、srt、CSV等),可生成卡拉OK风格视频。
- 参数可配置:提供众多参数选项,如线程数、处理时长、语言、模型路径等,适应不同应用场景。
安装使用步骤
1. 下载模型
先下载转换为ggml格式的Whisper模型,示例命令如下:
bash
bash ./models/download-ggml-model.sh base.en
2. 编译示例
编译main示例:
bash
make
3. 转录音频
使用编译后的程序转录音频文件:
bash
./main -f samples/jfk.wav
4. 实时音频转录
若要进行实时音频转录,编译并运行stream工具:
bash
make stream
./stream -m ./models/ggml-base.en.bin -t 8 --step 500 --length 5000
5. 其他操作
- 获取更多音频样本:运行
make samples
下载更多音频文件并转换为16位WAV格式。 - 使用不同模型:通过
make tiny.en
、make base
等命令下载并运行其他模型。
注意事项
- 目前main示例仅支持16位WAV文件,可使用
ffmpeg
进行格式转换,示例命令如下:bash ffmpeg -i input.mp3 -ar 16000 -ac 1 -c:a pcm_s16le output.wav
- 若需详细使用说明,可运行
./main -h
查看。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】