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

时间:2019-09-30 12:43:49

标签: 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):
    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,google-cloud-speech v 1.2.0,google-auth v 1.6.3上将Anaconda 4.7.12用于Python 3.7

我每次遇到的错误是

  

_交会回溯(最近一次通话最后一次)   〜\ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ google \ api_core \ grpc_helpers.py   在error_remapped_callable(* args,** kwargs)中        56尝试:   ---> 57 return callable _(* args,** kwargs)        58,除了grpc.RpcError作为exc:

     

〜\ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ grpc_channel.py   在呼叫中(自身,请求,超时,元数据,凭据,   wait_for_ready,压缩)       (564)   -> 565 return _end_unary_response_blocking(state,call,False,None)       566

     

〜\ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ grpc_channel.py   在_end_unary_response_blocking中(状态,通话,with_call,截止日期)       第466章   -> 467加薪_Rendezvous(状态,无,无,截止日期)       468

     

_Rendezvous:<_的RPC终止,终止于:           状态= StatusCode.UNAVAILABLE           details =“无法连接到所有地址”           debug_error_string =“ {”创建“:” @ 1569838382.864000000“,”描述“:”无法选择   子频道“,”文件“:” src / core / ext / filters / client_channel / client_channel.cc“,”文件行“:3818,” referenced_errors“:[{”创建“:” @ 1569838382.863000000“,”描述“:”失败   连接到所有人   地址”,“文件”:“ src / core / ext / filters / client_channel / lb_policy / pick_first / pick_first.cc”,“ file_line”:395,“ grpc_status”:14}]}“   >

     

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

     

ServiceUnavailable追溯(最近的呼叫)   最后)   ----> 1个transcribe_file(文件名)

     transcribe_file(语音文件)中的

       20        21#[START speech_python_migration_sync_response]   ---> 22响应= client.long_running_recognize(配置,音频)        23#[END speech_python_migration_sync_request]        24#每个结果都是针对音频的连续部分。遍历

     

〜\ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ google \ cloud \ speech_v1 \ gapic \ speech_client.py   在long_running_recognize(自身,配置,音频,重试,超时,   元数据)       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   在通话中(自己,* args,** kwargs)       141 kwargs [“ metadata”] =元数据       142   -> 143返回wrapd_func(* args,** kwargs)       144       145

     

〜\ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ google \ api_core \ retry.py   在retry_wrapped_func(* args,** kwargs)中       271 sleep_generator,       第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返回target()       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 [“ timeout”] =下一个(超时)   -> 214 return func(* 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 return callable _(* args,** kwargs)        58除了grpc.RpcError作为exc:   ---> 59 six.raise_from(except.from_grpc_error(exc),排除)        60        61返回error_remapped_callable

     

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

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

我该如何解决?

1 个答案:

答案 0 :(得分:0)

由于凭据,这可能失败。让我们尝试一些事情:

  • 确保您的服务帐户密钥正确,您应该输入以下内容:

      

    从google.oauth2导入service_account

         

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

         

    语音=语音。SpeechClient(credentials = credentials)

    OR

      

    speech = speech_v1.SpeechClient(credentials = credentials)

  • 使用范围:

      

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

    更多信息here

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

  • 这可能是达斯汀说的网络问题。这里更多信息503 Service Unavailable

如果您能够解决此错误,请告诉我们。