赞
踩
我正在使用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}$
它只是坐在那里,挂着,比歌的时间长得多。我做错什么了?你说
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。