我的音频文件列表很长,其中一些超过一个小时。我正在使用Jupyter笔记本,Python 3.6和TinyTag库来获取音频的持续时间。我下面的代码遍历文件,如果一个文件长于一个小时,它将把文件分割成一个小时的小片段,剩下的少于一个小时的小片段,并将这些片段复制为fname_1,fname_2等。代码在为我尝试过的以前的数据集工作,但是这次运行了一段时间后,出现以下错误。我不知道这是从哪里来的以及如何解决它,我已经读过类似标题的问题,但是它们的内容不同。预先感谢。
# fpaths is the list of filepaths
for i in range(0,len(fpaths)):
fpath=fpaths[i]
fname=os.path.basename(fpath)
fname0=os.path.splitext(fname)[0] #name without extension
tag = TinyTag.get(fname)
if tag.duration > 3600:
cmd2 = "ffmpeg -i %s -f segment -segment_time 3600 -c copy %s" %(fpath, fname0) + "_%d.wav"
os.system(cmd2)
os.remove(fpath)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-10-79d0ceebf75d> in <module>()
7 fname0=os.path.splitext(fname)[0]
8 tag = TinyTag.get(fname)
----> 9 if tag.duration > 3600:
10 cmd2 = "ffmpeg -i %s -f segment -segment_time 3600 -c copy %s" %(fpath, fname0) + "_%d.wav"
11 os.system(cmd2)
TypeError: '>' not supported between instances of 'NoneType' and 'int'
答案 0 :(得分:1)
好像其中一些结果没有duration
也许将其更改为:
if tag.duration and tag.duration > 3600:
.....