python - 使用 google colab (Python) 从 google 存储加载音频
问题描述
我将音频文件以 wav 格式保存在谷歌存储中,但是当我尝试使用谷歌 colab 加载音频时,我无法做到。
在我用来从谷歌存储加载音频的示例下方。
import numpy as np
import IPython.display as ipd
import librosa
import soundfile as sf
import io
from google.cloud import storage
import os
from google.colab import auth
auth.authenticate_user()
os.environ["GCLOUD_PROJECT"] = "fundpro" #project_id
BUCKET = 'parli-2020' #bucket_name
gcs = storage.Client()
bucket = gcs.get_bucket(BUCKET)
import speech_recognition as sr
for blob in bucket.list_blobs(prefix='speech/Transcribe'):
filename = 'gs://parli-2020/' + blob.name
X, sample_rate = librosa.core.load(filename)
但错误:找不到文件名。[Errno 2] 没有这样的文件或目录
我的问题:如何从谷歌存储中加载音频/如何从谷歌存储中读取音频
解决方案
Librosa 使用不支持 Google 文件系统的原生 python io 实现。您可以使用 tensorflow 的 GFile 实现。
像这样的东西,
import numpy as np
import IPython.display as ipd
import librosa
import soundfile as sf
import io
from google.cloud import storage
import os
import tensorflow.io.gfile as gf
from google.colab import auth
auth.authenticate_user()
os.environ["GCLOUD_PROJECT"] = "fundpro" #project_id
BUCKET = 'parli-2020' #bucket_name
gcs = storage.Client()
bucket = gcs.get_bucket(BUCKET)
import speech_recognition as sr
for blob in bucket.list_blobs(prefix='speech/Transcribe'):
filename = 'gs://parli-2020/' + blob.name
with gf.GFile(filename, 'rb') as fp:
X, sample_rate = librosa.core.load(fp)
推荐阅读
- excel - 如何解决空值表达式错误
- pyspark - 获取“StructField”对象在 BinaryClassificationMetrics 上没有属性“_get_object_id”
- botframework - 在 bot Framework v4 中使用尝试计数来结束整个对话/提示
- kubernetes - Kubernetes pod 可以关联多个 IP 地址吗?
- authentication - 视觉密度未定义?
- javascript - 如何在javascript中实现“嵌套”
- scala - 在函数式 Scala 中,将一种参数化类型转换为另一种的好方法是什么?
- c++ - C++:如何防止私有名称污染派生类型?
- c++ - 无法在 Windows 中安装 c++ 的 boost 库
- flutter - package:analyzer 当参数类型为 Function type 时,type.element 为 'null'