问题描述
我想使用标记在.wav文件。
I would like to use markers in .wav files.
这似乎是由 AIFC
模块的支持与 getmarkers()
:http://docs.python.org/2/library/aifc.html#aifc.aifc.getmarkers (对于.AIFF文件),但不适用于波
模块(<一个href=\"http://docs.python.org/2/library/wave.html?highlight=wave#wave.Wave_read.getmarkers\">http://docs.python.org/2/library/wave.html?highlight=wave#wave.Wave_read.getmarkers).
It seems to be supported by aifc
module with getmarkers()
: http://docs.python.org/2/library/aifc.html#aifc.aifc.getmarkers (for .aiff files), but not for wave
module (http://docs.python.org/2/library/wave.html?highlight=wave#wave.Wave_read.getmarkers).
我们怎么能读取.wav文件标记
推荐答案
我终于找到了一个解决方案(它使用scipy.io.wavfile的一些功能):
I finally found a solution (it uses some function of 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
,如果有人有兴趣。
这篇关于读.wav文件的标志的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!