Whisper.cpp v1.7.5 版本深度解析:跨平台语音识别引擎的重大更新
whisper.cpp OpenAI 的 Whisper 模型在 C/C++ 中的移植版本。 项目地址: https://gitcode.com/gh_mirrors/wh/whisper.cpp
项目概述
Whisper.cpp 是一个基于 OpenAI Whisper 模型的高效 C++ 实现,专注于提供跨平台的语音识别能力。该项目通过优化底层计算和内存管理,使得 Whisper 模型能够在各种硬件设备上高效运行,包括移动设备和嵌入式系统。
核心更新内容
1. 移动端支持全面升级
本次更新对 iOS 和 Android 平台的支持进行了重大改进:
-
XCFramework 支持:新版本引入了 XCFramework 构建流程,极大简化了在 iOS 和 macOS 应用中集成 Whisper.cpp 的过程。开发者现在可以更轻松地将语音识别功能添加到他们的应用中。
-
CoreML 支持增强:针对苹果设备的 CoreML 支持得到了改进,包括更新的构建和转换指令,使得在苹果芯片上运行 Whisper 模型更加高效。
2. WASM 示例优化
WebAssembly (WASM) 支持也获得了显著提升:
- 所有 WASM 示例现在会在每次提交后自动更新,并托管在 GitHub Pages 上
- 解决了 CORS (跨源资源共享) 规则相关的问题,使得在网页中集成语音识别功能更加顺畅
3. 性能优化
新版本带来了多项性能改进:
- Metal 后端优化:针对苹果 Metal 图形 API 的优化使得在 M 系列芯片上的性能显著提升
- Arm 架构改进:针对 Arm 处理器的优化可能为基于 Arm 的设备带来性能提升
- Flash Attention 支持:通过 Flash Attention 技术优化了注意力机制的计算效率
4. 音频处理改进
音频处理方面的重要更新包括:
- 引入了 miniaudio 库,支持直接解码 FLAC、MP3、OGG 和 WAV 格式的音频文件
- 改进了音频加载和处理的稳定性
技术细节深入
跨平台构建系统
新版本对构建系统进行了多项改进:
- 增加了对多种后端支持的系统检查,包括 Vulkan 协作矩阵支持
- 改进了 CUDA 工具链的安装流程
- 增强了对不同 CPU 架构的支持,包括 Power9 等
随机数生成优化
在解码器中实现了基于唯一种子的随机数生成器初始化,提高了模型输出的稳定性和可靠性。
内存管理
- 减少了 WASM 示例的初始内存需求至 512MB
- 改进了后端缓冲区类型处理,支持具有多种缓冲区类型的后端
开发者体验改进
API 增强
- 新增了获取分段无语音概率的 API
- 增加了对编码器开始回调的支持
- 实现了进度回调 API
错误修复与稳定性
- 修复了音频位置溢出时的长度计算问题
- 解决了 Windows 平台上的多个构建问题
- 修复了 CoreML 导出脚本的问题
性能数据
根据官方提供的基准测试数据,新版本在不同硬件上表现出色:
M2 Ultra (Flash Attention ON)
- tiny 模型: 编码 7.82ms,解码 1.31ms
- large-v2 模型: 编码 194.29ms,解码 10.57ms
V100 GPU (Flash Attention ON)
- tiny 模型: 编码 4.01ms,解码 0.90ms
- large-v2 模型: 编码 85.77ms,解码 7.57ms
总结
Whisper.cpp v1.7.5 是一个重要的里程碑版本,特别是在移动端和 Web 集成方面取得了显著进展。通过优化构建系统、增强跨平台支持以及提升核心性能,该项目进一步巩固了其作为高效、轻量级语音识别解决方案的地位。对于需要在各种环境中部署语音识别功能的开发者来说,这个版本提供了更强大、更易用的工具集。
whisper.cpp OpenAI 的 Whisper 模型在 C/C++ 中的移植版本。 项目地址: https://gitcode.com/gh_mirrors/wh/whisper.cpp
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考