我想在.wav文件中使用标记。读取.wav文件的标记
这似乎是由aifc
模块getmarkers()
支持:http://docs.python.org/2/library/aifc.html#aifc.aifc.getmarkers(用于.AIFF文件),而不是wave
模块(http://docs.python.org/2/library/wave.html?highlight=wave#wave.Wave_read.getmarkers)。
我们怎样才能读取.wav文件的标记?
我想在.wav文件中使用标记。读取.wav文件的标记
这似乎是由aifc
模块getmarkers()
支持:http://docs.python.org/2/library/aifc.html#aifc.aifc.getmarkers(用于.AIFF文件),而不是wave
模块(http://docs.python.org/2/library/wave.html?highlight=wave#wave.Wave_read.getmarkers)。
我们怎样才能读取.wav文件的标记?
编辑:这里是增加了许多东西(24位.wav文件的支持scipy.io.wavfile
的更新版本读/写,提示标记,提示标记的标签,以及其他一些类似的元数据间距(如果定义)等):
随意分享吧!
我终于找到了解决方法(它使用scipy.io.wavfile的一些功能):
def readmarkers(file, mmap=False):
if hasattr(file,'read'):
fid = file
else:
fid = open(file, 'rb')
fsize = _read_riff_chunk(fid)
cue = []
while (fid.tell() < fsize):
chunk_id = fid.read(4)
if chunk_id == b'cue ':
size, numcue = struct.unpack('<ii',fid.read(8))
for c in range(numcue):
id, position, datachunkid, chunkstart, blockstart, sampleoffset = struct.unpack('<iiiiii',fid.read(24))
cue.append(position)
else:
_skip_unknown_chunk(fid)
fid.close()
return cue
随意将其添加到SciPy的的wavfile.py
如果有人问津。
它是在wave.Wave_read模块,称为Wave_read.getmarkers()
看到的文档查看详细: http://docs.python.org/2/library/wave.html?highlight=wave#wave.Wave_read.getmarkers
不错!感谢分享 – goncalopp
我的标记类型为'范围'(id,开始,结束,持续时间?)。使用你的功能,我只能读取每个范围的起始位置。我怎样才能修改你的功能,以使它适用于范围呢? – Eric
这是我使用的参考资料:http://www.sonicspot.com/guide/wavefiles.html ...哪里存储了'range'类型的标记?在“提示区块”(http://www.sonicspot.com/guide/wavefiles.html#cue)或“播放列表区块”(http://www.sonicspot.com/guide/wavefiles.html#plst)中? – Basj