Ошибка облачного асинхронного распознавания речи с Python на терминале

Я потратил около 3 дней на эту же проблему. По сути, я пытаюсь использовать api облачной речи Google, чтобы сделать грубую транскрипцию моего аудиофайла, расположенного по адресу gs: //architecture-transcript-1/architecture.flac.Файл ранее был m4a, но я преобразовал его во flac файл с частотой дискретизации 44100 Гц и длится 1 час 18 минут.

Я запускаю Python 3.5 и использую командную строку. Учебник, который я использовал, можно найти здесь: https://github.com/GoogleCloudPlatform/python-docs-samples/blob/master/speech/cloud-client/README.rst

Я выполнил все шаги в руководстве, включая установку pip и vitual env, установку зависимостей, а затем просто использование созданной команды «transcribe_async.py».

В командной строке это выглядит так:

:\> virtualenv env
:\> virtualenv env/bin/activate
:\> cd C:\python-docs-samples-master\speech\cloud-client
C:\python-docs-samples-master\speech\cloud-client> pip install -r requirements.txt
C:\python-docs-samples-master\speech\cloud-client> python transcribe_async.py gs://architecture-transcript-1/architecture.flac 

Перед тем как сделать это, я зашел в файл transcribe_async.py, чтобы убедиться, что моя кодировка и формат файла совпадают.
После запуска он говорит, что ожидает завершения операции ... а затем получаю эту последнюю ошибку:

File "transcribe_async.py", line 96, in <module>
transcribe_gcs(args.path)
File "transcribe_async.py", line 79, in transcribe_gcs
response = operation.result(timeout=90)
File "C:\Users\George\Anaconda3\lib\site-packages\google\gax\__init__.py", 
line 595, in result
if not self._poll(timeout).HasField('response'):
File "C:\Users\George\Anaconda3\lib\site-packages\google\gax\__init__.py", 
line 705, in _poll
return retryable_done_check()
File "C:\Users\George\Anaconda3\lib\site-packages\google\gax\retry.py", line 
143, in inner
raise exc
google.gax.errors.RetryError: RetryError(Retry total timeout exceeded with 
exception, caused by Deadline Exceeded)

Основная ошибка выглядит так: «google.gax.errors.RetryError: RetryError (Превышен общий тайм-аут повтора с исключением, вызванным превышением крайнего срока)»

И я получил это, когда пробовал свой аудиофайл с кодом google python.

Я учусь использовать Python, сейчас я 1 год, так что это может быть ошибка новичка, но помощь будет очень благодарна, так как я уже некоторое время борюсь с этим!

P.S В настоящее время мой файл является общедоступным, поэтому, если он поможет опробовать его напрямую, он все еще доступен.

Спасибо.


person Jonesn11    schedule 27.10.2017    source источник


Ответы (2)


Я не знаю длительности аудиофайла, который вы используете для транскрипции. Я бы посоветовал вам сейчас использовать большое число в строке 79 в "transcribe_async.py"

response = operation.result(timeout=1000)

и посмотрите, поможет ли это.

person vinaymk    schedule 28.10.2017
comment
Да, я установил его на 4200 и наконец смог заставить его работать. Хотелось бы, чтобы они опубликовали правила тайм-аута, основанные на размере файла или продолжительности, но, похоже, это помогло. Спасибо. - person Jonesn11; 28.10.2017

Вы можете рассмотреть возможность использования Cloud SDK от Google, для этой цели существует команда, которая в настоящее время находится в стадии бета-тестирования.

gcloud beta ml speech recognize gs://architecture-transcript-1/architecture.flac \
  --sample-rate 44100 --language en-US --encoding=FLAC
person cherba    schedule 28.10.2017