首页 > 解决方案 > 使用 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] 没有这样的文件或目录

我的问题:如何从谷歌存储中加载音频/如何从谷歌存储中读取音频

标签: pythonlibrosaaudio-analysis

解决方案


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)

推荐阅读