Skip to content

通过LLM进行进行字幕断句分割,处理和优化字幕文件,将自动语音识别(ASR)数据的分段合并与拆分,

Notifications You must be signed in to change notification settings

yangping4271/SubtitleSpliter

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

项目简介

本项目旨在处理和优化字幕文件(SRT格式),通过自动语音识别(ASR)数据的分段合并与拆分,提高字幕的可读性和同步精度。主要功能包括:

  • ASR数据预处理:标准化 中英文文本,去除纯标点符号,处理中英文混合文本等。
  • 长分段的智能拆分:利用大语言模型(LLM)对超过最大词数的中英文分段进行拆分,确保每个分段的可读性。
  • 缓存机制:通过哈希生成缓存键,减少测试过程的重复请求,提高处理效率。

使用方法

  1. 准备SRT文件

    确保你有需要处理的SRT文件,例如:test_data/演讲.srt

  2. 运行主程序

    该脚本将读取指定的SRT文件,进行预处理、分段合并与拆分,并生成一个合并后的SRT文件,如test_data/演讲_merged.srt

示例用法

假设你有一个名为演讲.srt的字幕文件,内容如下:

1
00:00:09,100 --> 00:00:09,2602
00:00:09,260 --> 00:00:09,4203
00:00:09,420 --> 00:00:09,6204
00:00:09,820 --> 00:00:09,9405
00:00:09,940 --> 00:00:10,1806
00:00:10,220 --> 00:00:10,4207
00:00:10,420 --> 00:00:10,5808
00:00:10,580 --> 00:00:10,740
溪

...

运行main.py后,将生成一个合并后的文件李白_merged.srt,内容示例如下:

1
00:00:09,100 --> 00:00:09,620
大家好

2
00:00:09,820 --> 00:00:10,740
我叫杨玉溪

3
00:00:11,220 --> 00:00:14,220
来自有着良好音乐氛围的福建厦门

4
00:00:14,700 --> 00:00:15,420
自记事起

结果说明

  • 合并分段:原始SRT文件中每个单一字符或单词作为一个分段,经过处理后,分段被合并为一句完整的句子,提升了字幕的可读性。

  • 时间同步:合并后的字幕段落时间跨度根据原始分段的起止时间自动调整,确保字幕与视频内容同步。

  • 智能拆分:对于合并后仍然超过最大词数的字幕段落,系统将自动利用LLM进行语义拆分,避免在不适当的位置断句,保持字幕的连贯性和自然性。

项目结构

  • main.py:主程序,负责读取SRT文件,进行预处理、分段合并与拆分,并保存结果。
  • split_by_llm.py:使用LLM进行文本断句的模块,包含缓存机制以提升效率。
  • ASRData.py:处理ASR数据的模块,定义数据结构和相关操作。
  • test_data/:存放测试用的SRT文件及处理后的结果文件。
  • cache/:存放LLM断句结果的缓存文件。
  • requirements.txt:项目依赖列表。
  • README.md:项目说明文件。

更新日志

v1.0.0

  • 初始发布,实现基本的SRT文件处理功能。

About

通过LLM进行进行字幕断句分割,处理和优化字幕文件,将自动语音识别(ASR)数据的分段合并与拆分,

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%