【问题标题】:Audio encoding, sample rate, and re-encoding in Google CloudGoogle Cloud 中的音频编码、采样率和重新编码
【发布时间】:2018-12-18 15:30:18
【问题描述】:
是否可以在无需下载的情况下查找存储在 Google Cloud 中的文件的音频元数据?在构建 Google Speech-to-Text API 服务时,您将其传递给 gs://bucket/file.flac,我知道用于本地存储文件元数据查找的 sox 和 ffmpeg bash 和 Python 命令,但我似乎无法弄清楚在 Google Cloud Storage 文件中查找音频文件元数据的方法。
另外,如果我有 gs://bucket/audio.wav,我可以使用 sox/py-sox 重新编码并将新的 audio.flac 直接写入 gs://bucket/audio.flac 吗?还是我必须下载 audio.wav 才能重新编码?
任何想法或方向表示赞赏。
【问题讨论】:
标签:
encoding
gcloud
google-speech-api
sox
【解决方案1】:
不,无法直接在谷歌云存储中访问您想要的元数据。使用命令gsutil ls -L gs://[bucket_name]/[file_name] 将提示存储桶内该文件的元数据。你可以modify these metadata,但不是你所指的那些。您需要下载文件,重新编码并再次上传。
您无法在 Cloud Storage 中执行重新编码操作,您需要下载文件并按照您想要的方式对其进行处理,然后再将其再次上传到您的存储桶。但是,如果它适合您,这里有一个解决方法:
上传文件时触发的创建云函数。然后,检索您刚刚上传的文件并对其执行任何您想要的操作(例如重新编码为.flac)。之后,再次上传(注意!如果您给新文件提供相同的名称和扩展名,它将覆盖存储桶中的旧文件)。
关于您的库,Cloud Functions 使用 Python 3.7,暂时不支持 py-sox 库,因此您需要另找一个。