Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

有个关于翻译的bug #62

Closed
hpp0hpp opened this issue Sep 3, 2019 · 6 comments
Closed

有个关于翻译的bug #62

hpp0hpp opened this issue Sep 3, 2019 · 6 comments

Comments

@hpp0hpp
Copy link

hpp0hpp commented Sep 3, 2019

testTrans.zip
仍然在windows下测试。
附件的两个字幕文件仅有少量差异,但一个就会翻译失败,一个会翻译成功。
不太清楚哪里出了问题。

@BingLingGroup
Copy link
Owner

收到,马上测试

@BingLingGroup
Copy link
Owner

我知道问题了,主要是最后一行是空行,翻译方法在翻译的时候会忽略掉最后的空行,所以导致翻译出来的文本行数和翻译前的文本行数不一致,我这里采取很严格的判断,如果行数不一致会直接报错放弃翻译,所以就出错了。

这个是我程序的问题,因为Py-googletrans是按行发出请求,感觉有点太多了怕被封,于是我就给Py-googletrans做点优化,减少请求次数,按照4000半角字符/1000全角字符的长度来做的(之所以不是二分之一,大概是Py-googletrans的接口的bug,参见 #49 ),所以这里面就复杂了,需要判断有效行的始末位置,需要记录每次请求的行的位置,改了好几次,结果没想到最后空行的问题没有解决,其实结尾留有空行是比较常见的情况。

原因是因为最后一组记录始末位置的列表,末位置比原行数少,漏掉了那些空行,但是循环判断条件是始末位置列表用完了就退出,所以后面那些空行就没有被记录到翻译结果里,出来以后判断长度不一致就退出了。

@BingLingGroup
Copy link
Owner

提交 0e1192c应该能修复这个问题,你可以试着安装一下最新版。非常感谢你的问题。

@hpp0hpp
Copy link
Author

hpp0hpp commented Sep 3, 2019

@BingLingGroup 嗯嗯,非常感谢您,我主要是想看一个discovery的系列纪录片,但很多专业名词听不明白,所以发现了楼主的工具非常好用,非常感谢。不过我是个财务,编程能力非常基础,只能发现问题了,解决能力非常有限。
另外能不能遇到即使是翻译错误,也能输出原始语言的字幕文件。这样我们就可以下次仅调用翻译API或者使用其他翻译工具进行字幕翻译,而不是重新分离语音文件,重新语音识别了。再次感谢楼主。

@BingLingGroup
Copy link
Owner

现在是有这个功能的,你只需要使用-of all或者-of src即可,参见典型用法-输出语音语言字幕。关于该选项的详细说明可以在readme也就是帮助信息里面找到。

@hpp0hpp
Copy link
Author

hpp0hpp commented Sep 4, 2019

好的,可能是我一直选的是双语,所以失败了,就没有生成字幕。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants