【开源工具】使用Whisper将提取视频、语音的字幕

这篇具有很好参考价值的文章主要介绍了【开源工具】使用Whisper将提取视频、语音的字幕。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、语音转字幕操作步骤

1、下载安装包Assets\WhisperDesktop.zip1

2、加载模型

运行WhisperDesktop.exe,
启动后加载模型“load model,please wait…”,等待其将模型加载到内存。

2.1 下载模型

刚开始是没有模型的,需要到Hugging Face2的仓库里面下载模型并配置相关路径

2.1.1 进入Hugging Face2的仓库

点击ggerganov/whisper.cpp进入Hugging Face仓库

2.1.2 选择需要下载的模型

在Hugging Face仓库,选择Files and versions,选择以下两种模型:

  • ggml-large.bin
  • ggml-medium.bin
    【开源工具】使用Whisper将提取视频、语音的字幕
2.1.3 配置模型路径

在Load Whisper Model 页,Model Path选择好模型的路径D:\WhisperDestop\ggml-whisper.bin,点击OK,等待其将模型加载到内存。

3、语音转字幕

在Transcribe Audio File页面:

  1. Language:Chinese(视频或语音说话使用的语种)
  2. Translate: (把识别出来的文本给翻译成英文输出)
  3. Transcribe File:C:\xxx.mp4(选择你要提取字幕的视频、音频等)
  4. Output Format:SubRip subtitles(输出格式)
    • None:
    • Text file:纯文本
    • Text with timestamps
    • SubRip subtitles:字幕(标准的字幕格式 时段+文字)
      可以将后缀改为.srt格式,这样的文件可以直接拖放到剪辑软件里面,他会自动给你排列好,像这样的字幕是不需要咱们来对时间的
    • WebVTT subtitles

4、实时语言转录功能

开启实时语言转录之后,你对它说话的话,他会自动把你说的话转换成文字并记录下来

二、相关简介3

特点

  • 基于DirectCompute的供应商无关GPGPU;该技术的另一个名称是“Direct3D 11中的计算着色器”

  • 简单的C++实现,除了基本的操作系统组件之外没有运行时依赖项

  • OpenAI的实现快得多。
    在我的台式电脑上,使用GeForce 1080Ti GPU,中等型号,用PyTorchCUDA转录3:24分钟的语音需要45秒,但我的实现和DirectCompute只需要19秒。
    有趣的是:这是9.63 GB的运行时依赖项,而Whisper.dll431 KB

  • 混合F16/F32精度:自D3D v10.0版本起,Windows需要支持R16_FLOAT缓冲区

  • 内置性能探查器,用于测量单个计算着色器的执行时间

  • 内存使用率低

  • 用于音频处理的Media Foundation支持大多数音频和视频格式(Ogg Vorbis除外),以及大多数在Windows上工作的音频捕获设备(一些专业设备除外,它们只实现ASIO API)。

  • 用于音频捕获的语音活动检测。
    该实现基于Mohammad MoattarMahdi Homayoonpoor 2009年的文章“一种简单但高效的实时语音活动检测算法”。

  • 易于使用的COM型APInuget上提供了惯用的C#包装。1.10版引入了对PowerShell 5.1的脚本支持,这是Windows上预装的旧版本“Windows PowerShell”

  • 可用的预构建二进制文件

唯一支持的平台是64位 Windows
应该在Windows 8.1或更新版本上工作,但我只在Windows 10上测试过。
该库需要一个支持Direct3D 11.0GPU,在2023年,它的意思只是“任何硬件GPU”。最新的不支持D3D 11.0GPU2011年的Intel Sandy Bridge

CPU方面,库需要AVX1F16C支持。

开发人员指南

构建说明

  1. 克隆此存储库

  2. Visual Studio 2022中打开WhisperCpp.sln。我使用的是免费软件社区版,版本17.4.4

  3. 切换到Release 配置

  4. 在解决方案的Tools子文件夹中生成并运行CompressShaders C#项目。要运行该项目,请在visual studio中右键单击“设置为启动项目”,然后在VS的主菜单中单击“调试/启动而不调试”。成功完成后,您应该会看到一个控制台窗口,其中有一行如下所示:
    压缩的46个计算着色器,123.5 kb->18.0 kb

5.构建Whisper项目以获得本机DLL,或用于C#包装器和nuget包的WhisperNet或示例。

其他注意事项

如果你要在使用Visual C++2022或更新版本构建的软件中使用该库,你可能会以.msm合并模块或vc_redist.x64.exe二进制文件的形式重新分发Visual C++运行时DLL

如果你这样做,右键单击Whisper项目、属性、C/C++、代码生成,将“Runtime Library”设置从Multi-threaded (/MT)切换到Multi-threaded DLL (/MD),然后重建:二进制文件将变得更小。

该库包括RenderDoc GPU调试器集成。
RenderDoc启动程序时,按住F12键以捕获计算调用。

如果要调试HLSL着色器,请使用DLL的调试构建,其中包括着色器的调试构建。您将在调试器中获得更好的用户体验。
该存储库包括许多仅用于开发的代码:耦合替代模型实现、一些计算着色器的兼容FP64版本、调试跟踪和比较跟踪的工具等。

这些东西被预处理器宏constexpr标志禁用了,我希望保留在这里没问题。

绩效说明

我在办公地点选择了几款GPU进行有限的测试。

具体来说,我已经为英伟达 1080TiRyzen 7 5700G内部的Radeon Vega 8Ryzen 5 5600U内部的Radeon Vega 7进行了优化。

总结如下。

英伟达为大型型号提供了5.8的相对速度,为中型型号提供了10.6的相对速度。

AMD Ryzen 5 5600U APU为中型型号提供了约2.2的相对速度。不太好,但仍然比实时快得多。

我也在英伟达 1650上测试过:比1080Ti慢,但很好,比实时快得多。

我还测试了酷睿i7-3612QM内部的Intel HD Graphics 4000,中等型号的相对速度为0.14,小型型号为0.44。这比实时慢得多,但我很高兴发现我的软件即使在2012年推出的集成移动GPU上也能工作。

我不确定离散AMD GPU或集成Intel GPU的性能是否理想,它们没有专门针对它们进行优化。
理想情况下,它们可能需要两个最昂贵的计算着色器(mulMatTiled.hlslmulMatByRowTiled.hlsl)的稍微不同的构建。
也许还有其他调整,比如Whisper/D3D/device.h头文件中的useReshapedMatMul()值。

我不知道如何衡量,但我有一种感觉,瓶颈是内存,而不是计算。
黑客新闻上有人测试了3060Ti,即带有GDDR6内存的版本。与1080Ti相比,该GPU具有1.3倍FP32 FLOPS,但具有0.92倍VRAM带宽。该应用程序在3060Ti上慢了约10%。

进一步优化

我只花了几天时间优化这些着色器的性能。
也许可以做得更好,以下是一些想法。

  • 与FP32相比,Radeon Vega或nVidia 1650等较新的GPU具有更高的FP16性能,但我的计算着色器仅使用FP32数据类型。
    一半的细致,两倍的乐趣

  • 在当前版本中,FP16张量使用着色器资源视图向上转换加载的值,使用无序访问视图向下转换存储的值。
    切换到字节地址缓冲区,加载/存储完整的4字节值,并使用f16t32/f32-tof16内部函数在HLSL中进行上变频/下变频可能是个好主意。

  • 在当前版本中,所有着色器都是脱机编译的,Whisper.dll包含DXBC字节码。
    HLSL编译器D3DCompiler_47.dll是一个操作系统组件,速度非常快。对于昂贵的计算着色器,最好提供HLSL而不是DXBC,并在启动时使用宏的特定于环境的值进行编译。

  • 将整个东西从D3D11升级到D3D12可能是个好主意。
    较新的API更难使用,但它包含了D3D11没有的潜在有用功能:wave intrinsic和explicit FP16.。

缺少的功能

未实现自动语言检测。
在当前版本中,实时音频捕获的延迟很高。
具体而言,根据语音检测,该数字约为5-10秒。
至少在我的测试中,当我提供的音频片段太短时,模型并不满意。

我已经增加了延迟并结束了这一天,但理想情况下,这需要一个更好的解决方案来优化用户体验。

结尾语

在我看来,这是一个无偿的业余项目,我在2022-23年的寒假里完成了。

代码可能有一些bug。

软件是“原封不动”提供的,没有任何形式的担保。

感谢Georgi Gerganov实现了whisper.cpp以及GGML二进制格式的模型。

我不会编写Python程序,也对ML生态系统一无所知。

如果没有一个好的C++参考实现来测试我的版本,我甚至不会启动这个项目。

whisper.cpp项目有一个例子,它使用相同的GGML实现来运行另一个OpenAI的模型GPT-2。

用这个项目中已经实现的计算着色器和相关基础设施来支持ML模型应该不难。

如果你觉得这很有用,如果你考虑向“Come Back Alive”基金会捐款,我将不胜感激。


  1. http://github.xiaoc.cn/Const-me/Whisper/releases/tag/1.11.0 ↩︎

  2. https://www.huggingface.co/ggerganov/whisper.cpp ↩︎ ↩︎

  3. http://github.xiaoc.cn/Const-me/Whisper ↩︎文章来源地址https://www.toymoban.com/news/detail-483177.html

到了这里,关于【开源工具】使用Whisper将提取视频、语音的字幕的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于whisper和whisperx的语音视频和字幕对齐

    创建py310虚拟环境,需要安装Anaconda的Python环境。 Python初学者在不同系统上安装Python的保姆级指引 Win10+Python3.9+GPU版pytorch环境搭建最简流程 Python虚拟环境的安装和使用 还需要提前安装FFmpeg用于音频操作,并添加到环境变量中。 创建一个名称为 whisper 的虚拟环境。 激活虚拟环

    2024年02月16日
    浏览(31)
  • 英文视频添加中英双语字幕(基于Whisper语音识别和Google翻译)

    可以参考以下博客的内容讲显卡驱动,CUDA和cudnn的安装比较详细,我建议能用GPU加速就尽量使用,Whisper速度有点慢 如何在你的电脑上完成whisper的简单部署_Wayne_WX的博客-CSDN博客  Windows使用whisper前需要进行的一些环境配置 https://blog.csdn.net/m0_52156129/article/details/129263703 我的f

    2024年02月09日
    浏览(33)
  • whisper实践--基于whisper+pyqt5开发的语音识别翻译生成字幕工具

    大家新年快乐,事业生活蒸蒸日上,解封的第一个年,想必大家都回家过年,好好陪陪家人了吧,这篇文章也是我在老家码的,还记得上篇我带大家基本了解了whisper,相信大家对whisper是什么,怎么安装whisper,以及使用都有了一个认识,这次作为新年第一篇文章,我将介绍一

    2024年02月01日
    浏览(32)
  • 基于Whisper语音识别的实时视频字幕生成 (一): 流式显示视频帧和音频帧

    Whistream(微流)是基于Whisper语音识别的的在线字幕生成工具,支持rtsp/rtmp/mp4等视频流在线语音识别 whishow(微秀)是python实现的在线音视频流播放器,支持rtsp/rtmp/mp4等流式输入,也是whistream的前端。python实现原理如下: (1) SPROCESS.run() 的三个子线程负责:缓存流数据,处理音

    2024年04月13日
    浏览(39)
  • Windows 下融合使用开源组件进行视频内容分析,shotcut ,autocut 剪辑 whisper智能化编辑双语字幕等

    下面以这个黄仁勋访谈视频为例简要介绍分析的步骤 https://youtu.be/lXLBTBBil2U https://github.com/openai/whisper 提升: 安装如果需要在conda 中使用 ffmpeg 的话,也是可以直接用 conda install ffmpeg https://github.com/openai/whisper/discussions/1172 We are thrilled to introduce Subper (https://subtitlewhisper.com), a f

    2024年04月09日
    浏览(31)
  • 《AI上字幕》基于openAI研发的whisper模型,语音(视频)一键转文本/字幕/带时间轴/支持多语言/自带翻译《桌面版教程》

    OpenAI的chatGPT非常火爆,其实OpenAI旗下的另一个模型实力也十分强大,它就是开源免费的Whisper语音转文本模型,目前为止它是较为顶尖的语音转文本模型 当前github上也有许多出色的开发者根据此模型开发出桌面版语音转文字应用。较为出色的分别是Buzz和WhisperDesktop 支持将多种

    2023年04月19日
    浏览(36)
  • github开源推荐,基于whisper的字幕生成和字幕翻译工具——再也没有看不懂的片啦

    GitHub - qinL-cdy/auto_ai_subtitle github上开源的一款字幕生成和字幕翻译的整合工具,可以根据视频中提取到的音频来转换成字幕,再根据需要将字幕进行翻译,基于whisper 1)安装ffmpeg 安装ffmpeg的教程比较多,就不详细介绍了,Windows上安装完成后记得添加环境变量,最后在cmd中输入

    2024年02月13日
    浏览(49)
  • 【whisper】在python中调用whisper提取字幕或翻译字幕到文本

    最近在做视频处理相关的业务。其中有需要将视频提取字幕的需求,在我们实现过程中分为两步:先将音频分离,然后就用到了whisper来进行语音识别或者翻译。本文将详细介绍一下whisper的基本使用以及在python中调用whisper的两种方式。 whisper 是一款用于语音识别的开源库,支

    2024年02月05日
    浏览(24)
  • 不到百行代码,使用Whisper进行视频字幕生成。

      最近在学习视频剪辑的时候,希望找一款软件进行翻译;发现大多数是调用某云的Api进行翻译。通过查询资料,打算使用Whisper进行本地视频语音的识别,然后进行字幕文件的编辑(srt),最后通过ffmpeg添加到视频中。   Whisper 是 OpenAI 构建的通用语音识别模型。它于 2

    2024年03月19日
    浏览(33)
  • 【whisper】在python中调用whisper提取字幕或翻译字幕到文本_python whisper

    whisper 是一款用于语音识别的开源库,支持多种语言,其中包括中文。在本篇文章中,我们将介绍如何安装 whisper 以及如何使用它来识别中文字幕。 首先,我们需要安装 whisper。根据操作系统,可以按照以下步骤进行安装: 对于 Windows 用户,可以从 whisper 的 GitHub 页面 (https

    2024年02月20日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包