如何从Google Cloud Storage Bucket中获取字节对象

问题描述

我在Github上的问题 https://github.com/googleapis/python-speech/issues/52 已经活跃了9天,只有两个尝试回答的人都失败了,但是现在,我认为有人即使不了解Google语音Api的工作方式,也可以理解Google Cloud Buckets的工作方式。为了将长音频文件转换为文本,必须先将它们上传到云中。我使用的语法现在似乎已损坏,并且以下语法可能会起作用,但Google不会解释如何与上载到Cloud的文件配合使用此代码。因此,在下面发布的以下代码中:

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

content对象必须位于云上,并且必须是字节对象。假设对象的地址为:gs:// audio_files / cool_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内容将被解压缩);并且如果它具有Content-Type标头,则客户端应用程序或库可能会以不同的方式对待信息。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...