Whisper+剪映制作精听材料

谢谢兄台推荐,另外若超过5000字,可有简易切割影片长度的软件推荐 :sweat_smile:

我写过一个脚本来做这事,不过我已经放弃了。因为脚本只能切割,复制到剪映运行等还是一大堆手动操作,完全是浪费时间,不推荐。

理解,谢谢,本在虚拟机上的win 7 想跑 whisper 后来发现虚拟机的环境不能跑 whisper ,whisperX 可有不需透过 python 也能跑,虚拟机上的win 7能跑吗?

因之前在虚拟机上跑 显示

Screenshot from 2023-10-18 17-15-20

应该是不行,这个主要需要显卡,虚拟机除非有显卡直通。

谢谢@zambast大指引,WhisperX 只能透过 python 跑吗?

智影网页版无字数限制,限时长2小时。字数少我才用剪映。

1 个赞

绑手机号,玩不了 :sweat_smile:

最近开始听audiobook,于是就用上面提到过的syncabook做字幕。其实之前只是用它提供的测试文件试了一下感觉挺好用。这次做自己的audiobook就碰到了一些问题。主要是audiobook一般都有8~10小时长,甚至更长的,这么长的音频文件,就会因为内存不足中途爆掉。这个其实GitHub上作者有提供解决办法。只是解决了这个问题之后,发现越到后面越是不准,到最后一章已经是没法看的地步了。感觉似乎是由于每章开头往往会有停顿之类的,导致越往后偏差越大。必须得按章切割才行。这个其实也是syncabook作者推荐的方式,syncabook本身就提供一个to_xhtml功能能够指定关键词切割文本。另外其实epub解包之后的html本身就是按章分的html,再用老马的TextForever转成txt就行了。只是音频文件就稍微有点麻烦,如果本来下载的就是分好章节的mp3,那自然最好;像是m4b这种本身提供章节的,也好分割;就怕是一整个mp3,手动切割就非常麻烦。好在搜了一下发现有个叫Chapterize-Audiobooks的项目,利用AI技术自动切割(大概就是语音识别,找到Chapter),非常好用,就是跑起来比较慢,似乎是用的CPU。通过章节切割之后再用syncabook,就非常得准,基本可以当精读材料使用。

1 个赞

飞书妙记,目前免费,快速,还能导出或直接分享,定位精准到词。支持英语日语

看了一下好像只是个语音转文字,这方面目前没有超过Whisper的,而Whisper还是本地运行,完全免费,时间轴不准的问题通过WhisperX能够解决90%以上。

电脑版有视频转文字。好处是随时可看

精听用什么软件啊
-每日英语听力目前应该体验最佳

话说又快一年过去了,SubtitleEdit升级了很多好用的功能,whisper large-v3-turbo也发布了,但好像周边的软件都还没跟上。

现在SubtitleEdit已经成为我手工打轴的主力军了,体验比Aegisub好太多了。Aegisub多年不更新,快要成老古董了。

关于 WhisperX 的使用,不知是否有更新?

分享一下我的AI+手工的字幕经验:

  1. 用 whisper生成字幕文本,或直接从视频网站下载字幕文件
  2. 使用SubtitleEdit导出为纯文本
  3. 使用ChatGPT等AI工具,给纯文本断句,添加标点,并重新分行,既符合字幕长度的需求,同时又能够按照语法特征在合适的位置断行。
  4. 使用SubtitleEdit手工打轴,并制作多语字幕。
  5. 使用mpv及自定义的脚本制作电影级别的漂亮的双语ass字幕。

这其中,手工打轴若能够自动完成就完美了,好像技术上是通的:

  1. 通过WhisperX等可以获得word级别时间轴定位。
  2. 通过一定技术手段匹配经过调整断行的文本,并生成相应的时间轴。

不知道是否有软件已经实现该功能?

Whisperx只能让本来偏差不大的字幕变得非常准确,反而会让本来偏差较大的字幕偏移到姥姥家。而且Whisperx只会按句号整句输出,会破坏Whisper本身的断句。
还有一些别的项目在做提高精度的事情,比如GitHub - nyrahealth/CrisperWhisper: Verbatim Automatic Speech Recognition with improved word-level timestamps and filler detection
你可以试试,我最近没啥时间测试。
另外还有个思路是用其他软件(例如DaVinci Resolve)做出准确的时间轴,然后用Whisper生成的字幕(或者确保准确的字幕文本)对其进行修正,这个工作可以用GitHub - EtienneAb3d/SRT-Sync: Synchronize SRT timestamps over an existing accurate transcription
来做,不过SRT-Sync无法处理太长的文件(超过2小时),另外偶尔会把原来正确的改错,再就是DaVinci之流生成的字幕由于识别不准会导致断句出问题。总之算不上完美,但应该都能进一步提高字幕自动化的程度。
还有个思路是用chatgpt或本地大模型(不花钱,比如Qwen2.5),同样在已有准确时间轴的基础上对错误的字幕进行修正,应该是更加完美的方案,但是目前没人做这种项目,难点是目前大模型的输出都有很大的限制,需要切分文件处理后再合并。

1 个赞

看来你花了不少功夫啊!
SRT-Sync 好像正是我需要的,赞!
DaVinci Resolve 是专业视频编辑的商业软件吧? 看官网介绍好像挺复杂,没用过,只会Adobe Premiere.

使用ChatGPT等AI工具,给纯文本断句,添加标点,并重新分行,既符合字幕长度的需求,同时又能够按照语法特征在合适的位置断行。

Whisper一般已经是有标点的,然后可以指定一行多少个词,比如
–max_words_per_line 10
断句反正没有特别关心

srt → ass 貌似有python脚本可以用ffmpeg实现

srt sync 我一般用ffmpeg 生成一下
ffmpeg.exe -loop 1 -i test.png -i “test.mp3” -c:a aac -ab 64k -c:v libx264 -pix_fmt yuv420p -shortest -strict -2 -vf “subtitles=test.srt :force_style=‘Fontsize=24’” “test.mp4”

1 个赞

很多时候,我的字幕来源是已有的,只是不满意其断句(影响自动翻译的效果和观影体验),比如youtube自动生成的字幕。这时我就需要使用ChatGPT等AI工具。

我已经自己写了一个lua script dualsubs-creat.lua ,在mpv中,一键生成。


这条命令只是将一张图片和一段音频合成为一个视频文件,并在视频中添加指定的字幕。这与我们前面所说srt sync概念不同(两个不同的srt,一个是文本好,一个是时间轴好,sync出一个两个都好的字幕)。