Last Updated on 2023年11月1日 by go123
使用Whisper,帮助我为没有字幕的课程视频添加字幕,进而更深入地理解视频内容。这款工具尤其适用于视频中只有一个人在讲话。如果多人交谈,并且讲话时会争夺话语权,会导致字幕频繁更换,所以这工具非常适合制作课程视频的字幕。
Table of Contents
在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
可能失效,导致输出内容在简体和繁体中文之间切换。
如何处理断句过长
我用的时候,在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
发表回复