Как возобновить тайм-аут Google Cloud Speech API (longRunningRecognize) для облачных функций - PullRequest
1 голос
/ 23 марта 2019

Я пытаюсь создать приложение для расшифровки некоторых файлов wav с использованием облачных функций и облачного речевого API. В официальном документе показано, как это сделать (https://cloud.google.com/speech-to-text/docs/async-recognize). Однако облачные функции имеют ограничение по времени обработки (до 540 секунд), а некоторые длинные файлы WAV могут превышать время ожидания API транскрипции. Я ищу возобновить путь.

В официальном документе указан следующий код. (Я использую узел для облачных функций)

// Detects speech in the audio file. This creates a recognition job that you
// can wait for now, or get its result later.
const [operation] = await client.longRunningRecognize(request);
// Get a Promise representation of the final result of the job
const [response] = await operation.promise();

client.longRunningRecognize () отправляет запрос и возвращает информацию о запросе в течение нескольких секунд, а operation.promise () ожидает завершения API транскрипции. Однако для больших файлов может потребоваться более 540 секунд, и процесс может быть остановлен в этой строке. Так или иначе я хочу возобновить обработку, используя объект 'операция' в другом процессе. Я попытался сериализовать объект 'operation' в файл и затем загрузить его, но он не может включать функции и operation.promise () теряется. Как я могу решить эту проблему?

1 Ответ

1 голос
/ 23 марта 2019

Если ваша работа займет более 540 секунд, облачные функции на самом деле не лучшее решение для этой проблемы. Вместо этого вы можете рассмотреть возможность использования облачных функций в качестве просто механизма запуска, а затем перегрузить работу в App Engine или Compute Engine с помощью pubsub для отправки ему соответствующих данных (например, местоположения файла в облачном хранилище и других метаданных, необходимых для сделать запрос на распознавание речи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...