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

147次阅读

本文将介绍如何使用 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%。

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

Openai-Whisper识别生成语音/视频字幕文件(支持自动翻译)插图
这是一张图片

一、操作系统要求

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

二、安装 Python

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

Openai-Whisper识别生成语音/视频字幕文件(支持自动翻译)插图1
这是一张图片

三、安装 CUDA 和 cuDNN

本文使用的是 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 下。

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

Openai-Whisper识别生成语音/视频字幕文件(支持自动翻译)插图2
这是一张图片

四、安装 GPU 版本的 PyTorch

如果之前安装 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 代理进行加速。

Openai-Whisper识别生成语音/视频字幕文件(支持自动翻译)插图3
这是一张图片

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

import torch

print(torch.__version__)

print(torch.cuda.is_available())

Openai-Whisper识别生成语音/视频字幕文件(支持自动翻译)插图4
这是一张图片

五、安装 FFmpeg

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

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

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

Openai-Whisper识别生成语音/视频字幕文件(支持自动翻译)插图5
这是一张图片

下载最新稳定版本

Openai-Whisper识别生成语音/视频字幕文件(支持自动翻译)插图6
这是一张图片

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

Openai-Whisper识别生成语音/视频字幕文件(支持自动翻译)插图7
这是一张图片

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

ffmpeg -version

Openai-Whisper识别生成语音/视频字幕文件(支持自动翻译)插图8
这是一张图片

六、安装 Whisper

运行以下指令:

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

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

七、使用 Whisper Webui

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="./")

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

Openai-Whisper识别生成语音/视频字幕文件(支持自动翻译)插图9
这是一张图片

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

Openai-Whisper识别生成语音/视频字幕文件(支持自动翻译)插图10
这是一张图片

八、使用说明

双击运行 app-local.py

Openai-Whisper识别生成语音/视频字幕文件(支持自动翻译)插图11
这是一张图片

运行结果

Openai-Whisper识别生成语音/视频字幕文件(支持自动翻译)插图12
这是一张图片

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

Openai-Whisper识别生成语音/视频字幕文件(支持自动翻译)插图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 自动生成语音 / 视频字幕,优点是:识别正确率高、使用方便快捷。

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

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

Openai-Whisper识别生成语音/视频字幕文件(支持自动翻译)插图14
这是一张图片

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

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

原文链接:https://www.bilibili.com/read/cv19254244

正文完
 
不知道
版权声明:本站原创文章,由 不知道 2023-08-07发表,共计2771字。
转载说明:声明:本站内容均来自互联网,归原创作者所有,如有侵权必删除。 本站文章皆由CC-4.0协议发布,如无来源则为原创,转载请注明出处。