ServiceUnavailable: 503 在尝试识别音频期间无法连接到所有地址

Posted

技术标签:

【中文标题】ServiceUnavailable: 503 在尝试识别音频期间无法连接到所有地址【英文标题】:ServiceUnavailable: 503 failed to connect to all addresses during attempt to recognize audio 【发布时间】:2020-01-29 18:22:52 【问题描述】:

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

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)

我在 Windows 10 下使用 Anaconda 4.7.12 for Python 3.7、google-cloud-speech v 1.2.0、google-auth v 1.6.3

我每次得到的错误是

_Rendezvous Traceback(最近一次通话最后) ~\AppData\Local\Continuum\anaconda3\lib\site-packages\google\api_core\grpc_helpers.py 在 error_remapped_callable(*args, **kwargs) 56 尝试: ---> 57 返回 callable_(*args, **kwargs) 58 除了 grpc.RpcError 作为 exc:

~\AppData\Local\Continuum\anaconda3\lib\site-packages\grpc_channel.py 在调用(自我、请求、超时、元数据、凭据、 wait_for_ready,压缩) 564 wait_for_ready,压缩) --> 565 返回_end_unary_response_blocking(状态,调用,假,无) 566

~\AppData\Local\Continuum\anaconda3\lib\site-packages\grpc_channel.py 在_end_unary_response_blocking(状态,调用,with_call,截止日期) 466 其他: --> 467 raise _Rendezvous(状态,无,无,截止日期) 468

_Rendezvous:<_rendezvous rpc statuscode.unavailable details="无法连接到所有地址" debug_error_string="" created subchannel>

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

ServiceUnavailable Traceback(最近调用 最后)在 ----> 1 个转录文件(文件名)

在 transcribe_file(speech_file) 20 21 # [开始语音_python_migration_sync_response] ---> 22 响应 = client.long_running_recognize(配置,音频) 23 # [结束 Speech_python_migration_sync_request] 24 # 每个结果都是针对音频的连续部分。遍历

~\AppData\Local\Continuum\anaconda3\lib\site-packages\google\cloud\speech_v1\gapic\speech_client.py 在 long_running_recognize(self, config, audio, retry, timeout, 元数据) 339) 340 操作 = self._inner_api_calls["long_running_recognize"]( --> 341 请求,重试=重试,超时=超时,元数据=元数据 342) 343 返回 google.api_core.operation.from_gapic(

~\AppData\Local\Continuum\anaconda3\lib\site-packages\google\api_core\gapic_v1\method.py 在 调用(self, *args, **kwargs) 141 kwargs [“元数据”] = 元数据 142 --> 143 返回 Wrapped_func(*args, **kwargs) 144 145

~\AppData\Local\Continuum\anaconda3\lib\site-packages\google\api_core\retry.py 在 retry_wrapped_func(*args, **kwargs) 第271章 第272章 --> 273 on_error=on_error, 274) 275

~\AppData\Local\Continuum\anaconda3\lib\site-packages\google\api_core\retry.py 在 retry_target(目标,谓词,sleep_generator,截止日期, on_error) 在 sleep_generator 中睡眠为 180: 181尝试: --> 182 返回目标() 183 184 # pylint: disable=broad-except

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

~\AppData\Local\Continuum\anaconda3\lib\site-packages\google\api_core\grpc_helpers.py 在 error_remapped_callable(*args, **kwargs) 57 返回 callable_(*args, **kwargs) 58 除了 grpc.RpcError 作为 exc: ---> 59 6.raise_from(exceptions.from_grpc_error(exc), exc) 60 61 返回error_remapped_callable

~\AppData\Local\Continuum\anaconda3\lib\site-packages\six.py 在 raise_from(value, from_value)

ServiceUnavailable: 503 连接所有地址失败

我该如何解决?

【问题讨论】:

您能否提供有关您的网络的任何详细信息,例如任何可能导致问题的代理?也许有防火墙?该错误表明某些网络连接可能被阻止。 您好,由于这个问题很久以前提出,我想知道您是否设法解决了这个问题。从那时起,API 使用的语法和模块发生了变化,您需要更新代码。在稍微更改它之后,我已经能够运行这段代码的 sn-p 并且我没有收到 ServiceUnavailable 异常。您能否告诉我您是否仍然遇到此问题? 我遇到了同样的问题,但我时不时地得到 503。很奇怪。关于 Toni 的回答:防火墙已经过调整,应该会导致问题。此外,我只对多个请求使用单个会话客户端实例。 【参考方案1】:

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

确保您的服务帐户密钥正确,您应该有这样的内容:

从 google.oauth2 导入 service_account

凭据 = service_account.凭据。 from_service_account_file('service_account_key.json')

speech = Speech.SpeechClient(credentials=credentials)

speech = speech_v1.SpeechClient(credentials=credentials)

使用范围:

凭证 = service_account.Credentials.from_service_account_file( 凭据_json, scopes=['https://www.googleapis.com/auth/cloud-platform'])

更多信息here。

在这个thread 中,通过对多个请求使用会话客户端对象的单个实例来解决。

这可能是 Dustin 所说的网络问题。更多信息在这里503 Service Unavailable

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

【讨论】:

以上是关于ServiceUnavailable: 503 在尝试识别音频期间无法连接到所有地址的主要内容,如果未能解决你的问题,请参考以下文章

谷歌云任务“创建任务”请求抛出 ServiceUnavailable:503

Cloud Datastore Emulator 在 Android 测试站中使用时返回 503 'Service Unavailable'

清漆 503 服务不可用

谷歌浏览器返回 503 服务不可用

vCenter Server Appliance 6.0:503 服务不可用

Error response Error code 502. Message如下。