Cloud Functions (python) を使用して、このチュートリアルで Speech-to-Text API を実装しようとしています。
ここに実装されているのは、非同期で長時間実行される関数です。私の目的は、Cloud Function でサイトから音声をダウンロードし、それを S3 に書き込んでから、その音声の S3 ロケーションで Speech-to-Text API クライアント関数を呼び出して、トランスサイブされたテキストを返すようにすることです。チュートリアルの短縮コードは次のとおりです。
from google.cloud import speech_v1 as speech
client = speech.SpeechClient()
# storage_uri = 'gs://cloud-samples-data/speech/brooklyn_bridge.raw'
# some configuration
audio = {"uri": storage_uri}
operation = client.long_running_recognize(config, audio)
ただし、オーディオが長すぎる場合、Cloud Function の最大タイムアウトにも収まらず、ログにタイムアウトが発生します。おそらく Speech-to-Text API によって終了されましたclient.long_running_recognize
が、Cloud Function はそれを待つことができません。この場合、どうすればよいですか?Python でライブラリを使用することasyncio
は良い解決策ですか?