Python ServiceUnavailable:在尝试识别音频时,503未能连接到所有地址

Python ServiceUnavailable:在尝试识别音频时,503未能连接到所有地址,python,google-cloud-platform,google-speech-api,Python,Google Cloud Platform,Google Speech Api,我正在尝试运行以下代码来识别音频文件。该代码只是从不同的官方示例编译而来。但它不起作用 import os from google.cloud import speech from google.cloud.speech import enums from google.cloud.speech import types from google.oauth2 import service_account import io def transcribe_file(speech_file):

我正在尝试运行以下代码来识别音频文件。该代码只是从不同的官方示例编译而来。但它不起作用

import os
from google.cloud import speech
from google.cloud.speech import enums
from google.cloud.speech import types
from google.oauth2 import service_account
import io

def transcribe_file(speech_file):
    client = speech.SpeechClient(credentials=credentials)

    with io.open(speech_file, 'rb') as audio_file:
        content = audio_file.read()

    audio = types.RecognitionAudio(content=content)
    config = types.RecognitionConfig(
        encoding=enums.RecognitionConfig.AudioEncoding.LINEAR16,
        sample_rate_hertz=16000,
        language_code='ru-RU')

    response = client.long_running_recognize(config, audio)
    for result in response.results:
        print(u'Transcript: {}'.format(result.alternatives[0].transcript))

audio_folder_path = 'data_wav'
all_audios = os.listdir(audio_folder_path)

file_name = os.path.join(audio_folder_path, all_audios[0])

credentials = service_account.Credentials.from_service_account_file("google_aut.json")

transcribe_file(file_name)
我使用Anaconda4.7.12作为Windows10下的Python3.7、GoogleCloudSpeechv1.2.0、GoogleAuthv1.6.3

我每次遇到的错误是

_会合追踪(最近一次呼叫最后一次) ~\AppData\Local\Continuum\anaconda3\lib\site packages\google\api\u core\grpc\u helpers.py 错误时\u重新映射\u可调用(*args,**kwargs) 56尝试: --->57返回可调用函数(*args,**kwargs) 58除grpc.RpcError作为exc外:

~\AppData\Local\Continuum\anaconda3\lib\site packages\grpc\u channel.py 在调用中(self、请求、超时、元数据、凭据、, 等待\u,等待\u准备就绪,压缩) 564等待(准备就绪,压缩) -->565返回\u结束\u一元\u响应\u阻塞(状态、调用、错误、无) 566

~\AppData\Local\Continuum\anaconda3\lib\site packages\grpc\u channel.py 一元响应阻塞(状态、呼叫、带呼叫、截止日期) 466其他: -->467上升集合点(状态,无,无,截止日期) 468

_会合地点:

上述异常是以下异常的直接原因:

ServiceUnavailable回溯(最近的呼叫 最后)在 ---->1转录文件(文件名)

在转录文件(语音文件)中 20 21#[启动语音(python)迁移(同步)响应] --->22响应=客户端。长时间运行\u识别(配置,音频) 23#[结束讲话_python _迁移_同步_请求] 24#每个结果用于音频的连续部分。反复浏览

~\AppData\Local\Continuum\anaconda3\lib\site packages\google\cloud\speech\u v1\gapic\speech\u client.py 在长时间运行中,识别(自我、配置、音频、重试、超时、, 元数据) 339 ) 340 operation=self.\u internal\u api\u调用[“long\u running\u recognize”]( -->341请求,重试=重试,超时=超时,元数据=元数据 342 ) 343返回google.api_core.operation.from_gapic(

~\AppData\Local\Continuum\anaconda3\lib\site packages\google\api\u core\gapic\u v1\method.py 在通话中(self,*args,**kwargs) 141 kwargs[“元数据”]=元数据 142 -->143返回函数(*args,**kwargs) 144 145

~\AppData\Local\Continuum\anaconda3\lib\site packages\google\api\u core\retry.py 在重试函数中(*args,**kwargs) 271睡眠发生器, 272赛尔夫大学截止日期, -->273 on_错误=on_错误, 274 ) 275

~\AppData\Local\Continuum\anaconda3\lib\site packages\google\api\u core\retry.py 在重试\u目标(目标、谓词、睡眠\u生成器、截止日期、, 关于(U错误) 180用于睡眠发生器中的睡眠: 181试试看: -->182返回目标() 183 184#pylint:disable=broad except

~\AppData\Local\Continuum\anaconda3\lib\site packages\google\api\u core\timeout.py 在具有超时的函数中(*args,**kwargs) 212“添加超时的包装函数” 213 kwargs[“超时”]=下一个(超时) -->214返回函数(*args,**kwargs) 215 216带超时的返回函数

~\AppData\Local\Continuum\anaconda3\lib\site packages\google\api\u core\grpc\u helpers.py 错误时\u重新映射\u可调用(*args,**kwargs) 57返回可调用函数(*args,**kwargs) 58除grpc.RpcError作为exc外: --->59六、从(例外情况。从grpc错误(exc),exc) 60 61返回错误\u重新映射\u可调用

中的~\AppData\Local\Continuum\anaconda3\lib\site packages\six.py 从(值,从值)提高

ServiceUnavailable:503无法连接到所有地址


如何修复它?

这可能由于凭据问题而失败。让我们尝试几件事:

  • 确保您的服务帐户密钥正确无误,您应该具有以下内容:

    从google.oauth2导入服务_帐户

    凭据=服务\帐户。凭据。来自服务帐户文件('service\u account\u key.json')

    SpeechClient(凭证=凭证)

    SpeechClient(凭证=凭证)

  • 使用范围:

    凭据=服务\u帐户.credentials.from\u服务\u帐户\u文件( 证书(u json),, 作用域=[''])

    更多信息

  • 在本例中,通过使用会话客户机对象的单个实例来解决多个请求

  • 正如达斯汀所说,这可能是一个网络问题。更多信息请点击这里


如果您设法解决了此错误,请告知我们。

您能否提供有关您的网络的任何详细信息,例如可能导致问题的代理?也许有防火墙?此错误表明某些网络连接可能被阻止。您好,由于此问题很久以前就被打开了,我想知道您是否解决了此问题。此后,API使用的语法和模块发生了变化,您需要更新代码。我已经能够在稍微修改后运行这段代码,并且没有出现ServiceUnavailable异常。你能告诉我你是否仍然遇到这个问题吗?我有同样的问题,但我只是偶尔得到503。很奇怪。关于托尼的回答:防火墙已经调整,应该会引起问题。此外,对于多个请求,我只使用会话客户端的一个实例。