代码之家  ›  专栏  ›  技术社区  ›  netskink

如何从谷歌云存储桶中读取音频文件并在数据实验室笔记本中播放IPD

  •  0
  • netskink  · 技术社区  · 6 年前

    我想在我从谷歌云存储桶中读取的数据实验室笔记本中播放声音文件。怎么做?

    1 回复  |  直到 6 年前
        1
  •  2
  •   netskink    6 年前
    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)