faster_whisper使用moviepy 2.0.0版本添加字幕示例
faster_whisper使用moviepy2.0.0添加字幕示例
·
最近在学习faster_whisper,费老大劲才把环境搭建好,准备做一个视频字幕翻译的demo时发现大部分都是基于moviepy1.0版本的,和环境中默认的不匹配,于是各种搜索、AI问,最后没办法只能老老实实去翻moviepy的文档,终于调通了一个demo,发出来希望能对大家有所帮助!
演示环境
faster_whisper 1.1.0
moviepy 2.0.0
示例代码
重点是在concatenate_videoclips(tmpclips)那里
# -*- coding: utf-8 -*-
from faster_whisper import WhisperModel
from moviepy import *
# 加载视频文件
video = VideoFileClip("test.mp4")
#加载本地模型
model_path="/home/faster-whisper-model/faster-whisper-small"
#model_path="/home/faster-whisper-model/faster-whisper-large-v3"
#model = WhisperModel("tiny", device="cuda")
#采用cpu模式
model = WhisperModel(model_path, device="cpu", compute_type="float32")
# 使用 Faster-Whisper 进行转录,示例:将中文翻译成英语
segments,info = model.transcribe("test.mp4", language="uk", task="translate")
#存储处理后的每一帧的剪辑
tmpclips=[]
for segment in segments:
start = segment.start
end = segment.end
text = segment.text
#按照帧截取
subclip = video.with_subclip(start, end)
#设置每帧的字幕字体、内容、字号、颜色
txt_clip = TextClip(font="simhei.ttf",text=text, font_size=50, color='white')
#设置每帧字幕位置,每帧的显示时间
txt_clip = txt_clip.with_position('top').with_duration(end-start)
print(text,end-start)
#制作剪辑
subclip = (CompositeVideoClip([subclip, txt_clip]))
tmpclips.append(subclip)
#参考moviepy官方文档中的示例
## 合并所有剪辑
final_clip = concatenate_videoclips(tmpclips)
## 输出到文件
final_clip.write_videofile("output_video.mp4")
结束语
最后看一下效果,最上面的英文字幕是faster_whisper生成的,中文那些不是哈!!!
moviepy2.0.0生成的效果
要想学好ai,python和docker必不可少啊!!!
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)