ServiceUnavailable: 503 не удалось подключиться ко всем адресам при попытке распознать аудио - PullRequest
0 голосов
/ 30 сентября 2019

Я пытаюсь запустить следующий код для распознавания аудиофайла. Код - это просто компиляция из разных официальных примеров. Но это не работает.

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)

Я использую Anaconda 4.7.12 для Python 3.7 под Windows 10, 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 inerror_remapped_callable (* args, ** kwargs) 56 try: ---> 57 return callable _ (* args, ** kwargs) 58 за исключением grpc.RpcError as exc:

~ \ AppData \ Local \ Continuum \ anaconda3\ lib \ site-packages \ grpc_channel.py в вызов (self, запрос, тайм-аут, метаданные, учетные данные, wait_for_ready, сжатие) 564 wait_for_ready, сжатие) -> 565 return _end_unary_response_blocking (состояние, вызов, False, Нет) 566

~ \ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ grpc_channel.py в _end_unary_response_blocking (состояние, вызов, with_call, крайний срок) 466 остальное: -> 467 поднять _Rendezvous (состояние, Нет, Нет, крайний срок) 468

_Rendezvous: <_Rendezvoнам RPC, который заканчивается: status = StatusCode.UNAVAILABLE details = "не удалось подключиться ко всем адресам" debug_error_string = "{" созданный ":" @ 1569838382.864000000 "," description ":" не удалось выбрать подканал "," файл ":"src / core / ext / filters / client_channel / client_channel.cc", "file_line": 3818, "referenced_errors": [{"созданный": "@ 1569838382.863000000", "описание": "не удалось подключиться ко всем адресам","file": "src / core / ext / filters / client_channel / lb_policy / pick_first / pick_first.cc", "file_line": 395, "grpc_status": 14}]} ">

Вышеуказанное исключение былопрямая причина следующего исключения:

ServiceUnavailable Traceback (последний последний вызов) в ----> 1 transcribe_file (имя_файла)

в 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 # Каждый результат предназначен для последовательной части аудио. Выполните итерацию по

~ \ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ google \ cloud \ speech_v1 \ gapic \ speech_client.py в long_running_recognize (self, config, audio, retry, timeout, metadata)339) 340 операция = self._inner_api_calls ["long_running_recognize"] (-> 341 запрос, повтор = повтор, тайм-аут = тайм-аут, метаданные = метаданные 342) 343 return google.api_core.operation.from_gapic (

~)\ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ google \ api_core \ gapic_v1 \ method.py в call (self, * args, ** kwargs) 141 кваргс ["метаданные"] =метаданные 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 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_target (цель, предикат, sleep_generator, дедлайн, on_error) 180 для сна в sleep_generator: 181 try: -> 182 return target () 183 184 # pylint: disable = wide-кроме

~ \ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ google\ api_core \ timeout.py в func_with_timeout (* args, ** kwargs)212 "" "Обернутая функция, которая добавляет тайм-аут." "" 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 в error_remapped_callable (* args, ** kwargs) 57 возвращают вызываемое _ (* args, ** kwargs) 58, за исключением grpc.RpcError в качестве exc: ---> 59 six.raise_from (exceptions.from_grpc_error (exc), exc) 60 61 return error_remapped_callable

~ \ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ six.py в Повышении_от(значение, from_value)

ServiceUnavailable: 503 не удалось подключиться ко всем адресам

Как это исправить?

1 Ответ

0 голосов
/ 04 октября 2019

Это может быть сбой из-за учетных данных. Давайте попробуем несколько вещей:

  • Убедитесь, что ваш ключ учетной записи службы правильный, у вас должно быть что-то вроде этого:

    из google.oauth2 import service_account

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

    speech = speech.SpeechClient (учетные данные = учетные данные)

    ИЛИ

    speech = speech_v1.SpeechClient (учетные данные= учетные данные)

  • Использовать область действия:

    учетные данные = service_account.Credentials.from_service_account_file (credentials_json, scopes = ['https://www.googleapis.com/auth/cloud-platform'])

    Подробнее здесь .

  • В этом поток был решен с использованием одного экземпляра объекта сеанса клиентадля нескольких запросов.

  • Это может быть проблема с сетью, как сказал Дастин. Подробнее здесь 503 Сервис недоступен

Пожалуйста, дайте нам знать, если вам удастся решить эту ошибку.

...