Python 3.10.8中googletrans库触发AttributeError问题求助
印地语转英语翻译功能AttributeError问题解决
问题概述
编写了集成语音识别与印地语转英语翻译的Python代码,运行翻译模块时触发AttributeError: 'NoneType' object has no attribute 'group',使用Python版本为3.10.8。
原始代码
import speech_recognition as sr from googletrans import Translator def Listen(): r = sr.Recognizer() with sr.Microphone() as source: print("Listening...") r.pause_threshold = 1 audio = r.listen(source,0,6) try: print("Regognizing...") query = r.recognize_google(audio, language = "hi") except: return "" query = str(query).lower() return query def TranslationHintoEng(Text): line = str(Text) translate = Translator() result = translate.translate(line) data = result.text print(f"You : {data}") return data TranslationHintoEng("कैसा है जारविस मेरी आवाज आ रही है")
报错信息
PS E:\Coding\Python\AI -2\Pyttsx3 Hindi STT> & C:/Users/admin/AppData/Local/Programs/Python/Python310/python.exe "e:/Coding/Python/AI -2/Pyttsx3 Hindi STT/Body/Listen.py" Traceback (most recent call last): File "e:\Coding\Python\AI -2\Pyttsx3 Hindi STT\Body\Listen.py", line 35, in <module> TranslationHintoEng("कैसा है जारविस मेरी आवाज आ रही है") File "e:\Coding\Python\AI -2\Pyttsx3 Hindi STT\Body\Listen.py", line 30, in TranslationHintoEng result = translate.translate(line) File "C:\Users\admin\AppData\Local\Programs\Python310\lib\site-packages\googletrans\client.py", line 182, in translate data = self._translate(text, dest, src, kwargs) File "C:\Users\admin\AppData\Local\Programs\Python310\lib\site-packages\googletrans\client.py", line 78, in _translate token = self.token_acquirer.do(text) File "C:\Users\admin\AppData\Local\Programs\Python310\lib\site-packages\googletrans\gtoken.py", line 194, in do self._update() File "C:\Users\admin\AppData\Local\Programs\Python310\lib\site-packages\googletrans\gtoken.py", line 62, in _update code = self.RE_TKK.search(r.text).group(1).replace('var ', '') AttributeError: 'NoneType' object has no attribute 'group' PS E:\Coding\Python\AI -2\Pyttsx3 Hindi STT>
解决方案
该错误源于googletrans最新版本的Token获取机制失效,Google翻译接口更新后,旧版逻辑无法匹配新的页面结构。提供两种修复方案:
方案1:降级到稳定版googletrans
卸载当前版本并安装4.0.0-rc1版本,该版本适配了当时的Google翻译接口:
pip uninstall googletrans -y pip install googletrans==4.0.0-rc1
替换后重新运行代码即可正常翻译。
方案2:使用官方Google Cloud Translation API
若需要长期稳定的翻译服务,推荐使用Google官方提供的Translation API(需注册Google Cloud账号并启用对应服务,配置API密钥):
from google.cloud import translate_v2 as translate def TranslationHintoEng(Text): # 初始化翻译客户端,可通过环境变量或密钥文件配置认证 translate_client = translate.Client() # 指定源语言为印地语(hi),目标语言为英语(en) result = translate_client.translate(Text, target_language='en', source_language='hi') data = result['translatedText'] print(f"You : {data}") return data TranslationHintoEng("कैसा है जारविस मेरी आवाज आ रही है")
内容的提问来源于stack exchange,提问作者Aarav Anand
相关产品推荐
相关产品推荐

