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

字幕翻译报错:AttributeError: 'NoneType' object has no attribute 'group' #155

Open
benjaminyzhang opened this issue Dec 6, 2020 · 21 comments

Comments

@benjaminyzhang
Copy link

确保你已经看过 readme,也搜索并阅读过和你遇到的情况相关的问题。否则会被认为是重复的并被立刻关闭。

描述问题
尝试将语音识别的str英文字幕转为中文字幕,程序报错:AttributeError: 'NoneType' object has no attribute 'group'

复现问题
复现问题的步骤:
尝试过两种方法,都出现上述问题:

  • 从视频转中文字幕

  • 从识别的英文字幕转中文字幕

  • 你使用的命令行参数。推荐使用以下的代码块markdown语法,将代码块复制到```和```之间即可。

C:\Users\Username\Desktop\autosub\autosub>autosub -i C:\Users\Username\Videos\4.en-us.srt -SRC en -D zh-cn -o C:\Users\Username\Videos\4-cn.srt
  • 一份完整的autosub命令行输出。你可以使用Ctrl-ACtrl-C去复制所有输出。
C:\Users\Username\Desktop\autosub\autosub>autosub -i C:\Users\Username\Videos\4.en-us.srt -SRC en -D zh-cn -o C:\Users\Username\Videos\4-cn.srt
输入是一个字幕文件。

从"en"翻译为"zh-cn"。
翻译中: N/A% |                                                                                            | ETA:  --:--:--Traceback (most recent call last):
  File "C:\Users\Username\Desktop\autosub\autosub\__main__.py", line 25, in <module>
  File "C:\Users\Username\Desktop\autosub\autosub\autosub\__init__.py", line 170, in main
  File "C:\Users\Username\Desktop\autosub\autosub\autosub\cmdline_utils.py", line 796, in sub_trans
  File "C:\Users\Username\Desktop\autosub\autosub\autosub\core.py", line 660, in list_to_googletrans
  File "C:\Users\Username\Desktop\autosub\autosub\googletrans\client.py", line 172, in translate
  File "C:\Users\Username\Desktop\autosub\autosub\googletrans\client.py", line 75, in _translate
  File "C:\Users\Username\Desktop\autosub\autosub\googletrans\gtoken.py", line 200, in do
  File "C:\Users\Username\Desktop\autosub\autosub\googletrans\gtoken.py", line 65, in _update
AttributeError: 'NoneType' object has no attribute 'group'

期待的行为
为英文视频生成一份中文字幕。

操作环境(请提供以下完整数据):

  • 操作系统: [Windows 10企业版LTSC 2019]
  • Python版本: [Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 23:03:10) [MSC v.1916 64 bit (AMD64)] on win32]
  • Autosub版本: [autosub 0.5.7-alpha Nuitka windows发布版]

字幕文件:
3.en-us.zip

@Samsong1991
Copy link

需要使用最新的 googletrans 4.0.0rc1 版本,但是发布版里不知道怎么替换googletrans版本,就使用pip安装autosub了

@BingLingGroup
Copy link
Owner

@Samsong1991 原来是这个问题,看来我得重构一下发布版了
另外需要更新一下问题模板和readme,使用了发布版以后就不需要注明python环境的版本了,因为发布版不需要python环境依赖

@BingLingGroup
Copy link
Owner

相关问题 ssut/py-googletrans#234

@benjaminyzhang
Copy link
Author

benjaminyzhang commented Dec 16, 2020

@Samsong1991 @BingLingGroup 谢谢回答!通过安装googletrans 4.0.0rc1,已经可以使用了

# 从dev分支安装
pip install git+https://github.com/BingLingGroup/autosub.git@dev ffmpeg-normalize langcodes
# 安装googletrans 4.0.0rc1,以解决旧版googletrans接口失效的错误
pip install googletrans==4.0.0rc1

@AlanMaxxx
Copy link

AlanMaxxx commented Dec 22, 2020

@zyanze 我也同样遇到了这个问题。
`Traceback (most recent call last):
File "autosub_main_.py", line 25, in

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'

[13860] Failed to execute script main
`

@BingLingGroup
Copy link
Owner

@AlanMaxxx 你用pip安装一下github仓库里dev分支的代码即可解决问题

@BingLingGroup
Copy link
Owner

看起来又有新问题了 #163 ,急着使用翻译功能可以参考一下这个 #163 (comment)

@cjq02
Copy link

cjq02 commented Mar 1, 2021

@BingLingGroup 我已经安装了googletrans 4.0.0rc1,依然会报错。

错误信息如下:

PS D:\apps\autosub_pyinstaller> autosub -i .\en-us.srt -SRC en -D zh-cn -surl translate.google.com -slp 0.1 -o .\zh-cn.srt -hsp 127.0.0.1:1080
输入是一个字幕文件。

从"en"翻译为"zh-cn"。
翻译中: N/A% |                                                                                            | ETA:  --:--:--Traceback (most recent call last):
  File "autosub\__main__.py", line 25, in <module>
  File "autosub\__init__.py", line 173, in main
  File "autosub\cmdline_utils.py", line 804, in sub_trans
  File "autosub\core.py", line 662, in list_to_googletrans
  File "site-packages\googletrans\client.py", line 172, in translate
  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'
[17376] Failed to execute script __main__

python版本:3.7.3
python引入的第三包:

PS D:\apps\autosub_pyinstaller> pip list
Package                  Version
------------------------ ----------
astroid                  2.2.5
auditok                  0.1.8
**autosub                  0.5.7a0**
cachetools               4.2.1
certifi                  2020.12.5
chardet                  3.0.4
colorama                 0.4.4
**ffmpeg-normalize         1.21.0**
fuzzywuzzy               0.18.0
google-api-core          1.26.0
google-auth              1.27.0
google-cloud-speech      1.3.2
googleapis-common-protos 1.53.0
**googletrans              4.0.0rc1**
grpcio                   1.36.0
h11                      0.9.0
h2                       3.2.0
hpack                    3.0.0
hstspreload              2020.12.22
httpcore                 0.9.1
httpx                    0.13.3
hyperframe               5.2.0
idna                     2.10
isort                    4.3.16
**langcodes                3.0.0**
lazy-object-proxy        1.3.1
lxml                     4.6.2
mccabe                   0.6.1
numpy                    1.20.1
packaging                20.9
pip                      21.0.1
progressbar2             3.53.1
protobuf                 3.15.3
pyasn1                   0.4.8
pyasn1-modules           0.2.8
pylint                   2.3.1
pyparsing                2.4.7
pysubs2                  1.1.0
python-docx              0.8.10
python-utils             2.5.6
pytz                     2021.1
PyYAML                   5.1
requests                 2.25.1
rfc3986                  1.4.0
rsa                      4.7.2
Send2Trash               1.5.0
setuptools               40.8.0
shadowsocks              2.8.2
six                      1.15.0
sniffio                  1.2.0
tqdm                     4.58.0
typed-ast                1.3.1
urllib3                  1.26.3
wcwidth                  0.2.5
websocket-client         0.57.0
wrapt                    1.11.1

是否哪里有遗漏呢?

@BingLingGroup
Copy link
Owner

@cjq02 看起来你已经在外部安装了python和autosub,请问你现在使用的autosub是你外部安装的版本还是发布版?发布版是独立的环境,与外部的依赖不相关,也无法修改。
另外前几天我自己测试,没有遇到你们的这个问题

@cjq02
Copy link

cjq02 commented Mar 2, 2021

@BingLingGroup 我是直接在release页面下载autosub-0.5.7-alpha-win-x64-pyinstaller.7z解压后,通过powershell运行的。

@BingLingGroup
Copy link
Owner

@cjq02

发布版是独立的环境,与外部的依赖不相关,也无法修改。

#155 (comment)

以上的意思就是说如果你想修复这个问题,需要自己在外部用pip单独安装dev分支最新版代码(安装方法readme里说了),而不是用发布版。

@ZichengLouche
Copy link

@Samsong1991 @BingLingGroup 谢谢回答!通过安装googletrans 4.0.0rc1,已经可以使用了

# 从dev分支安装
pip install git+https://github.com/BingLingGroup/autosub.git@dev ffmpeg-normalize langcodes
# 安装googletrans 4.0.0rc1,以解决旧版googletrans接口失效的错误
pip install googletrans==4.0.0rc1

你好,现在这种方式又不行了,报错内容从之前的:
File "n:\programdata\anaconda3\lib\site-packages\googletrans\gtoken.py", line 65, in _update code = unicode(self.RE_TKK.search(r.text).group(1)).replace('var ', '') AttributeError: 'NoneType' object has no attribute 'group'

变成了:File "n:\programdata\anaconda3\lib\site-packages\httpcore_exceptions.py", line 12, in map_exceptions raise to_exc(exc) from None httpcore._exceptions.ConnectError: [Errno 0] Error

甚至尝试全部重新uninstall reinstall autosub.git@dev、googletrans==4.0.0rc1都还是报httpcore._exceptions.ConnectError: [Errno 0] Error。
还尝试了全新安装python环境,从3.7 升级到3.8.5后,在全新的环境执行:
pip install git+https://github.com/BingLingGroup/autosub.git@dev ffmpeg-normalize langcodes
pip install googletrans==4.0.0rc1
最终都会报错:raise to_exc(exc) from None httpcore._exceptions.ConnectError: [Errno 0] Error

请问大家现在用什么方式来处理此问题?

@BingLingGroup
Copy link
Owner

@ZichengLouche #155 (comment) 急得话先看看这个方法
其他替代性方法我有空研究下

@ZichengLouche
Copy link

@ZichengLouche #155 (comment) 急得话先看看这个方法
其他替代性方法我有空研究下

Hi,BingLingGroup,谢谢你的回复,根据你提供的#163 (comment)方案,
1,我现在使用的是你最新的autosub.git@dev分支,是不是在这个基础上直接pip install py-googletranslation用来安装和替换之前的那个pip install googletrans==4.0.0rc1版本的依赖就行了?
2,需不需要把之前的googletrans==4.0.0rc1版本的依赖卸载掉?
3,你最新的autosub.git@dev分支中接入的是googletrans依赖包还是py-googletranslation?或者是两者都可以?所以我们直接本地install py-googletranslation依赖就可以了?
4,我这里使用场景是通过autosub -i D:\Downloads\xxx.m4a -S cmn-hans-cn -D zh-cn 进行音频语音识别为中文文字而已,目前还没有通过autosub翻译就报错了,而且每次是在语音转文字都到最后100%的时候报错了,只是想完成第一步从语音到文字而已,目前这个功能也不好使了,更不谈翻译了。

5,你提到的命令:autosub -i {file} -tapi man -of dst -doc -mts 9820 -tf txt -F ass 生成的.ass文件内容为:
[Script Info]
; Script generated by pysubs2
; https://pypi.python.org/pypi/pysubs2
WrapStyle: 0
ScaledBorderAndShadow: yes
Collisions: Normal
ScriptType: v4.00+

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20.0,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100.0,100.0,0.0,0.0,1,2.0,2.0,2,10,10,10,1

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:00.76,0:00:03.01,Default,,0,0,0,,
Dialogue: 0,0:00:05.12,0:00:05.95,Default,,0,0,0,,
Dialogue: 0,0:00:06.22,0:00:07.99,Default,,0,0,0,,
Dialogue: 0,0:00:10.15,0:00:13.29,Default,,0,0,0,,

这里没有识别出来的文字内容哦?下一步copy哪些去手动翻译呢?
期待您的解答,这样可以让更多的人看到临时应对方案。

@BingLingGroup
Copy link
Owner

@ZichengLouche

  1. https://github.com/Saravananslb/py-googletranslation 这个我并没有在代码中进行支持,因为当时感觉是一个临时性的方案所以没有特别在意,目前来看好像问题不少。如果要支持,需要你自己改代码。
  2. 你没有仔细阅读readme,如果不要翻译,就不要加翻译的选项。
  3. 如果你不需要翻译,就不用考虑使用 字幕翻译报错:AttributeError: 'NoneType' object has no attribute 'group' #155 (comment) 中的方法。

@hxse
Copy link

hxse commented May 18, 2021

@BingLingGroup
我在最新的发布页下载了 autosub-0.5.7-alpha-win-x64-pyinstaller.7z
也遇到了这个报错 "字幕翻译报错:AttributeError: 'NoneType' object has no attribute 'group'"
发布页的这个, 是被放弃了吗, 还是希望能更新, 对于windows用户打包版本会更好上手

@BingLingGroup
Copy link
Owner

@hxse #173

@xingyou927
Copy link

Hi all, I have downloaded all the correct environment but still getting this error. Anyone manage to solve this problem?

pip list
Package                  Version
------------------------ ---------
auditok                  0.1.5
autosub                  0.5.7a0
cachetools               4.2.4
certifi                  2021.10.8
chardet                  3.0.4
charset-normalizer       2.0.9
colorama                 0.4.4
ffmpeg-normalize         1.22.4
ffmpeg-progress-yield    0.2.0
fuzzywuzzy               0.18.0
google-api-core          1.31.5
google-auth              1.35.0
google-cloud-speech      1.3.2
googleapis-common-protos 1.54.0
googletrans              4.0.0rc1
grpcio                   1.43.0
grpcio-status            1.43.0
h11                      0.9.0
h2                       3.2.0
hpack                    3.0.0
hstspreload              2021.12.1
httpcore                 0.9.1
httpx                    0.13.3
hyperframe               5.2.0
idna                     2.10
langcodes                3.3.0
libcst                   0.3.23
lxml                     4.7.1
mypy-extensions          0.4.3
packaging                21.3
pip                      21.3.1
progressbar2             3.55.0
proto-plus               1.19.8
protobuf                 3.19.1
pyasn1                   0.4.8
pyasn1-modules           0.2.8
pyparsing                3.0.6
pysubs2                  1.3.0
python-docx              0.8.11
python-Levenshtein       0.12.2
python-utils             2.6.3
pytz                     2021.3
PyYAML                   6.0
requests                 2.26.0
rfc3986                  1.5.0
rsa                      4.8
Send2Trash               1.8.0
setuptools               58.1.0
six                      1.16.0
sniffio                  1.2.0
tqdm                     4.62.3
typing_extensions        4.0.1
typing-inspect           0.7.1
urllib3                  1.26.7
wcwidth                  0.2.5
websocket-client         1.2.3
wheel                    0.37.0
.\autosub.exe -i "C:\Users\XingYou\Downloads\Video\2020.mp4" -SRC en -D zh-cn -o "C:\Users\XingYou\Downloads\Video\2020.srt"
Translation: N/A% |                                                                                    | ETA:  --:--:--Traceback (most recent call last):
  File "C:\Users\XingYou\Downloads\autosub\autosub\__main__.py", line 25, in <module>
  File "C:\Users\XingYou\Downloads\autosub\autosub\autosub\__init__.py", line 156, in main
  File "C:\Users\XingYou\Downloads\autosub\autosub\autosub\cmdline_utils.py", line 1361, in audio_or_video_prcs
  File "C:\Users\XingYou\Downloads\autosub\autosub\autosub\core.py", line 660, in list_to_googletrans
  File "C:\Users\XingYou\Downloads\autosub\autosub\googletrans\client.py", line 172, in translate
  File "C:\Users\XingYou\Downloads\autosub\autosub\googletrans\client.py", line 75, in _translate
  File "C:\Users\XingYou\Downloads\autosub\autosub\googletrans\gtoken.py", line 200, in do
  File "C:\Users\XingYou\Downloads\autosub\autosub\googletrans\gtoken.py", line 65, in _update
AttributeError: 'NoneType' object has no attribute 'group'

OS : [Windows 10]
Autosub Version: [autosub 0.5.7-alpha Nuitka windows]

@BingLingGroup
Copy link
Owner

@xingyou927 你应该尝试安装dev版本

@xingyou927
Copy link

Already installed the dev version but still getting the same error

choco install git python curl ffmpeg -y
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py
pip install git+https://github.com/BingLingGroup/autosub.git@dev ffmpeg-normalize langcodes

@BingLingGroup
Copy link
Owner

@xingyou927 #155 (comment)

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

8 participants