[openai/whisper]添加新选项以按特定字数生成字幕

2024-03-04 847 views
1

添加了一个名为--max_words_count的新单词选项,该选项将生成字幕,设置每个片段的最大单词数限制。这听起来与--max_line_width选项类似,但恕我直言,结果对读者来说更令人满意。以下是使用 .SRT 文件的一些比较:

最大字数 请注意,--max_words_count作为单词的上限,但它仍然会尊重段,如果段中的剩余单词数低于 max_words_count 值,则句子末尾可以有更少的单词。即 _Segment = [word1, word2, word3, word4, word5] and max_words count = 3 =>Result = [word1, word2, word3] and [word4, word5]这不是我们可以使用--max_line_width 看到的行为连接段末尾和开头时留出更大的时间间隙: 宽度与字数

使用--max_words_count生成的字幕看起来与我们在 Shorts、Reels 和其他短视频中看到的类似。

这是我的第一个贡献,所以请随意更改/评论/改进任何内容。

补充笔记
  • 使用--max_line_width将禁用--max_words_count的效果。
  • 使用 Python 和 cli 手动测试并检查 .srt 和 .vtt 文件中的结果(.txt 和 .tsv 文件不会受到影响)。

回答

5

惊人的

1

从 pydub 导入 AudioSegment

歌曲 = AudioSegment.from_mp3("good_morning.mp3")

PyDub 处理时间(以毫秒为单位)

十分钟 = 10 60 1000

第一个_10_分钟 = 歌曲[:十分钟]

第一个_10_分钟.export(“good_morning_10.mp3”,格式=“mp3”)

2

@amolinasalazar 你建议 YouTube 的字数是多少?

3

事实上,我认为这是一个非常个人的选择,它可能取决于几个因素。

最后,Reels 或 Shorts 通常在屏幕上同时显示几个单词的主要原因是视频的宽高比。在垂直方向的手机上观看视频时,如果字幕行较长,则会充满整个屏幕。

还有其他因素,例如字体大小、讲话速度甚至上下文的复杂性。较少的文字通常会创建动态且有影响力的视频,非常适合简单而强烈的信息,但如果这些内容持续时间较长,可能会带来压力。例如,如果您正在解释一个困难的主题,我不会一次设置 1-3 个单词,因为理解起来可能会有压力。

所以我认为,你需要自己找到一个舒服的数字,但一般来说,3-6 个单词之间的数字就可以让人感到愉快。