[全流程]Whisper生成字幕技巧(附带断句提示词)

Last Updated on 2023年11月1日 by go123

使用Whisper,帮助我为没有字幕的课程视频添加字幕,进而更深入地理解视频内容。这款工具尤其适用于视频中只有一个人在讲话。如果多人交谈,并且讲话时会争夺话语权,会导致字幕频繁更换,所以这工具非常适合制作课程视频的字幕。

在Colab上使用的方法

视频转音频技巧: 为了传输更少的数据并保持音质,我将视频转换为mp3格式,再传到虚拟环境中。

可以使用以下命令:

ffmpeg -i ./example.mp4 -q:a 4 ./output_audio_vbr.mp3

用whisper生成字幕非常简单,只需要3行代码就能用了。

安装whisper和ffmpeg

!pip install -U openai-whisper setuptools-rust
!sudo apt update && sudo apt install ffmpeg

使用

!whisper --model large-v2 --language English --initial_prompt "Whisper, when transcribing speech to text, please prioritize accurate punctuation. Ensure that each sentence is contained within a single subtitle segment for clarity. If a sentence is too long, break it at natural pauses in the speaker's delivery to keep subtitles concise and easy for viewers to follow." ./output_audio_vbr.mp3

在 Windows 上使用

方法类似。

但需要注意,使用官方文档的安装方法。在Windows上安装只能使用CPU,需要自己安装PyTorch,才能使用GPU。

主要使用技巧和问题解决:

提示词

分享一个我用来生成英文字幕的提示词参数,可以有效的断句。

–initial_prompt “Whisper, when transcribing speech to text, please prioritize accurate punctuation. Ensure that each sentence is contained within a single subtitle segment for clarity. If a sentence is too long, break it at natural pauses in the speaker’s delivery to keep subtitles concise and easy for viewers to follow.”

举个例子:

如何选择模型

  • 英语视频:使用medium模型就足够了,它的处理速度更快
  • 中文视频:选择large-v2模型

如何生成简体中文字幕

在命令中加入以下参数:–initial_prompt “以下是普通话的句子。”
参考链接:OpenAI Whisper讨论#277

关于翻译:

建议不要使用Whisper从英文向中文翻译,效果极差。

例如,它会把“Ohio”错误翻译为“纽约”。

如果需要翻译,建议提取字幕后使用ChatGPT进行翻译。

如何处理字幕重复

在有沉默或非言语片段的视频中可能会出现字幕重复的问题。

最好只使用 --temperature_increment_on_fallback 参数,可以解决这个问题。

使用 --condition_on_previous_text False 也能可以解决这一问题。但要注意 -- initial_prompt 可能失效,导致输出内容在简体和繁体中文之间切换。

参考链接:OpenAI Whisper讨论#1253

如何处理断句过长

我用的时候,在50分钟的视频中,部分句子可能过长,但在15分钟的视频中断句表现完美,但不太确定具体是什么原因。

我找到了一些关于解决断句问题的参数的讨论。

可以按照以下方式设置参数 --word_timestamps True --max_line_width 42 --max_line_count 2

完整例子:
!whisper output_audio_vbr.mp3 --model medium --word_timestamps True --max_line_width 42 --max_line_count 2

对于英文,max_line_width建议设置为42;对于中文,建议设置为14

参考链接:OpenAI Whisper讨论#314

其他参数功能

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注