首页 > 解决方案 > 如何从谷歌存储中加载音频/如何从谷歌存储中读取音频

问题描述

我将音频文件以 wav 格式保存在 google 存储中,但是当我尝试使用 google 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)

但它显示了这个错误;

filename cannot be found.[Errno 2] No such file or directory

如果有人可以帮助我,我将非常感谢...

谢谢

标签: pythongoogle-cloud-storagegoogle-colaboratorylibrosa

解决方案


Librosa 不支持 GCS 协议,如源代码文档中所述

因此,要使用路径兼容的解决方案,您可以使用 gcsfs 库

from fs import open_fs
...
...
for blob in bucket.list_blobs(prefix='speech/Transcribe'):
    filename = 'gs://parli-2020/' + blob.name
    gcsfs = open_fs(filename)
    X, sample_rate = librosa.core.load(gcsfs)

推荐阅读