添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
Collectives™ on Stack Overflow

Find centralized, trusted content and collaborate around the technologies you use most.

Learn more about Collectives

Teams

Q&A for work

Connect and share knowledge within a single location that is structured and easy to search.

Learn more about Teams

ServiceUnavailable: 503 failed to connect to all addresses during attempt to recognize audio

Ask Question

I'm trying to run a following code to recognize an audio file. The code is just a compilation from different official examples. But it doesn't work.

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)

I use Anaconda 4.7.12 for Python 3.7 under Windows 10, google-cloud-speech v 1.2.0, google-auth v 1.6.3

The error I get every time is

_Rendezvous Traceback (most recent call last) ~\AppData\Local\Continuum\anaconda3\lib\site-packages\google\api_core\grpc_helpers.py in error_remapped_callable(*args, **kwargs) 56 try: ---> 57 return callable_(*args, **kwargs) 58 except grpc.RpcError as exc:

~\AppData\Local\Continuum\anaconda3\lib\site-packages\grpc_channel.py in call(self, request, timeout, metadata, credentials, wait_for_ready, compression) 564 wait_for_ready, compression) --> 565 return _end_unary_response_blocking(state, call, False, None)

~\AppData\Local\Continuum\anaconda3\lib\site-packages\grpc_channel.py in _end_unary_response_blocking(state, call, with_call, deadline) 466 else: --> 467 raise _Rendezvous(state, None, None, deadline)

_Rendezvous: <_Rendezvous of RPC that terminated with: status = StatusCode.UNAVAILABLE details = "failed to connect to all addresses" debug_error_string = "{"created":"@1569838382.864000000","description":"Failed to pick subchannel","file":"src/core/ext/filters/client_channel/client_channel.cc","file_line":3818,"referenced_errors":[{"created":"@1569838382.863000000","description":"failed to connect to all addresses","file":"src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc","file_line":395,"grpc_status":14}]}"

The above exception was the direct cause of the following exception:

ServiceUnavailable Traceback (most recent call last) in ----> 1 transcribe_file(file_name)

in transcribe_file(speech_file) 21 # [START speech_python_migration_sync_response] ---> 22 response = client.long_running_recognize(config, audio) 23 # [END speech_python_migration_sync_request] 24 # Each result is for a consecutive portion of the audio. Iterate through

~\AppData\Local\Continuum\anaconda3\lib\site-packages\google\cloud\speech_v1\gapic\speech_client.py in long_running_recognize(self, config, audio, retry, timeout, metadata) 339 ) 340 operation = self._inner_api_calls["long_running_recognize"]( --> 341 request, retry=retry, timeout=timeout, metadata=metadata 342 ) 343 return google.api_core.operation.from_gapic(

~\AppData\Local\Continuum\anaconda3\lib\site-packages\google\api_core\gapic_v1\method.py in call(self, *args, **kwargs) 141 kwargs["metadata"] = metadata --> 143 return wrapped_func(*args, **kwargs)

~\AppData\Local\Continuum\anaconda3\lib\site-packages\google\api_core\retry.py in retry_wrapped_func(*args, **kwargs) 271 sleep_generator, 272 self._deadline, --> 273 on_error=on_error, 274 )

~\AppData\Local\Continuum\anaconda3\lib\site-packages\google\api_core\retry.py in retry_target(target, predicate, sleep_generator, deadline, on_error) 180 for sleep in sleep_generator: 181 try: --> 182 return target() 184 # pylint: disable=broad-except

~\AppData\Local\Continuum\anaconda3\lib\site-packages\google\api_core\timeout.py in func_with_timeout(*args, **kwargs) 212 """Wrapped function that adds timeout.""" 213 kwargs["timeout"] = next(timeouts) --> 214 return func(*args, **kwargs) 216 return func_with_timeout

~\AppData\Local\Continuum\anaconda3\lib\site-packages\google\api_core\grpc_helpers.py in error_remapped_callable(*args, **kwargs) 57 return callable_(*args, **kwargs) 58 except grpc.RpcError as exc: ---> 59 six.raise_from(exceptions.from_grpc_error(exc), exc) 61 return error_remapped_callable

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

ServiceUnavailable: 503 failed to connect to all addresses

How can I fix it?

Could you give any details about your networking, e.g. any proxies that might cause problems? Maybe there is a firewall? The error indicates that some network connections might be blocked. – Dustin Ingram Sep 30, 2019 at 20:48 Hello, since this question was opened a long time ago, I was wondering if you managed to solve the issue. The syntax and the modules used by the API have changed since then and you would need to update your code. I have been able to run this snippet of code after changing it a little bit and I'm not getting a ServiceUnavailable exception. Could you tell me if you are still experiencing this issue? – rodvictor Feb 4, 2021 at 13:46 I've got the same issue but I only get the 503 every now and then. It's weired. Concerning Toni's answer: The firewall has been adjusted such that it should cause the issue. Also I only use a single instance of session client for multiple requests. – the_economist Apr 1, 2021 at 11:02

from google.oauth2 import service_account

credentials = service_account.Credentials. from_service_account_file('service_account_key.json')

speech = speech.SpeechClient(credentials=credentials)

speech = speech_v1.SpeechClient(credentials=credentials)

  • Use a Scope:

    credentials = service_account.Credentials.from_service_account_file( credentials_json, scopes=['https://www.googleapis.com/auth/cloud-platform'])

    More info here.

  • In this thread was solve by using a single instance of a session client object for multiple requests.

  • This could be either a network issue as Dustin said. More info here 503 Service Unavailable

  • Please let us know if you manage to solve this error.

    Thanks for contributing an answer to Stack Overflow!

    • Please be sure to answer the question. Provide details and share your research!

    But avoid

    • Asking for help, clarification, or responding to other answers.
    • Making statements based on opinion; back them up with references or personal experience.

    To learn more, see our tips on writing great answers.