python使用moviepy+pysrt+whisper自动识别声音并为视频添加字幕生成新视频

代码语言:python

所属分类:其他

代码描述:python使用moviepy+pysrt+whisper自动识别声音并为视频添加字幕生成新视频,使用VideoFileClip提取视频的音频,然后利用whisper识别成字幕文件srt,最后合并到视频中,opencc主要解决繁体字转简体。

代码标签: python moviepy pysrt whisper 自动 识别 声音 视频 添加 字幕 生成

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

#pip install -U openai-whisper
#pip install -U opencc
#pip install moviepy
#pip install pysrt 
from moviepy.editor import VideoFileClip, TextClip, CompositeVideoClip
import pysrt
import whisper
from opencc import OpenCC  # 用于繁体到简体转换


# 提取音频文件
def extract_audio_from_video(video_file, audio_file):
    video = VideoFileClip(video_file)
    audio = video.audio
    audio.write_audiofile(audio_file, codec='pcm_s16le')  # 使用无损的音频编码

# 使用 Whisper 转录音频并生成 SRT 文件
def generate_srt_from_audio(audio_file, srt_file):
    # 加载 Whisper 模型
    model = whisper.load_model("base")
    # 初始化 OpenCC 转换器
    cc = OpenCC('t2s')  # 从繁体转为简体
    # 转录音频并获取时间戳
    result = model.transcribe(audio_file, language="zh", task="transcribe")

    # 导出 SRT 字幕文件
    def export_srt(result, filename):
        def srt_timestamp(seconds):
            h = int(seconds // 3600)
            m = int((seconds % 3600) // 60)
            s = int(seconds % 60)
            ms = int((seconds % 1) * 1000)
            return f"{h:02}:{m:02}:{s:02},{ms:03}"

        srt_content = []
        for i, segment in enumerate(result["segments"]):
            .........完整代码请登录后点击上方下载按钮下载查看

网友评论0