我使用谷歌语音文本API从音频中获取字幕,但是当音频太长(通常超过60分钟)时,它将失败太多次重试。它说:google.api_core.exceptions.GoogleAPICallError:无重试太多,放弃。
有人可以帮我吗?
我尝试了很多次,当音频文件少于60分钟时,就可以了。
client = speech.SpeechClient()
# Loads audio into memory.
audio = types.RecognitionAudio(uri=gcs_uri)
config = types.RecognitionConfig(
encoding=enums.RecognitionConfig.AudioEncoding.OGG_OPUS,
sample_rate_hertz=48000,
language_code='en-US',
enable_word_time_offsets=True,
enable_automatic_punctuation=True)
# Detects speech in the audio file
operation = client.long_running_recognize(config, audio)
print('Waiting for operation to complete...')
# Get the feedback from Google Cloud API
operation.add_done_callback(callback)
time.sleep(30)
#metadata = operation.metadata
# Every 30 seconds to get back one response
percentile(operation, 30)
response = operation.result(timeout=None)
答案 0 :(得分:0)
这是operation.result()调用引发的异常。 operation.result()调用的内部计数器溢出。 尝试在调用operation.result()之前先轮询operation.done()。 operation.done()是非阻塞调用。 希望在将来的google.cloud.speech库版本中可以解决此问题。