我正在使用SpeechRecognition
库。
import speech_recognition as sr
AUDIO_FILE = 'test_audio.wav'
with open("api-key.json") as f:
GOOGLE_CLOUD_SPEECH_CREDENTIALS = f.read()
r = sr.Recognizer()
with sr.AudioFile(AUDIO_FILE) as source:
audio = r.record(source)
print('Starting recognition...')
print(r.recognize_google_cloud(audio, credentials_json=GOOGLE_CLOUD_SPEECH_CREDENTIALS))
print('Completed')
运行上述代码时,会发生错误 -
ssl.SSLError:[SSL:CERTIFICATE_VERIFY_FAILED]证书验证 失败了(_ssl.c:777)
音频文件和api-key文件已就位。
答案 0 :(得分:1)
我通过直接在python中编辑Google语音客户端库的代码来设法通过代理进行消费。具体来说,我在以下位置编辑了文件(您的情况可能有所不同):
lib/python3.6/site-packages/google/auth/transport/requests.py
Request类,方法 call ,有一行像这样:
response = self.session.request(method, url, data=body, headers=headers, timeout=timeout)
我向该调用添加了参数verify = False,它将仅忽略SSL证书验证。但是,不建议这样做,因为这会引起安全问题。如果代理中恰好有CA的证书,则将cert = / False替换为cert =“ / local / address / to / ca / cert”。这是我的工作方式:
response = self.session.request(method, url, data=body, headers=headers, timeout=timeout,verify=False,**kwargs)