视频语音转文本工具 ——SubtitleEdit

前言

上一篇给大家介绍了一款从视频中提取字幕的工具,但并不是所有视频都有字幕,那么对于无字幕视频,如何获得视频的文本呢?本篇将给大家分享另一个好用的工具,它可以通过语音识别来提取视频文本,本文同样详细介绍了其使用步骤,希望能帮助到有此类需求的朋友。

一、项目简介​

SubtitleEdit 是一款功能强大且免费的字幕编辑软件,它不仅支持多种字幕格式的编辑、转换,还具备视频语音转文本功能。该项目在 GitHub 上有公开源代码,原帖链接:https://github.com/SubtitleEdit/subtitleedit/releases。通过这个链接,你可以获取到该工具的源代码,查看项目的更新动态等。

二、使用教程

1、复制链接https://github.com/SubtitleEdit/subtitleedit/releases到浏览器进行访问。

2、下滑找到“Assets”,下载第四个压缩包

3、将下载后的压缩包进行解压,得到如下文件夹。

4、打开文件夹,找到“SubtitleEdit.exe”并双击打开。

5、打开后,电脑会弹出以下界面。该界面默认为英文,若想改为中文版,则点击“Options”,点击“Choose language”,选择中文(简体)并确认。

6、该工具有多项功能,这里主要演示语音识别功能。点击视频,点击语言识别(Whispr),电脑会弹出音频转文字界面。

7、然后选择语音识别的模型。首先点击“引擎”,选择“Purfview’s Faster-Whisper-XXL”;然后点击“选择语言”,由于这里用于转文本的视频为中文视频,因此这里选择“Chinese”;接着点击“选择模型”,为了使语音识别更准确,我们选择“large-v3”这个大模型,然后点击“下载”(这里可能需要借助ti子)。

8、模型设置完成后,点击“添加”选择需要进行语音转文本的视频并打开。

9、我们选择的视频就会显示在输入框,若需要处理多个视频,还可继续添加。添加完毕后,点击“生成”,它就会自动对所选视频进行语音转文本。

10、下方绿色进度条会显示视频处理进程,当视频处理完成后,电脑会弹出转成的文件保存的位置。

注意:在语音识别过程中,如果出现报错或者其他转文本失败以及生成的字幕文件、文本文件为空的情况,这里有2种解决办法,1、检查原视频是否有损伤 2、不批量选择视频,一次只打开一个视频。以上方法尝试后若仍无法解决,则可放弃。

11、默认情况下,语音转文本得到的是srt字幕文件,若需要生成其他格式的文件,可以在首页面点击“格式”,选择所需的格式。

12、该工具进行语言识别即可得到srt字幕文件,也可生成txt文本文件,若已经得到srt字幕文件后还想获得纯台词的txt文本文件,可通过下方代码快速进行转换。

import os
import glob
import shutil
def srt_to_txt(srt_file, txt_file):
    with open(srt_file, 'r', encoding='utf-8') as file:
        lines = file.readlines()
    with open(txt_file, 'w', encoding='utf-8') as file:
        for line in lines:
            stripped_line = line.strip()
            # 忽略空行和看起来像时间戳或序号的行
            if not stripped_line or '-->' in stripped_line or stripped_line.isdigit():
                continue
            file.write(stripped_line + '\n')
def convert_all_srt_in_folder(folder_path, output_folder):
    if not os.path.exists(output_folder):
        os.makedirs(output_folder)
    srt_files = glob.glob(os.path.join(folder_path, '*.srt')
    for srt_file in srt_files:
        # 构造输出的TXT文件名(不包含路径)
        txt_filename = os.path.splitext(os.path.basename(srt_file))[0] + '.txt'
        txt_file = os.path.join(output_folder, txt_filename)
        print(f'Converting {srt_file} to {txt_file}')
        try:
            srt_to_txt(srt_file, txt_file)
            print(f'Successfully converted {srt_file}')
        except Exception as e:
            print(f'Failed to convert {srt_file}: {e}')
input_folder = r''  # 输入文件夹路径
output_folder = r''  # 输出文件夹路径
convert_all_srt_in_folder(input_folder, output_folder)

结语

如果大家觉得有帮助,请多多点赞收藏支持一下,谢谢大家。如果遇到什么问题,也非常欢迎大家私信。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值