之前哈利波特出了新版有声书有坛友讨论过这个问题: 关于新出的《哈利波特》多人配音版音频书 字幕快速生成的探讨 - 软件经验交流展望 - FreeMdict Forum
我虽然之前一直在用Subtitle Edit,但总感觉不尽如人意,其实之前匹配日文课文时就想写个类似的工具,更适合电子书或者文章的匹配,现在AI编程越来越强,终于可以快速实现这个想法了。
这次用了一晚上用ai写了个音频对齐工具,复刻了Subtitle Edit的部分功能,而且侧重电子书的强制对齐。目前思路和之前写的OCR工具类似,先识别,后匹配,然后可以通过静音区优化,为了方便调用各种模型,仍然选择了python。目前支持两种ASR模型,包括Whisper和Qwen ASR,此外还支持Qwen3-ForcedAligner-0.6B直接对齐。
github地址:
注意,虽然github编译了一个版本,但是是cpu版,需要用gpu加速的话还是下载源码自行配置gpu版torch环境比较好。打包gpu版python环境太大了,光cuda相关就要4gb。
测试采用了哈利波特的日语版和西语版,支持三个视图,句子,文章和对比视图:
可以选择波形图或者频谱图,可以手动编辑段落
结果可以导出为网页或字幕:
winn
3
我以前都是用程序分拆音频。有些分拆得不好的,需要人工编辑。
版本更新,现在支持全书识别,而且长任务会主动释放缓存防止显存占用过高。增加大量编辑功能,支持自动分句和按词定位
我也是程序拆分+人工编辑集成的功能,不过是直接实现了subtitle edit的主要功能,而且用了更好的Qwen模型,可以词级别对齐,比whisper的大致时间准很多
Vim
6
对 subtitle edit 比较熟悉,但我还是不太理解本程序要解决或优化的核心问题是什么?能否说说主要的使用场景?我的以下理解是否正确:
- 场景1:各种英文教材,如果我已有官方提供的音频和文本(称为A),那么就可以使用该软件先调用 whisper 或 qwen 模型将音频识别为文本(称为B)及时间戳等必要的信息,然后对齐A和B文本,通过时间戳实现文本A与音频的对齐,最终实现逐句或逐词的点击定位朗读,或音频播放时高亮相应的文本?
- 场景2:电影或视频,只有语音,没有字幕,那么就可以使用该软件识别出相应的文本和时间轴(这是whisper的基本功能),并可以按需编辑文本并自由断句,在此基础上就可以进一步转换为字幕格式?
- 场景3:视频编辑中,要添加字幕,已有语音和文本,但还没有打轴对齐,剪映有个自动对齐的功能(不熟悉,好像是这么称呼),原理上好像也是先语音识别,将其与用户提供的文本对比,从而对齐时间抽,但给到用户的感觉,好像很智能,将文本自动匹配到音频上了,是否本软件也实现了类似的功能?
是的,我写这个主要是用来对齐多章节的音频和文本,和之前ocr工具思路类似,ocr是用一个能输出带位置信息的模型,对比另一个不准确的文本,然后人工修正的,人工修正因为可以直接定位到图片,会方便很多。这个是类似的用asr生成的文字,对齐另一个准确的文本定位,生成字幕和带时间的可以按句跳转的html,没有准确文本直接用生成的文本也可以,然后人工修正时间轴。就是给电子书和有声书对齐设计的,所以一开始就支持分章节,m4b格式,长音频,导入epub,现在很多工具要不就是能对齐但不能修改,要不就是对齐不准确,要不就是不支持分章节,没一个满足我需求的,所以自己写了一个。
Vim
8
之前我使用 whisper,如果篇幅一长,会出现很多识别问题,使用 whisperx 会好一些。您对于电子书等这种长篇幅的音频,是如何解决这个问题呢?
目前是分段识别的,一段5分钟左右,优先用静音区域分割
查了下WhisperX其实是多步骤的,也是前面有VAD分段,然后调whisper识别,不用whisper本身的时间,而是后面加了个wav2vec2模型对齐,还有pyannote-audio分析说话人。