littlebot
Published on 2025-04-16 / 0 Visits
0

【源码】基于C++和Whisper框架的实时语音识别系统

项目简介

本项目基于C++和Whisper框架构建,能实现对OpenAI的Whisper自动语音识别(ASR)模型的高性能推理。核心模型实现仅2个源文件,具有轻量级特性,便于集成到不同平台和应用中。

项目的主要特性和功能

  1. 高性能推理:采用纯C/C++实现,无需依赖其他库,利用多种架构特性优化,如Apple silicon的Arm Neon和Accelerate框架、x86的AVX intrinsics、POWER的VSX intrinsics。
  2. 低内存占用:运用混合F16 / F32精度、Flash Attention + Flash Forward技术,运行时零内存分配。
  3. 多平台支持:支持Mac OS(Intel和Arm)、iOS、Android、Linux、FreeBSD、WebAssembly、Windows(MSVC和MinGW)、Raspberry Pi等平台。
  4. 丰富功能:具备实时音频转录、语音活动检测(VAD)、音频处理(高通滤波器去噪)等功能,支持多种输出格式(文本、vtt、srt、CSV等),可生成卡拉OK风格视频。
  5. 参数可配置:提供众多参数选项,如线程数、处理时长、语言、模型路径等,适应不同应用场景。

安装使用步骤

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.enmake 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】