b站视频下载
视频的方式可参考知乎文章,我使用的是哔哩哔哩下载助手,具体使用方法参看文档说明。如果直接使用手机缓存视频(视频在文件管理器中的路径:Android/data/tv.danmaku.bili/download),得到的格式为m4s的video和audio文件,也就是说视频中画面和音频分离的(可以使用ffmpg: 一个用于在格式之间转换多媒体文件的命令行工具 工具合并),但用哔哩哔哩下载助手可以直接得到完整的视频。
语音翻译
有很多国外的视频没有中文翻译,奈何本人在语言方面又是个渣渣,遂只能另辟蹊径,研究了一下机器翻译这个东西。本来我以为只需要1个小时就能看到机器翻译效果,还美滋滋地想着可以继续看视频了,谁曾想,却弄了一天。诶,一天瞎折腾......
我用的软件是网上的开源软件autosub,这个软件分为原版和新版(原谅我不知道怎么称呼这两个版本),原版只有语音识别的功能,新版在原版的基础上增加了翻译的功能。
原版的使用方法
(别问我为什么是要用新版的功能却去使用了原版,问就是命运的安排)
原版的使用方法主要参考这两篇博客,分别是binglinggroup和v3u,安装成功之后,我原以为就可以正常使用了,但是autosub报错ffmpeg: Executable not found on machine,庆幸在网上找到了解决方法,就是直接在原码中注释抛出错误的哪一行,在运行的时候,虽然控制台还是会报错,但是能输出字幕文件。接下来就是看看google翻译的准确性了。
(这是一段抱抱怨怨:按照第二篇博客中的做法需要去googlecloud上申请使用资格,可是我去申请的时候google已经退出中国市场了,根本找不到中国的选项,网上倒是有一些神奇的操作能申请到,可是那已经是两年前发的文章了。郁闷至极,怎么做一步卡一步。突然我灵光一现,想到可以直接在google翻译上翻译,因为google翻译可以翻译文档。然后我把得到的字幕文件转化为txt文件,在google翻译文件上传的页面上传,可以google提示不接受这个格式,但是它也不提示接受什么格式的文档:不知道是不是我没看到,然后我发现右边的显示有word格式文档,猜想是不是可以用word文档试试。)
把字幕文件中的内容复制到word文档中,上传之后下载翻译的文件,翻译出来的结果只能说是差强人意、聊胜于无、食之无味、弃之可惜。
新版的使用方法
(又是一段心理活动:本来在知道翻译的效果不行的时候就不想再继续了,但想着都花了这么长时间还是有头有尾吧。)
新版的使用我参考的是这篇博客,最开始我也是按照这篇博客的步骤来做的,但是不知道为什么就是没有成功,然后走了很多弯路,最后还是按照博客的步骤成功了。
(走弯路的过程:第一次安装好之后运行指令,但是python报错,我不熟悉python的语法,不知道怎么解决。在网上也很难找到资料,于是开始按照官网的教程来安装。官网的文字很多,看起来有些头大:本人耐不下心去读,不过还是慢慢往下看了,好像也没有那么复杂。官网推荐使用choco来安装Python环境,chocolatey来安装依赖。然后我就去查了一下choco和chocolatey这两个工具,期间的胡乱尝试暂且不表,只说最后我发现我和安装指令只差一个curl,花了半天时候安装好了之后才发现使用这个工具的原因是要安装pip,可是我原本就有pip啊。安装好之后我又执行了一遍pip安装autosub指令,因为仔细看了官网,所以这里选择的是alpha版本,但是在运行翻译视频指令时又报错了,说enums找不到,还是找不到解决方法,于是我又将其卸载,安装了dev版本,在运行时还是报错,说NoneType的报错,依旧没找到解决方法,就是我特别失望的时候,我想着要不要完全复制博客里的指令运行试试,然后就生成了翻译后的字幕文件。有一种山重水复疑无路、柳暗花明又一村的感觉,但更多的还是无奈、无奈啊)
这里记录一下执行的命令:
-
使用谷歌
autosub -SRC en -S en-US -D zh-cn -surl translate.google.com -slp 0.1 -i "path"
-
使用讯飞
autosub -sapi xfyun -i "question.mp4" -sconf "xf-config.json" -SRC th -S th -D zh-cn -surl translate.google.com -slp 0.1
讯飞的配置文件:
{ "app_id": "", "api_secret": "", "api_key": "", "api_address": "", //如果遇到hostname报错,把这行删掉 "business": { "language": "zh_cn", //识别语言 "domain": "iat", // 翻译领域:日常对话 "accent": "mandarin" } }
测试了一下,针对泰语的翻译还是google更好一些,还有一个百度语音识别没有使用,不想折腾了,就这样吧。