python音频转数组_尝试将mp3文件转换为Numpy数组,ffmpeg就挂起了

我正在使用scikitlearn开发音乐分类方法,该过程的第一步是将音乐文件转换为numpy数组。在

在尝试从python脚本调用ffmpeg失败后,我决定直接通过管道将文件导入:FFMPEG_BIN = "ffmpeg"

cwd = (os.getcwd())

dcwd = (cwd + "/temp")

if not os.path.exists(dcwd): os.makedirs(dcwd)

folder_path = sys.argv[1]

f = open("test.txt","a")

for f in glob.glob(os.path.join(folder_path, "*.mp3")):

ff = f.replace("./", "/")

print("Name: " + ff)

aa = (cwd + ff)

command = [ FFMPEG_BIN,

'-i', aa,

'-f', 's16le',

'-acodec', 'pcm_s16le',

'-ar', '22000', # ouput will have 44100 Hz

'-ac', '1', # stereo (set to '1' for mono)

'-']

pipe = sp.Popen(command, stdout=sp.PIPE, bufsize=10**8)

raw_audio = pipe.proc.stdout.read(88200*4)

audio_array = numpy.fromstring(raw_audio, dtype="int16")

print (str(audio_array))

f.write(audio_array + "\n")

问题是,当我运行该文件时,它会启动ffmpeg,然后什么也不做:

^{pr2}$

它只是坐在那里,挂着,比歌的时间长得多。我做错什么了?你说

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值