Загрузите аудио из хранилища Google с помощью Google Colab (Python)

Я сохраняю свой аудиофайл в хранилище Google в формате wav, но когда я пытаюсь загрузить аудио с помощью Google Colab, мне это не удается.

ниже пример, который я использовал для загрузки аудио из хранилища Google.

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] Нет такого файла или каталога

мой вопрос: как загрузить аудио из хранилища Google / как читать аудио из хранилища Google


person que23    schedule 05.04.2021    source источник
comment
Отвечает ли это на ваш вопрос? как загрузить аудио из Google Storage/ как читать аудио из Google Storage   -  person Jon Nordby    schedule 06.04.2021
comment
я попробовал с предложением, но получение ошибки на gs не поддерживается ... есть ли где-нибудь, как сохранить звук в формате wav? потому что есть еще один процесс после чтения аудио.   -  person que23    schedule 07.04.2021


Ответы (1)


Librosa использует нативную реализацию Python io, которая не поддерживает файловую систему Google. Вы можете использовать реализацию 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)
person Crash0v3rrid3    schedule 05.04.2021
comment
спасибо за ответ и помощь, однако я получаю эту ошибку ModuleNotFoundError: нет модуля с именем 'tensorflow.gfile', который tensorflow подходит для tensorflow.gfile - person que23; 05.04.2021
comment
Запустите pip install tensorflow-io. Затем повторите попытку с обновленным оператором импорта. - person Crash0v3rrid3; 05.04.2021
comment
AttributeError: модуль «tensorflow.io.gfile» не имеет атрибута «Открыть», который уже можно импортировать, но столкнулся с другой проблемой, без атрибута «Открыть»... - person que23; 05.04.2021
comment
Попробуйте еще раз с вышеуказанным обновлением. - person Crash0v3rrid3; 05.04.2021
comment
извините, что продолжаю просить о помощи, я получаю эту новую ошибку, связанную с форматом файла, мое аудио в формате wav. и почему при выполнении кода с gf.GFile(filename) как fp: X, sample_rate = librosa.core.load(fp) fp не возвращает имя файла, он возвращает этот объект tensorflow.python.platform.gfile.GFile по адресу 0x7f884c60eed0 - person que23; 05.04.2021
comment
Попробуйте открыть файл как бинарный. - person Crash0v3rrid3; 05.04.2021
comment
мне нужно сохранить звук в формате wav, так как я хочу сделать анализ звука... в двоичном формате можно загрузить, но не могу обработать звук. - person que23; 07.04.2021
comment
мы можем преобразовать двоичный файл в формат wav? - person que23; 07.04.2021