Python将mp3文件存储为数组中的数据

时间:2016-04-01 04:12:33

标签: python arrays audio mp3 tensorflow

我正在寻找一个能够读取mp3文件的模块(这是我所理解的二进制文件)并将其数据值存储在数组中。我是音频世界的新手,所以我不确定这些值代表什么。频率可能?

我正在使用Tensorflow项目,该项目从音频字节流中学习。所以我需要某种方式来表示音频字节流。

标准read()可能有效,但每个音频文件都需要表示为整个数组。因此,每个元素可能代表音频流的一个帧。

我发现了这个link,但我无法让它发挥作用。

我有:

     command = [FFMPEG_BIN,
            '-i', image_file,
            # '-f', 's16le',
            # '-acodec', 'pcm_s16le',
            '-ar', '44100',
            '-ac', '2']
        # pipe = sp.Popen(command, stdout=sp.PIPE, bufsize=10**8)
      pipe = sp.Popen(command, stdout=sp.PIPE)
      raw_audio = pipe.proc.stdout.read(88200*4)

但它引发了一个错误:OSError: [Errno 2] No such file or directory

请注意,image_file是文件的路径 - > train/rock/006 - The Doors - Light My Fire.mp3

整个代码段如下所示:

for image_index, image in enumerate(image_files):
  image_file = os.path.join(folder, image)
  try:
    command = [FFMPEG_BIN,
        '-i', image_file,
        # '-f', 's16le',
        # '-acodec', 'pcm_s16le',
        '-ar', '44100',
        '-ac', '2']
    # pipe = sp.Popen(command, stdout=sp.PIPE, bufsize=10**8)
    pipe = sp.Popen(command, stdout=sp.PIPE)
    raw_audio = pipe.proc.stdout.read(88200*4)

  except IOError as e:
   print('Could not read:', image_file, ':', e, '- it\'s ok, skipping.')

0 个答案:

没有答案