Загрузить аудио из хранилища 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

У меня есть попытка с предложением, но ошибка gs не поддерживается ... есть ли где-нибудь, как сохранить звук в формате wav? потому что после прочтения аудио есть еще один процесс.

que23 07.04.2021 06:45
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
2
60
1

Ответы 1

Librosa использует встроенную реализацию python io, которая не поддерживает файловую систему Google. Вы можете использовать реализацию 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)

спасибо за ваш ответ и помощь, однако я получаю эту ошибку ModuleNotFoundError: Нет модуля с именем 'tensorflow.gfile', который тензорный поток подходит для tensorflow.gfile

que23 05.04.2021 06:52

Запустите pip install tensorflow-io. Затем попробуйте еще раз с обновленным оператором импорта.

Crash0v3rrid3 05.04.2021 06:57

AttributeError: модуль 'tensorflow.io.gfile' не имеет атрибута 'Open', который уже можно импортировать, но сталкивается с другой проблемой, без атрибута 'Open' ...

que23 05.04.2021 09:44

Повторите попытку с указанным выше обновлением.

Crash0v3rrid3 05.04.2021 10:08

извините, что продолжаю просить о помощи, я получаю эту новую ошибку, связанную с форматом файла, моим аудио в формате wav. RuntimeError: Ошибка при открытии объекта <tensorflow.python.platform.gfile.GFile в 0x7f884c60eed0>: файл содержит данные в неизвестном формате. и почему при выполнении кода с gf.GFile (filename) как fp: X, sample_rate = librosa.core.load (fp) fp не возвращает имя файла, а возвращает это "tensorflow.python.platform.gfile.GFile объект по адресу 0x7f884c60eed0 "

que23 05.04.2021 11:37

Попробуйте открыть файл как двоичный.

Crash0v3rrid3 05.04.2021 12:03

Мне нужно поддерживать звук в формате wav, так как я хочу провести анализ звука ... в двоичном формате может загружаться, но не может обрабатывать звук.

que23 07.04.2021 06:51

можем ли мы преобразовать двоичный файл в формат wav?

que23 07.04.2021 07:50

Другие вопросы по теме