如何从谷歌云存储桶中获取字节对象



我在Github的问题https://github.com/googleapis/python-speech/issues/52已经活跃了9天,仅有的两个试图回答的人都失败了,但现在我认为,如果有人了解谷歌云Buckets的工作原理,即使他们不了解谷歌的Speech Api是如何工作的,也有可能回答。为了将长音频文件转换为文本,必须首先将其上传到云端。我使用的一些语法现在似乎被破坏了,下面的语法可能会起作用,只是谷歌没有解释如何将这些代码与上传到云端的文件配合使用。因此,在下面发布的代码中:

https://cloud.google.com/speech-to-text/docs/async-recognize#speech_transcribe_async-python

content对象必须位于云上,并且它需要是一个字节对象。假设对象的地址是:gs://audio_files/coll_audio

如果内容对象引用字节对象,我会使用什么语法?

from google.cloud import speech
from google.cloud.speech import enums
from google.cloud.speech import types
client = speech.SpeechClient()
audio = types.RecognitionAudio(content=content)
config = types.RecognitionConfig(
encoding=enums.RecognitionConfig.AudioEncoding.LINEAR16,
sample_rate_hertz=16000,
language_code='en-US')
operation = client.long_running_recognize(config, audio)
print('Waiting for operation to complete...')
response = operation.result(timeout=90)

我之前的回答并没有真正解决您的问题。让我再试一次:

请尝试这个:

audio = types.RecognitionAudio(content=bytes(content, 'utf-8'))

GCS将对象存储为字节序列。如果您的对象有一个Content Encoding标头,该标头可能导致在下载时对内容进行转换(例如,如果客户端不提供Accept Encoding:gzip标头,则gzip内容将被解压缩(;并且如果它具有内容类型报头,则客户端应用程序或库可以不同地对待该信息。

最新更新