Whisper.cpp当地化:Windows端部署详解与实操

铁佛  金牌会员 | 2024-7-27 21:42:01 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 542|帖子 542|积分 1626

简介

什么是Whisper?

OpenAI的Whisper是一个主动语音辨认(ASR)系统,它经过了大量多语言和多使命的监督数据训练,能够进行多语言语音辨认、语音翻译和语言辨认等使命。Whisper模型使用了一个编码器-解码器的Transformer架构,通过训练能够将输入的音频转换为对应的文本序列,并能够根据特殊的标记执行不同的使命。Whisper模型的训练数据集非常庞大,包含了68万小时的多语言音频数据,这使得它在语音辨认上达到接近人类水平的鲁棒性和准确性。
什么是Whisper.cpp?

whisper.cpp 是一个开源项目,它是对 OpenAI 的 Whisper 模型的 C/C++ 移植实现。Whisper 模型是一个强盛的主动语音辨认(ASR)系统,而 whisper.cpp 项目使得这个模型能够在不同的平台上以当地方式运行,包罗但不限于 Windows、Mac OS、Linux、Android 和 WebAssembly 等。
为什么使用Whisper.cpp?

whisper.cpp 是对 OpenAI 的 Whisper 模型的 C/C++ 移植版本,它相比原始的 Whisper 模型(通常是以 Python 编写,依靠于 TensorFlow 或 PyTorch 等深度学习框架)具有以下上风:

  • 无依靠性:whisper.cpp 不需要安装任何第三方的库或框架,只需要一个 C/C++ 编译器就可以编译和运行,这减少了对外部库的依靠。
  • 内存占用低:它的内存占用非常低,只需要几兆字节的内存就可以处理音频数据,这使得它适合在资源受限的设备上运行。
  • 跨平台性能:whisper.cpp 支持多种技术和平台,包罗 Apple Silicon、ARM NEON、Metal、Core ML、AVX、OpenCL、CUDA 等,可以在 Mac OS、iOS、Linux、Windows、Android、WebAssembly 等多种操作系统上运行。
  • 高性能:它利用多核和并行盘算的上风,实现高效的语音辨认,可以在 CPU、GPU 或其他加快器上运行,提供高性能的推理本事。
  • 混淆精度和整数量化:支持使用不同的精度来运行 Whisper 模型,比方 32 位浮点数、16 位浮点数、8 位整数等。这可以根据不同的设备和需求,平衡模型的大小、速率和准确度。
  • 零运行时内存分配:whisper.cpp 在运行时不会进行动态内存分配,有助于进步性能和稳定性。
  • 支持 CPU 独占推理:即使在没有 GPU 的设备上也能运行,提供 CPU 独占的推理本事。
  • 轻量级实现:整个模型的高级实现都包含在 whisper.h 和 whisper.cpp 中,使得集成到不同平台和应用变得轻易。
  • C-style API:提供了 C 风格的 API,便于与其他语言和框架集成。
  • 支持量化:支持整数量化的模型,量化模型需要的内存和磁盘空间更少,并且大概在某些硬件上更高效。
  • 支持 Docker:提供了 Docker 镜像,简化了部署和使用过程。
  • 社区支持:有活泼的社区支持,提供了多种语言的绑定和示例,方便开发者使用和集成。
这些上风使得 whisper.cpp 成为一个轻量级、高性能、易于集成的主动语音辨认解决方案,适用于需要实时、离线、通用和轻量级语音辨认的场景。
本篇博客将介绍如何使用Whisper.cpp工具来为 Windows 上的视频文件生成字幕。
需要准备的工具

在使用Whisper.cpp之前需要安装好下面四个工具:

  • VC Redistributable
    提供运行时支持:当编译C++应用程序时,编译器会生成二进制代码,但大概不会包含所有须要的库。VC Redistributable包含这些库,确保应用程序在运行时可以访问所需的函数和资源。
    进步兼容性:不同的应用程序大概使用不同的库版本,VC Redistributable提供了一个同一的库集合,减少应用程序之间的兼容性问题。
    在下载地址中选择适合自己电脑的版本下载,下载地址。
  • Whisper.cpp v1.6.0
    下载地址
  • Model
    下载地址
  • FFMPEG
    FFMPEG是一个开源的盘算机程序,重要用于处理音频和视频文件。它支持多种格式转换、录制、编辑和流化等功能。下载地址

开始

1. 文件格式转换

由于 whisper.cpp 现在只支持 16 khz 的 wav 文件格式的文件,需要先使用 ffmpeg 将mp4文件转成所需的格式。
在cmd下令窗口将路径切换到"ffmpeg/bin"的安装目录,执行以下指令:
  1. ffmpeg.exe -i "xxx.mp4" -ar 16000 -acodec pcm_s16le xxx.wav
复制代码
"xxx.mp4"为需要转换的mp4文件,"xxx.wav"是转换后的wav文件。这两处需要自行修改
2. Whisper模型下载

即上面需要【准备的工具中的3.model】。关于模型的详细信息可以在Whisper.cpp github官网关于模型介绍部分查阅
3. 使用Whisper实现主动语音辨认

在cmd下令窗口将路径切换到"whisper"的安装目录,执行以下指令:
  1. main.exe
  2. -m "model_path" "xxx.wav" -osrt
复制代码
"model_path"是下载的模型存放的绝对路径,"xxx.wav"是在【1.文件格式转换】后的wav文件,-osrt是参数,下面会详细说明。
比方,我使用了ggml-large-v3.bin对new.wav文件做主动语音辨认,执行以下指令:
  1. main.exe
  2. -m "C:\Users\50533\Desktop\whisper\ggml-large-v3.bin" "new.wav" -osrt -l Chinese
复制代码
执行结果如下(展示部分内容):

关于主动语音辨认的详细参数(包罗文件存储、gpu使用、语言设置等等)可以执行main.exe
查看
  1. main.exe
复制代码

4. 备注

在上面的演示中我们在每次重新打开cmd窗口时都需要将路径切换到”ffmpeg“/"whisper"的安装目录才气使用,如许有些贫苦。
假如将Whisper和ffmpeg添加至系统路径(就是将Whisper和\ffmpeg-7.0.1-essentials_build\bin在高级系统设置中-环境变量-系统-Path参加),如许我们能在任何目录运行它!
大概遇到的问题

1. windows系统无法输出中笔墨符,出现乱码问题

问题如下图所示:

缘故原由

cmd下令行窗口字符编码不匹配导致。
解决方法


  • win+R输入redit进入注册表
  • 找到盘算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor,双击AutoRun项,将其数值数据改为chcp 65001,点击确定。
  


  • 重启cmd后生效

  • 执行Whisper语音主动辨认下令,可以看到乐成输出中文
  

   问题解决方案参考:
【Github】chinese characters not showing up on windows
【CSDN】CMD中文乱码
【CSDN】cmd窗口汉字显示乱码
【CSDN】Win10系统下CMD显示乱码的解决方法
  2. ‘chcp’ 不是内部或外部下令,也不是可运行的程序或批处理文件

缘故原由

出现 'chcp' 不是内部或外部下令,也不是可运行的程序或批处理文件。 这个错误通常意味着你的系统无法辨认 chcp 下令。chcp 是一个下令行工具,用于更改Windows系统的代码页,以支持不同的字符集。
这个错误大概由以下几个缘故原由造成:

  • 下令提示符(cmd)被破坏:这大概是由于系统文件破坏或缺失。
  • 环境变量问题:chcp 下令地点的路径大概没有添加到系统的环境变量 PATH 中。
  • 操作系统版本:某些版本的Windows大概不支持或不包含chcp下令。
解决方法



  • 检查环境变量:确保 chcp 下令的路径(通常是 %SystemRoot%\System32)已经被添加到环境变量 PATH 中。
  • 使用管理员权限运行下令提示符:右键点击下令提示符图标,选择“以管理员身份运行”,然后再次实利用用 chcp 下令。
  • 修复或重新安装下令提示符:假如下令提示符被破坏,大概需要修复或重新安装它。
  • 使用其他下令:假如 chcp 下令不可用,你可以实利用用其他下令来达到雷同的目的,比方使用 mode 下令查看和设置代码页。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

铁佛

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表