Anime Auto add Chinese Subtitle
导言
- 接触到anime的资源更多,没有翻译的日语视频就越多。需要一种自动化的方法读取日语音频->提取日语字幕文本->翻译成中文。(日语学不了一点)。但是免费机翻的问题是太出戏了。
- 有更好的视频源(高码率色域会更广,一般白的会更白,低码率白色会偏黄),但是没字幕:视频OCR硬字幕提取字幕组的成果(Respect),可能是更好的选择。
推荐分离MKV软字幕/已有的字幕组¶
- 格式工厂 - 视频 - 分离器
- 找到视频发布月份后,去桜都字幕组合集里下字幕, Ref1 and Ref2:mkv视频
- 英文字幕组 sakuracircle
外挂字幕与视频不同步¶
视频源不同,会有不同长度的片头。
VLC媒体播放器确定偏移秒数¶
- 打开VLC,点击“媒体” -> “转换/保存”。
- 在“文件”标签下,添加你的视频文件。
- 点击“显示更多选项”,勾选“使用字幕文件”,并添加你的ASS字幕文件。
- “工具” - “轨道同步” - 测试字幕偏移秒数
Aegisub延后时间¶
- “计时” “平移时间”
硬字幕提取 video-subtitle-extractor¶
- video-subtitle-extractor
- location:
E:\commonSoftware\vse
andE:\commonSoftware\vse_gpu
效果评估¶
- CPU版本快速模式:
1011s
- GPU版本快速模式:
201s
Speedup5x
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% |
拓展srt translation(失败)¶
autosub
是支持 目的语言翻译的-D lang_code, --dst-language lang_code
- 所以需要修改
autosub-ahk
1的脚本gen.bat
,加上-D zh-cn
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
- syedgakbar 支持多个翻译器(但是其余的要钱)
- translatesubtitles Based on Google translation, 可以拖拽上传
效果评估 autosub¶
- 速度:16mins视频mp4,提取音频
13s
, Speech2Text20s
- 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
其他¶
- VideoSrt ,只支持接入阿里云语言识别,没有免费额度,但是有3个月免费试用期。
- pyvideotrans
- subtitleedit
- Translate-Subtitle-File 感觉比不上online版本