如何从Google Cloud Storage存储桶中读取音频文件并在Datalab笔记本中使用IPD播放

时间:2018-07-19 01:47:08

标签: python google-cloud-platform google-cloud-storage google-cloud-datalab librosa

我想在datalab笔记本中播放声音文件,该文件是从Google云存储桶中读取的。该怎么做?

1 个答案:

答案 0 :(得分:2)

import numpy as np
import IPython.display as ipd
import librosa
import soundfile as sf
import io
from google.cloud import storage

BUCKET = 'some-bucket'

# Create a Cloud Storage client.
gcs = storage.Client()

# Get the bucket that the file will be uploaded to.
bucket = gcs.get_bucket(BUCKET)

# specify a filename
file_name = 'some_dir/some_audio.wav'

# read a blob
blob = bucket.blob(file_name)
file_as_string = blob.download_as_string()

# convert the string to bytes and then finally to audio samples as floats 
# and the audio sample rate
data, sample_rate = sf.read(io.BytesIO(file_as_string))

left_channel = data[:,0]  # I assume the left channel is column zero

# enable play button in datalab notebook
ipd.Audio(left_channel, rate=sample_rate)