基于whisper模型的在线添加视频字幕网站(持续更新)

1.什么是whisper

Whisper 是一个自动语音识别(ASR,Automatic Speech Recognition)系统,OpenAI 通过从网络上收集了 68 万小时的多语言(98 种语言)和多任务(multitask)监督数据对 Whisper 进行了训练。OpenAI 认为使用这样一个庞大而多样的数据集,可以提高对口音、背景噪音和技术术语的识别能力。除了可以用于语音识别,Whisper 还能实现多种语言的转录,以及将这些语言翻译成英语。
本文主要拿该模型做一个音频识别的任务,将视频中的音频转化为文字。

2.项目介绍

主要实现了一个基于Whisper的视频字幕生成工具,具体来说,采用Flask轻量级WEB应用框架实现一个以python为后端,以html为前端的WEB项目,功能比较简单,即为为无字幕的视频添加字幕(仅支持中文、英文、中英文混杂)
网站如图:
在这里插入图片描述
操作起来比较简单,点击上传文件按钮上传本地视频文件(mp4或者avi),然后点击提交文件按钮,后端就开始处理。(暂时还未实现前端可视化处理过程)
实现效果:
中文:
在这里插入图片描述
英文:
在这里插入图片描述
中英文混杂:
在这里插入图片描述
这样看效果还可以吧。

3.项目安装

安装项目所需要的python环境

首先python版本必须要3.9以上,否则会报错,其余python的依赖包在项目中的requirements.txt中都有涉及,直接在python3.9的环境下执行:

pip install git+https://github.com/openai/whisper.git 
pip install -r requirements.txt

安装imagemagick

  • windows
    https://www.imagemagick.org/script/download.php#windows
    安装时选择Install development headers and libraries for C and C++。
    安装好之后打开python虚拟环境的moviepy模块下的config_defaults.py文件,修改其中的IMAGEMAGICK_BINARY为imagemagick安装文件夹处的magick.exe地址,如:

IMAGEMAGICK_BINARY = r"D:\python_study_tools\ImageMagick-7.0.9-Q16\magick.exe"

若忘记了安装位置,使用everything来找到相应的位置,其中moviepy一定要是你的虚拟环境的moviepy。

  • ubuntu
    使用指令安装:
apt-get install imagemagick

若报错,更新一下:

apt-get update

然后输入指令:

vim /etc/ImageMagick-6/policy.xml

<policy domain="path" rights="none" pattern="@*" />

改成

<!-- <policy domain="path" rights="none" pattern="@*" /> -->

保存退出即可

修改addSubtitles.py中的font格式

在line68

txt = (TextClip(sentences, fontsize=32,
                font='SimHei', size=(w-20, 40),
                align='center', color='white')
       .set_position((10, h - 80))
       .set_duration(span)
       .set_start(start))

其中的font,该代码在windows正常能执行,没问题。
在ubuntu下报错,因为ubuntu下缺少很多中文类的字节编码,如果这个地方不改,最后出来的视频字幕全是乱码和问号,解决方法:

apt-get install ttf-mscorefonts-installer
apt-get install fontconfig
cd /usr/share/fonts

然后从你的windows中选一个中文字体格式放在这个文件夹下
windows字体文件所在处:C:\Windows\Fonts
然后执行指令:

mkfontscale
mkfontdir
fc-cache -fv

最后将上面addSubtitles.py中的font改成字体的路径就行了。

4.运行项目

在windows或者ubuntu下,打开项目文件,执行app.py文件就行了。在windows上,直接点击那个链接即可;
在服务器上,需要在main函数的app.run()里定义地址与端口,ip地址设为’0.0.0.0’,
在宿主机上运行,需要在浏览器中输入公网ip(关掉梯子)才能访问,自动生成的链接是私网。
若在服务器的docker中运行,在创建docker的时候就要设置好端口映射,若为租的网络服务器,还要去看你的网络服务器开放了哪些tcp端口,随意设置端口还是无法访问。

5.目前存在的问题

  • 项目在服务器运行,总是运行一段时间后,该进程会被自动kill,因此通过那个ip地址访问并上传文件后,点击提交文件会报错
  • 这个项目并没有实现多线程并发,因此同时有多个用户访问的时候,后端一定会无法得到正确的文件名而报错
  • 租的华为云的服务器是最小规格的一核服务器,处理速度很慢,承载力很差,很容易崩溃
  • whisper模型还有很多其他的功能,比如直接语音识别、识别视频中的音频并生成文本文件、语音翻译等功能,网站的功能量还可以继续拓展
  • 前端的下载功能存在缺陷,对于不同的文件下载没有设置不同的链接
  • 字幕和视频合成完全依靠CPU,因此如果视频时长比较长,要跑很久的时候,有时候还没跑完网页就崩溃了,因此不仅是后端的处理和前端的设计都有优化的地方

github项目地址:https://github.com/jiangduwang/addSubtitles.git
网页地址:http://124.70.200.133/
这个网页不保证正在运行,就算运行了也很有可能提交文件的时候出错。

为什么说是持续更新呢,因为完成了眼前的课程任务,我会继续解决这些问题。

2024.1.3更新
目前忙于毕业小论文和找工作,预计在25年这个时间开始更新工作。

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Colab Whisper模型是一种先进的语音转文字模型,它基于语音识别技术,利用深度学习算法将语音信号转换为文本。 Colab Whisper模型的实现步骤如下: 1. 准备数据:首先,需要准备用于训练模型的语音数据集。这些语音数据应该包含不同人的不同语音片段,涵盖不同的语言和口音。 2. 数据预处理:接下来,需要对语音数据进行预处理。这包括对语音信号进行采样和分割,去除噪音和不必要的部分,并将其转换为模型可处理的格式,例如MFCC特征。 3. 构建模型:使用深度学习框架,如TensorFlow或PyTorch,构建Colab Whisper模型。该模型通常由多个卷积神经网络和循环神经网络层组成,用于提取语音信号的特征并进行序列建模。 4. 训练模型:使用准备好的语音数据集,通过反向传播算法和训练集的迭代,对模型进行训练。在每个迭代步骤中,模型会根据预测输出与实际标签之间的差异调整自身的权重和参数,以提高预测准确性。 5. 模型评估和优化:在每个训练周期结束后,使用验证集和测试集对模型进行评估。评估指标可以包括词错误率(WER)和字符错误率(CER)。通过这些指标,可以确定模型的性能,并对其进行改进。 6. 部署和应用:一旦模型训练完成并通过评估,就可以将其部署到实际应用中。通过输入语音信号,模型将对其进行转换,并输出相应的文本结果。 总之,Colab Whisper模型通过深度学习算法实现了从语音到文本的转换。通过准备数据、进行数据预处理、构建模型、训练模型、评估和优化以及部署应用等步骤,可以实现一个高效准确的语音转文字系统。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值