智能生成字幕!使用Openai-Whisper智能识别生成语音/视频字幕文件(支持自动翻译)

未分类 徐 自远 561℃

智能生成字幕!使用Openai-Whisper智能识别生成语音/视频字幕文件(支持自动翻译)

https://www.bilibili.com/read/cv19254244?from=articleDetail



本文将介绍如何使用 Openai-Whisper 为视频自动生成字幕文件。对比使用kdenlive加载VOSK Model的方法,使用Openai-Whisper更快更准确。

演示视频:点击观看演示视频

笔记本配置如下:

显卡:NVIDIA GeForce GTX 1660 Ti 6GB版

CPU:Intel(R) Core(TM) i5-9300H CPU @ 2.40GHz

内存:16GB

运行结果:

视频时长 2 分钟 58 秒,生成字幕耗时 36 秒。

正确率:本次总共 307 个汉字,识别错误 27 个,本次正确率为 91.21%。

点击箭头所指位置即可保存字幕文件。

::__IHACKLOG_REMOTE_IMAGE_AUTODOWN_BLOCK__::0

这是一张图片关于支持的操作系统,Whisper 是跨平台兼容的,包括:Windows、macOS、Linux。本文是基于 Windows 系统的。

Whisper官方声明最好使用 Python 3.7 或更高版本。本文使用 Python 3.10.7。

::__IHACKLOG_REMOTE_IMAGE_AUTODOWN_BLOCK__::1
这是一张图片

本文使用的是cuda_11.8.0_522.06和cudnn-windows-x86_64-8.5.0.96_cuda11-archive,本文一些具体安装步骤细节比较繁琐,以及有些安装的东西需要版本对应,关于此,我确信我发现一种美妙的方法,可惜这里的空白处太小,写不下。

注意将cudnn解压至同名文件夹后重命名为cudnn,然后移动到目录C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8下。

将这两个添加到系统环境变量中:

::__IHACKLOG_REMOTE_IMAGE_AUTODOWN_BLOCK__::2
这是一张图片

如果之前安装 CPU 版本的 PyTorch,请先删除 CPU 版本的 PyTorch。

在网页https://pytorch.org/get-started/locally/中进行选择然后复制指令

pip3 install torch torchvision torchaudio –extra-index-url https://download.pytorch.org/whl/cu116

运行。如果下载慢,可以使用dev-sidecar代理进行加速。

::__IHACKLOG_REMOTE_IMAGE_AUTODOWN_BLOCK__::3
这是一张图片

安装完成之后检查 PyTorch 的运行情况。
指令如下:

import torch

print(torch.__version__)

print(torch.cuda.is_available())

::__IHACKLOG_REMOTE_IMAGE_AUTODOWN_BLOCK__::4
这是一张图片

由于 Whisper 使用 FFmpeg 处理视频和音频文件。所以必须安装 FFmpeg。FFmpeg 官方下载页面:

https://www.ffmpeg.org/download.html

选择 Windows、选择“Windows builds by BtbN”。

::__IHACKLOG_REMOTE_IMAGE_AUTODOWN_BLOCK__::5
这是一张图片

下载最新稳定版本

::__IHACKLOG_REMOTE_IMAGE_AUTODOWN_BLOCK__::6
这是一张图片

解压缩下载的压缩包,然后把其中的bin目录添加到系统环境变量中。

::__IHACKLOG_REMOTE_IMAGE_AUTODOWN_BLOCK__::7
这是一张图片

检查 ffmpeg 命令是否可用,启动命令提示符或 PowerShell。运行以下指令:

ffmpeg -version

::__IHACKLOG_REMOTE_IMAGE_AUTODOWN_BLOCK__::8
这是一张图片

运行以下指令:

pip install git+https://github.com/openai/whisper.git

注意:Whisper第一次使用需要下载模型。

Whisper Webui 程序地址如下:

https://huggingface.co/spaces/aadnk/whisper-webui/tree/main

本文使用huggingface_hub来获得Whisper Webui,该方法方便快捷。

huggingface_hub 的安装指令如下:

pip install huggingface-hub

安装完成之后运行以下指令:

from huggingface_hub import snapshot_download

YOUR_TOKEN = “1”

snapshot_download(

repo_id=”aadnk/whisper-webui”,

repo_type=”space”,

revision=”main”,

use_auth_token=YOUR_TOKEN,

cache_dir=”./”)

指令运行之后可以得到文件夹

::__IHACKLOG_REMOTE_IMAGE_AUTODOWN_BLOCK__::9
这是一张图片

文件夹名1217d8b2d6382b65395e1bdd2532a6c76bd12eeb为存储库版本。该文件夹下有:

::__IHACKLOG_REMOTE_IMAGE_AUTODOWN_BLOCK__::10
这是一张图片

双击运行app-local.py

::__IHACKLOG_REMOTE_IMAGE_AUTODOWN_BLOCK__::11
这是一张图片

运行结果

::__IHACKLOG_REMOTE_IMAGE_AUTODOWN_BLOCK__::12
这是一张图片

复制URL粘贴到浏览器,按回车

::__IHACKLOG_REMOTE_IMAGE_AUTODOWN_BLOCK__::13
Whisper Webui界面

具体每一选项的说明,可以查看docs下的options文件,打开查看方式为右键-打开方式-记事本。一些比较重要的列举如下:

1、对于较长的音频文件(>10 分钟),建议在 VAD 选项中选择 Silero VAD(Voice Activity Detector)。

2、选择语言,或将其留空,以便 Whisper 自动检测它。请注意,如果所选语言与音频中的语言不同,Whisper 可能会开始将音频翻译为所选语言语。例如,如果音频是英文但您选择了日文,则模型可能会将音频翻译成日文。

3、Vad 选项:

* none:在整个音频输入上运行Whisper

* silero-vad:使用 Silero VAD 检测包含语音的部分,并在每个部分上独立运行Whisper。Whisper 也在运行关于每个语音部分之间的间隙。

* silero-vad-skip-gaps:同上,但不包含根据 Silero 的语音的部分将被跳过。这会稍微快一些,但是可能会导致对话被跳过。

* periodic-vad:“VAD – 最大合并大小”创建语音部分。这是非常快速和简单的,但可能会中断一个句子或单词一分为二。

4、VAD – Merge Window 选项:如果设置,任何相隔最多此秒数的相邻语音部分将被自动合并。

5、VAD – Max Merge Size (s) 选项:如果相邻语音部分的长度达到此秒数,则禁用它们的合并。

6、VAD – Padding (s) 选项:

添加到每个语音部分的开头和结尾的秒数(浮点数)。将此设置为一个数字,大于零确保 Whisper 更有可能正确转录句子开头的句子演讲部分。但是,这也增加了 Whisper 分配错误时间戳的概率到每个转录的行。默认值为 1 秒。

使用Openai-Whisper自动生成语音/视频字幕,优点是:识别正确率高、使用方便快捷。

而且,很重要的一点是:免费!!!

对比讯飞听见字幕的收费如下:

::__IHACKLOG_REMOTE_IMAGE_AUTODOWN_BLOCK__::14
这是一张图片

另外,虽然剪映可以免费生成字幕,但是!对比本文所介绍的方法,剪映实在是太慢了。

而且,本方法是在电脑端本地运行,不需要上传任何数据,所以在个人隐私数据上有保障。

 

转载请注明:徐自远的乱七八糟小站 » 智能生成字幕!使用Openai-Whisper智能识别生成语音/视频字幕文件(支持自动翻译)

喜欢 (1)

苏ICP备18041234号-1 bei_an 苏公网安备 32021402001397号