跳转至

Anime Auto add Chinese Subtitle

导言

  1. 接触到anime的资源更多,没有翻译的日语视频就越多。需要一种自动化的方法读取日语音频->提取日语字幕文本->翻译成中文。(日语学不了一点)。但是免费机翻的问题是太出戏了。
  2. 有更好的视频源(高码率色域会更广,一般白的会更白,低码率白色会偏黄),但是没字幕:视频OCR硬字幕提取字幕组的成果(Respect),可能是更好的选择。

推荐分离MKV软字幕/已有的字幕组

  1. 格式工厂 - 视频 - 分离器
  2. 找到视频发布月份后,去桜都字幕组合集里下字幕, Ref1 and Ref2:mkv视频
  3. 英文字幕组 sakuracircle

外挂字幕与视频不同步

视频源不同,会有不同长度的片头。

VLC媒体播放器确定偏移秒数

  1. 打开VLC,点击“媒体” -> “转换/保存”。
  2. 在“文件”标签下,添加你的视频文件。
  3. 点击“显示更多选项”,勾选“使用字幕文件”,并添加你的ASS字幕文件。
  4. “工具” - “轨道同步” - 测试字幕偏移秒数

Aegisub延后时间

  • “计时” “平移时间”

硬字幕提取 video-subtitle-extractor

效果评估

  • CPU版本快速模式: 1011s
  • GPU版本快速模式: 201s Speedup 5x using RTX3070

语音识别机翻 autosub-ahk

  • 原理: 基于Autosub
  • 运行: 需要安装依赖的Autosub文件夹到autosub.exe同级目录,点击autosub.exe执行
  • location: E:\commonSoftware\autosub-ahk

开发者博客说明了,已经添加了日语。

能识别出日语字幕,但是没有翻译
*** Loading AutoSub, please wait ...
翻译目的语言未提供。只进行语音识别。

将源文件转换为"C:\Users\Administrator\AppData\Local\Temp\tmpaavrws4a.wav"来检测语音区域。
ffmpeg.exe -hide_banner -y -i "E:\Desktop\SuperResolution\[AI去码[60FPS]][あんてきぬすっ] OVA 向日葵ハ夜ニ咲ク[1080P].mp4" -vn -ac 1 -ar 48000 -loglevel error "C:\Users\Administrator\AppData\Local\Temp\tmpaavrws4a.wav"

使用ffprobe来检查转换结果。
ffprobe.exe "C:\Users\Administrator\AppData\Local\Temp\tmpaavrws4a.wav" -show_format -pretty -loglevel quiet

转换完毕。
使用Auditok检测语音区域。
Auditok语音区域检测完毕。
"C:\Users\Administrator\AppData\Local\Temp\tmpaavrws4a.wav"已被删除。

按照语音区域将音频转换为多个短语音片段。
转换中: N/A% |                                                                                            | ETA:  --:--转换中: N/A% |                                                                                            | ETA:  --:--转换中:   1% |#                                                                                           | ETA:   0:01转换中:   1% |########################################################################################### | ETA:   0:00转换中: 100% |############################################################################################| Time:  0:00:15

将短片段语音发送给Google Speech V2 API并得到识别结果。
语音转文字中: N/A% |                                                                                         | ETA:  --语音转文字中: N/A% |                                                                                         | ETA:  --语音转文字中:   0% |                                                                                         | ETA:   0语音转文字中:   3% |###                                                                                      | ETA:   0语音转文字中:   4% |
ja.srt
11
00:00:47,350 --> 00:00:50,830
こんな顔 旦那には見せられないわよ

12
00:00:55,110 --> 00:00:55,920
憲仁さん

13
00:00:57,950 --> 00:00:58,630

拓展srt translation(失败)

  • autosub 是支持 目的语言翻译的 -D lang_code, --dst-language lang_code
  • 所以需要修改autosub-ahk1的脚本gen.bat,加上-D zh-cn
gen.bat
autosub -S %LANG% -D zh-cn -i %INPUT% -o %OUTPUT% -et 50 -mxrs 6 -mxcs 0.1
googletrans fail

但是报错闪退了,没看清错误是什么。阅读脚本,解析出如下的命令

.\autosub.exe -S ja-JP -i "E:\Desktop\SuperResolution\[AI去码[60FPS]][あんてきぬすっ] OVA 向日葵ハ夜ニ咲ク[1080P].mp4" -o "E:\Desktop\SuperResolution\[AI去码[60FPS]][あんてきぬすっ] OVA 向日葵ハ夜ニ咲ク[1080P].srt" -D zh-cn -et 50 -mxrs 6 -mxcs 0.1

Traceback (most recent call last):
  File "autosub\__main__.py", line 25, in <module>
  File "autosub\__init__.py", line 159, in main
  File "autosub\cmdline_utils.py", line 1369, in audio_or_video_prcs
  File "autosub\core.py", line 635, in list_to_googletrans
  File "site-packages\googletrans\client.py", line 249, in detect
  File "site-packages\googletrans\client.py", line 75, in _translate
  File "site-packages\googletrans\gtoken.py", line 200, in do
  File "site-packages\googletrans\gtoken.py", line 65, in _update
AttributeError: 'NoneType' object has no attribute 'group'
[3120] Failed to execute script __main__

issue的意思是googletrans的API变了, 需要安装pip install googletrans==4.0.0rc1

但是尝试了之后 same problem。看评论区混乱的样子,是没人匹配API。故放弃。

Online & Free Translate Subtitles from JA to ZH

效果评估 autosub

  • 速度:16mins视频mp4,提取音频 13s, Speech2Text 20s
  • Transcribe Audio To Subtitles: default Google-Speech-v2 API
  • Translate Subtitles: by "translate.google.cn"

auto_ai_subtitle

AI字幕生成,字幕翻译 基于openai/whisper、translate、ffmpeg,自动为视频生成翻译过后的srt字幕文件,支持自定义各种语言.2

已有教程

其他

  1. VideoSrt ,只支持接入阿里云语言识别,没有免费额度,但是有3个月免费试用期。
  2. pyvideotrans
  3. subtitleedit
  4. Translate-Subtitle-File 感觉比不上online版本

参考文献

评论