业界良心OpenAI开源的Whisper模型[1]是开源语音转文字领域的执牛耳者,白璧微瑕之处在于无法通过苹果M芯片优化转录效率,Whisper.cpp 则是 Whisper 模型的 C/C++ 移植版本,它具有无依赖项、内存使用量低等特点,重要的是增加了 Core ML 支持,完美适配苹果M系列芯片。
Whisper.cpp的张量运算符针对苹果M芯片的 CPU 进行了大量优化,根据计算大小,使用 Arm Neon SIMD instrisics 或 CBLAS Accelerate 框架例程,后者对于更大的尺寸特别有效,因为 Accelerate 框架可以使用苹果M系列芯片中提供的专用 AMX 协处理器。
配置Whisper.cpp
老规矩,运行git命令来克隆Whisper.cpp项目:
随后进入项目的目录:
项目默认的基础模型不支持中文,这里推荐使用medium模型,通过shell脚本进行下载:
下载完成后,会在项目的models目录保存ggml-medium.bin模型文件,大小为1.53GB:
模型下载以后,在根目录编译可执行文件:
程序返回:
至此,Whisper.cpp就配置好了。
牛刀小试
现在我们来测试一段语音,看看效果:
这行命令的含义是通过刚才下载ggml-medium.bin模型来对项目中的samples/jfk.wav语音文件进行识别,这段语音是遇刺的美国总统肯尼迪的著名演讲,程序返回:
英文准确率是百分之百。
现在我们来换成中文语音,可以随便录制一段语音,需要注意的是,Whisper.cpp只支持wav格式的语音文件,这里先通过ffmpeg将mp3文件转换为wav:
程序返回:
这里将一段五分四十一秒的语音转换为wav文件。
随后运行命令开始转录:
这里需要加上参数-l,告知程序为中文语音,程序返回:
五分钟的语音,只需要一分钟多一点就可以转录完成,效率满分。
当然,精确度还有待提高,提高精确度可以选择large模型,但转录时间会相应增加。
苹果M芯片模型转换
基于苹果Mac系统的用户有福了,Whisper.cpp可以通过Core ML在Apple Neural Engine (ANE)上执行编码器推理,这可以比仅使用CPU执行快出三倍以上。
首先安装转换依赖:
接着运行转换脚本:
这里参数即模型的名称。
程序返回:
转换好以后,重新进行编译:
随后用转换后的模型进行转录即可:
至此,Mac用户立马荣升一等公民。
结语
Whisper.cpp是Whisper[2]的精神复刻与肉体重生,完美承袭了Whisper的所有功能,在此之上,提高了语音转录文字的速度和效率以及跨平台移植性,百尺竿头更进一步,开源技术的高速发展让我们明白了一件事,那就是高品质技术的传播远比技术本身更加宝贵。
引用链接
Whisper模型:https://v3u.cn/a_id_272
Whisper:https://v3u.cn/a_id_272
领取专属 10元无门槛券
私享最新 技术干货