[英]ServiceUnavailable: 503 failed to connect to all addresses during attempt to recognize audio
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我将 Anaconda 4.7.12 用于 Python 3.7 下 Windows 10,google-cloud-speech v 1.6-google v 1.6-0.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:
_Rendezvous Traceback (最近一次调用最后) ~\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 除了 grpc.RpcError 作为 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) 566
~\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 in _end_unary_response_blocking(state, call, with_call, deadline) 466 else: --> 467 raise _Rendezvous(state, None, None, deadline) 468
~\AppData\Local\Continuum\anaconda3\lib\site-packages\grpc_channel.py in _end_unary_response_blocking(状态,调用,with_call,截止日期)466 其他:-> 467 提高 _Rendezvous(状态,无,无,截止日期)468
_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}]}" >
_Rendezvous: <_Rendezvous 的 RPC 终止于:status = StatusCode.UNAVAILABLE details = "无法连接到所有地址" debug_error_string = "{"created":"@1569838382.864000000","description":"无法选择子通道"," file":"src/core/ext/filters/client_channel/client_channel.cc","file_line":3818,"referenced_errors":[{"created":"@1569838382.863000000","description":"连接所有失败地址","文件":"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)
----> 1 transcribe_file(file_name) 中的 ServiceUnavailable Traceback(最近一次调用最后一次)
in transcribe_file(speech_file) 20 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.
in transcribe_file(speech_file) 20 21 # [START speech_python_migration_sync_response] ---> 22 response = client.long_running_recognize(config, audio) 23 # [END speech_python_migration_sync_request] 24 # 每个结果都是音频的连续部分。 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\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 请求,重试=重试,超时=超时,元数据=元数据 342) 343 返回 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 142 --> 143 return wrapped_func(*args, **kwargs) 144 145
~\AppData\Local\Continuum\anaconda3\lib\site-packages\google\api_core\gapic_v1\method.py in call (self, *args, **kwargs) 141 kwargs["metadata"] = metadata 142 --> 143返回wrapped_func(*args,**kwargs)144 145
~\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 ) 275
~\AppData\Local\Continuum\anaconda3\lib\site-packages\google\api_core\retry.py 在 retry_wrapped_func(*args, **kwargs) 271 sleep_generator, 272 self._deadline, --> 273 on_error=on_error, 274 ) 275
~\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() 183 184 # pylint: disable=broad-except
~\AppData\Local\Continuum\anaconda3\lib\site-packages\google\api_core\retry.py 在 retry_target(目标,谓词,sleep_generator,deadline,on_error) 180 用于 sleep_generator 中的睡眠:181 尝试:-> 182 返回target() 183 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) 215 216 return func_with_timeout
~\AppData\Local\Continuum\anaconda3\lib\site-packages\google\api_core\timeout.py in func_with_timeout(*args, **kwargs) 212 """Wrapped function 添加超时。""" 213 kwargs[" timeout"] = next(timeouts) --> 214 return func(*args, **kwargs) 215 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) 60 61 return error_remapped_callable
~\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 grpc.RpcError 除外exc: ---> 59 6.raise_from(exceptions.from_grpc_error(exc), exc) 60 61 return error_remapped_callable
~\AppData\Local\Continuum\anaconda3\lib\site-packages\six.py in raise_from(value, from_value)
~\AppData\Local\Continuum\anaconda3\lib\site-packages\six.py in raise_from(value, from_value)
ServiceUnavailable: 503 failed to connect to all addresses ServiceUnavailable: 503 连接所有地址失败
How can I fix it?我该如何解决?
This could be failing due to the credentials.由于凭据,这可能会失败。 Let's try few things:
让我们尝试几件事:
Ensure that your service account key is correct, you should have something like this:确保您的服务帐户密钥正确,您应该具有以下内容:
from google.oauth2 import service_account
从 google.oauth2 导入 service_account
credentials = service_account.Credentials.
凭据 = service_account.Credentials。 from_service_account_file('service_account_key.json')
from_service_account_file('service_account_key.json')
speech = speech.SpeechClient(credentials=credentials)
语音=语音.SpeechClient(凭据=凭据)
OR或者
speech = speech_v1.SpeechClient(credentials=credentials)
语音=语音_v1.SpeechClient(凭据=凭据)
Use a Scope:使用 Scope:
credentials = service_account.Credentials.from_service_account_file( credentials_json, scopes=[' https://www.googleapis.com/auth/cloud-platform '])
凭据 = service_account.Credentials.from_service_account_file(凭据_json,范围= [' https://www.googleapis.com/auth/cloud-platform '])
In this thread was solve by using a single instance of a session client object for multiple requests.在此线程中,通过对多个请求使用 session 客户端 object 的单个实例来解决。
This could be either a network issue as Dustin said.正如达斯汀所说,这可能是网络问题。 More info here 503 Service Unavailable
更多信息在这里503 服务不可用
Please let us know if you manage to solve this error.如果您设法解决此错误,请告诉我们。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.